mirror of
https://github.com/inspec/inspec
synced 2024-11-23 05:03:07 +00:00
Update host resource to resolve all ipaddresses (#6481)
Signed-off-by: Alan Foster <alan@alanfoster.me>
This commit is contained in:
parent
3ecb812aac
commit
ce5fb0fb46
2 changed files with 7 additions and 19 deletions
|
@ -319,15 +319,9 @@ module Inspec::Resources
|
||||||
return nil
|
return nil
|
||||||
end
|
end
|
||||||
|
|
||||||
resolve_ipv4 = resolve_ipv4.inject(:merge) if resolve_ipv4.is_a?(Array)
|
|
||||||
|
|
||||||
# Append the ipv4 addresses
|
# Append the ipv4 addresses
|
||||||
resolve_ipv4.each_value do |ip|
|
resolve_ipv4 = [resolve_ipv4] unless resolve_ipv4.is_a?(Array)
|
||||||
matched = ip.to_s.chomp.match(Resolv::IPv4::Regex)
|
resolve_ipv4.each { |entry| addresses << entry["IPAddress"] }
|
||||||
next if matched.nil? || addresses.include?(matched.to_s)
|
|
||||||
|
|
||||||
addresses << matched.to_s
|
|
||||||
end
|
|
||||||
|
|
||||||
# -Type AAAA is the DNS query for IPv6 server Address.
|
# -Type AAAA is the DNS query for IPv6 server Address.
|
||||||
cmd = inspec.command("Resolve-DnsName –Type AAAA #{hostname} | ConvertTo-Json")
|
cmd = inspec.command("Resolve-DnsName –Type AAAA #{hostname} | ConvertTo-Json")
|
||||||
|
@ -337,15 +331,9 @@ module Inspec::Resources
|
||||||
return nil
|
return nil
|
||||||
end
|
end
|
||||||
|
|
||||||
resolve_ipv6 = resolve_ipv6.inject(:merge) if resolve_ipv6.is_a?(Array)
|
|
||||||
|
|
||||||
# Append the ipv6 addresses
|
# Append the ipv6 addresses
|
||||||
resolve_ipv6.each_value do |ip|
|
resolve_ipv6 = [resolve_ipv6] unless resolve_ipv6.is_a?(Array)
|
||||||
matched = ip.to_s.chomp.match(Resolv::IPv6::Regex)
|
resolve_ipv6.each { |entry| addresses << entry["IPAddress"] }
|
||||||
next if matched.nil? || addresses.include?(matched.to_s)
|
|
||||||
|
|
||||||
addresses << matched.to_s
|
|
||||||
end
|
|
||||||
|
|
||||||
addresses
|
addresses
|
||||||
end
|
end
|
||||||
|
|
|
@ -35,7 +35,7 @@ describe "Inspec::Resources::Host" do
|
||||||
resource = MockLoader.new(:windows).load_resource("host", "microsoft.com")
|
resource = MockLoader.new(:windows).load_resource("host", "microsoft.com")
|
||||||
_(resource.resolvable?).must_equal true
|
_(resource.resolvable?).must_equal true
|
||||||
_(resource.reachable?).must_equal false
|
_(resource.reachable?).must_equal false
|
||||||
_(resource.ipaddress).must_equal ["134.170.188.221", "2404:6800:4009:827::200e"]
|
_(resource.ipaddress).must_equal ["134.170.185.46", "134.170.188.221", "2404:6800:4009:827::200e"]
|
||||||
_(resource.to_s).must_equal "Host microsoft.com"
|
_(resource.to_s).must_equal "Host microsoft.com"
|
||||||
_(resource.resource_id).must_equal "microsoft.com"
|
_(resource.resource_id).must_equal "microsoft.com"
|
||||||
end
|
end
|
||||||
|
@ -107,7 +107,7 @@ describe "Inspec::Resources::Host" do
|
||||||
resource = MockLoader.new(:windows).load_resource("host", "microsoft.com", port: 1234, protocol: "tcp")
|
resource = MockLoader.new(:windows).load_resource("host", "microsoft.com", port: 1234, protocol: "tcp")
|
||||||
_(resource.resolvable?).must_equal true
|
_(resource.resolvable?).must_equal true
|
||||||
_(resource.reachable?).must_equal true
|
_(resource.reachable?).must_equal true
|
||||||
_(resource.ipaddress).must_equal ["134.170.188.221", "2404:6800:4009:827::200e"]
|
_(resource.ipaddress).must_equal ["134.170.185.46", "134.170.188.221", "2404:6800:4009:827::200e"]
|
||||||
_(resource.to_s).must_equal "Host microsoft.com port 1234 proto tcp"
|
_(resource.to_s).must_equal "Host microsoft.com port 1234 proto tcp"
|
||||||
_(resource.resource_id).must_equal "microsoft.com-1234-tcp"
|
_(resource.resource_id).must_equal "microsoft.com-1234-tcp"
|
||||||
end
|
end
|
||||||
|
@ -379,7 +379,7 @@ describe Inspec::Resources::UnixHostProvider do
|
||||||
|
|
||||||
it "checks ipv4_address and ipv6_address properties on windows" do
|
it "checks ipv4_address and ipv6_address properties on windows" do
|
||||||
resource = MockLoader.new(:windows).load_resource("host", "microsoft.com")
|
resource = MockLoader.new(:windows).load_resource("host", "microsoft.com")
|
||||||
_(resource.ipv4_address).must_equal ["134.170.188.221"]
|
_(resource.ipv4_address).must_equal ["134.170.185.46", "134.170.188.221"]
|
||||||
_(resource.ipv4_address).must_include "134.170.188.221"
|
_(resource.ipv4_address).must_include "134.170.188.221"
|
||||||
_(resource.ipv6_address).must_equal ["2404:6800:4009:827::200e"]
|
_(resource.ipv6_address).must_equal ["2404:6800:4009:827::200e"]
|
||||||
_(resource.ipv6_address).must_include "2404:6800:4009:827::200e"
|
_(resource.ipv6_address).must_include "2404:6800:4009:827::200e"
|
||||||
|
|
Loading…
Reference in a new issue