diff options
author | toby <smorgrav@yahoo-inc.com> | 2017-08-31 15:54:34 +0200 |
---|---|---|
committer | toby <smorgrav@yahoo-inc.com> | 2017-09-06 16:20:48 -0700 |
commit | 5d4e285d1a7de676e97d61b02befa930959414ba (patch) | |
tree | 8ec5dded9d643b65af3e7cbdfd56f064fe3fd138 /node-repository | |
parent | e67d0b8657ea72d29aeb13954ea0173b6a8ef545 (diff) |
Different dns resolve behavior in prod and testing
Diffstat (limited to 'node-repository')
4 files changed, 16 insertions, 2 deletions
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/NodePrioritizer.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/NodePrioritizer.java index a5ebee808fd..81be03dc4ef 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/NodePrioritizer.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/NodePrioritizer.java @@ -33,7 +33,7 @@ import java.util.stream.Collectors; * * @author smorgrav */ -class NodePrioritizer { +public class NodePrioritizer { private final Map<Node, PrioritizableNode> nodes = new HashMap<>(); private final List<Node> allNodes; @@ -47,6 +47,9 @@ class NodePrioritizer { private final Set<Node> spareHosts; private final Map<Node, ResourceCapacity> headroomHosts; + /** This is before we mock DNS to resolve on test IP that we use in tests */ + public static boolean unitTesting = false; + NodePrioritizer(List<Node> allNodes, ApplicationId appId, ClusterSpec clusterSpec, NodeSpec nodeSpec, NodeFlavors nodeFlavors, int spares) { this.allNodes = Collections.unmodifiableList(allNodes); this.requestedNodes = nodeSpec; @@ -83,6 +86,7 @@ class NodePrioritizer { static String lookupHostname(String ipAddress) { try { String hostname = InetAddress.getByName(ipAddress).getHostName(); + if (unitTesting) return hostname; return InetAddresses.isInetAddress(hostname) ? null : hostname; } catch (UnknownHostException e) { Logger.getLogger(NodePrioritizer.class.getName()).log(Level.FINER, "Unable to resolve ipaddress", e); diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/testutils/MockNodeRepository.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/testutils/MockNodeRepository.java index 0885b941401..0c62fd5062c 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/testutils/MockNodeRepository.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/testutils/MockNodeRepository.java @@ -19,6 +19,7 @@ import com.yahoo.vespa.hosted.provision.Node; import com.yahoo.vespa.hosted.provision.NodeRepository; import com.yahoo.vespa.hosted.provision.node.Agent; import com.yahoo.vespa.hosted.provision.node.Status; +import com.yahoo.vespa.hosted.provision.provisioning.NodePrioritizer; import com.yahoo.vespa.hosted.provision.provisioning.NodeRepositoryProvisioner; import java.time.Clock; @@ -58,7 +59,7 @@ public class MockNodeRepository extends NodeRepository { private void populate() { NodeRepositoryProvisioner provisioner = new NodeRepositoryProvisioner(this, flavors, Zone.defaultZone()); - + NodePrioritizer.unitTesting = true; List<Node> nodes = new ArrayList<>(); final List<String> ipAddressesForAllHost = Arrays.asList("127.0.0.1", "::1"); diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/DynamicDockerProvisioningTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/DynamicDockerProvisioningTest.java index c26865d5690..06a0a9b8b45 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/DynamicDockerProvisioningTest.java +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/DynamicDockerProvisioningTest.java @@ -22,6 +22,7 @@ import com.yahoo.vespa.hosted.provision.Node; import com.yahoo.vespa.hosted.provision.NodeList; import com.yahoo.vespa.hosted.provision.node.Agent; import org.junit.Assert; +import org.junit.Before; import org.junit.Test; import java.time.Instant; @@ -46,6 +47,11 @@ import static org.junit.Assert.fail; */ public class DynamicDockerProvisioningTest { + @Before + public void setup() { + NodePrioritizer.unitTesting = true; + } + /** * Test relocation of nodes that violate headroom. * <p> diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/NodePrioritizerTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/NodePrioritizerTest.java index 2deac4e70e8..c7295fd20d0 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/NodePrioritizerTest.java +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/NodePrioritizerTest.java @@ -86,6 +86,9 @@ public class NodePrioritizerTest { @Test public void ignore_hosts_that_is_unresolved_in_dns() { + // Here we are testing the behavoir we need in production + NodePrioritizer.unitTesting = false; + // Random IP that is not resolving String hostname = NodePrioritizer.lookupHostname("34.23.12.23"); Assert.assertNull(hostname); |