summaryrefslogtreecommitdiffstats
path: root/node-maintainer
diff options
context:
space:
mode:
authorHåkon Hallingstad <hakon@oath.com>2018-10-04 14:01:48 +0200
committerHåkon Hallingstad <hakon@oath.com>2018-10-04 14:01:48 +0200
commit5569e02176401016b42a828798c6d65863ad5247 (patch)
tree6600bcc9d621a72c452293998875f79949a135b8 /node-maintainer
parent34ba19e18306f2432c61d4bcaa3a296dd38c7d7b (diff)
Support skipping hostname resolution verification
Diffstat (limited to 'node-maintainer')
-rw-r--r--node-maintainer/src/main/java/com/yahoo/vespa/hosted/node/verification/commons/noderepo/IPAddressVerifier.java10
-rw-r--r--node-maintainer/src/main/java/com/yahoo/vespa/hosted/node/verification/spec/SpecVerifier.java15
-rw-r--r--node-maintainer/src/test/java/com/yahoo/vespa/hosted/node/verification/commons/noderepo/IPAddressVerifierTest.java14
3 files changed, 31 insertions, 8 deletions
diff --git a/node-maintainer/src/main/java/com/yahoo/vespa/hosted/node/verification/commons/noderepo/IPAddressVerifier.java b/node-maintainer/src/main/java/com/yahoo/vespa/hosted/node/verification/commons/noderepo/IPAddressVerifier.java
index 69897728739..fe1f8d72d50 100644
--- a/node-maintainer/src/main/java/com/yahoo/vespa/hosted/node/verification/commons/noderepo/IPAddressVerifier.java
+++ b/node-maintainer/src/main/java/com/yahoo/vespa/hosted/node/verification/commons/noderepo/IPAddressVerifier.java
@@ -31,10 +31,12 @@ public class IPAddressVerifier {
private static final Logger logger = Logger.getLogger(IPAddressVerifier.class.getName());
private final String expectedHostname;
+ private final boolean skipLookup;
private final boolean skipReverseLookup;
- public IPAddressVerifier(String expectedHostname, boolean skipReverseLookup) {
+ public IPAddressVerifier(String expectedHostname, boolean skipLookup, boolean skipReverseLookup) {
this.expectedHostname = expectedHostname;
+ this.skipLookup = skipLookup;
this.skipReverseLookup = skipReverseLookup;
}
@@ -60,6 +62,10 @@ public class IPAddressVerifier {
}
private boolean hostnameResolvesToIpAddress(String ipAddress) {
+ if (skipLookup) {
+ return true;
+ }
+
InetAddress addressFromIpAddress;
try {
addressFromIpAddress = InetAddress.getByName(ipAddress);
@@ -78,7 +84,7 @@ public class IPAddressVerifier {
if (addressesFromHostname.stream().noneMatch(addressFromIpAddress::equals)) {
logger.log(Level.WARNING, "Hostname " + expectedHostname + " resolved to " + addressesFromHostname +
- " which does not contain the IP address " + ipAddress);
+ " which does not contain the IP address " + addressFromIpAddress);
return false;
}
diff --git a/node-maintainer/src/main/java/com/yahoo/vespa/hosted/node/verification/spec/SpecVerifier.java b/node-maintainer/src/main/java/com/yahoo/vespa/hosted/node/verification/spec/SpecVerifier.java
index 246321f0b9e..a3cc4c47608 100644
--- a/node-maintainer/src/main/java/com/yahoo/vespa/hosted/node/verification/spec/SpecVerifier.java
+++ b/node-maintainer/src/main/java/com/yahoo/vespa/hosted/node/verification/spec/SpecVerifier.java
@@ -45,7 +45,10 @@ public class SpecVerifier extends Main.VerifierCommand {
@Option(name = {"-i", "--ips"}, description = "Comma separated list of IP addresses assigned to this node")
private String ipAddresses;
- @Option(name = {"-S", "--skip-reverse-lookup"}, required = false, description = "Skip verification of reverse lookup of IP addresses")
+ @Option(name = {"--skip-lookup"}, required = false, description = "Skip verification of hostname -> IP addresses")
+ private boolean skipLookup = false;
+
+ @Option(name = {"--skip-reverse-lookup"}, required = false, description = "Skip verification of IP addresses -> hostname")
private boolean skipReverseLookup = false;
@Override
@@ -64,12 +67,16 @@ public class SpecVerifier extends Main.VerifierCommand {
private SpecVerificationReport verifySpec(NodeSpec nodeSpec, CommandExecutor commandExecutor) {
VerifierSettings verifierSettings = new VerifierSettings(false);
HardwareInfo actualHardware = HardwareInfoRetriever.retrieve(commandExecutor, verifierSettings);
- return makeVerificationReport(actualHardware, nodeSpec, skipReverseLookup);
+ return makeVerificationReport(actualHardware, nodeSpec, skipLookup, skipReverseLookup);
}
- private static SpecVerificationReport makeVerificationReport(HardwareInfo actualHardware, NodeSpec nodeSpec, boolean skipReverseLookup) {
+ private static SpecVerificationReport makeVerificationReport(
+ HardwareInfo actualHardware,
+ NodeSpec nodeSpec,
+ boolean skipLookup,
+ boolean skipReverseLookup) {
SpecVerificationReport specVerificationReport = HardwareNodeComparator.compare(NodeJsonConverter.convertJsonModelToHardwareInfo(nodeSpec), actualHardware);
- IPAddressVerifier ipAddressVerifier = new IPAddressVerifier(Defaults.getDefaults().vespaHostname(), skipReverseLookup);
+ IPAddressVerifier ipAddressVerifier = new IPAddressVerifier(Defaults.getDefaults().vespaHostname(), skipLookup, skipReverseLookup);
ipAddressVerifier.reportFaultyIpAddresses(nodeSpec, specVerificationReport);
return specVerificationReport;
}
diff --git a/node-maintainer/src/test/java/com/yahoo/vespa/hosted/node/verification/commons/noderepo/IPAddressVerifierTest.java b/node-maintainer/src/test/java/com/yahoo/vespa/hosted/node/verification/commons/noderepo/IPAddressVerifierTest.java
index b9ba9417981..c30afbf4fe5 100644
--- a/node-maintainer/src/test/java/com/yahoo/vespa/hosted/node/verification/commons/noderepo/IPAddressVerifierTest.java
+++ b/node-maintainer/src/test/java/com/yahoo/vespa/hosted/node/verification/commons/noderepo/IPAddressVerifierTest.java
@@ -25,7 +25,7 @@ public class IPAddressVerifierTest {
private final NodeSpec nodeSpec = new NodeSpec(1920, 256, 48, true, 10_000, new String[]{ipv4Address, ipv6Address});
private final String hostname = "test123.region.domain.tld";
- private IPAddressVerifier ipAddressVerifier = spy(new IPAddressVerifier(hostname, false));
+ private IPAddressVerifier ipAddressVerifier = spy(new IPAddressVerifier(hostname, false, false));
private String ipv4LookupFormat;
private String ipv6LookupFormat;
@@ -91,8 +91,18 @@ public class IPAddressVerifierTest {
}
@Test
+ public void getFaultyIpAddresses_should_return_empty_array_when_lookup_is_skipped() throws Exception {
+ ipAddressVerifier = spy(new IPAddressVerifier(hostname, true, false));
+ doReturn(hostname).when(ipAddressVerifier).reverseLookUp(ipv4LookupFormat);
+ doReturn(hostname).when(ipAddressVerifier).reverseLookUp(ipv6LookupFormat);
+ String[] faultyIpAddresses = ipAddressVerifier.getFaultyIpAddresses(nodeSpec);
+ String[] expectedFaultyIpAddresses = new String[]{};
+ assertArrayEquals(expectedFaultyIpAddresses, faultyIpAddresses);
+ }
+
+ @Test
public void getFaultyIpAddresses_should_return_empty_array_when_reverse_lookup_is_skipped() throws Exception {
- ipAddressVerifier = spy(new IPAddressVerifier(hostname, true));
+ ipAddressVerifier = spy(new IPAddressVerifier(hostname, false, true));
doReturn(Arrays.asList(InetAddress.getByName(ipv4Address), InetAddress.getByName(ipv6Address))).when(ipAddressVerifier).mockableGetAllByName(hostname);
String[] faultyIpAddresses = ipAddressVerifier.getFaultyIpAddresses(nodeSpec);
String[] expectedFaultyIpAddresses = new String[]{};