summaryrefslogtreecommitdiffstats
path: root/node-repository
diff options
context:
space:
mode:
authortoby <smorgrav@yahoo-inc.com>2017-08-31 15:54:34 +0200
committertoby <smorgrav@yahoo-inc.com>2017-09-06 16:20:48 -0700
commit5d4e285d1a7de676e97d61b02befa930959414ba (patch)
tree8ec5dded9d643b65af3e7cbdfd56f064fe3fd138 /node-repository
parente67d0b8657ea72d29aeb13954ea0173b6a8ef545 (diff)
Different dns resolve behavior in prod and testing
Diffstat (limited to 'node-repository')
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/NodePrioritizer.java6
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/testutils/MockNodeRepository.java3
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/DynamicDockerProvisioningTest.java6
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/NodePrioritizerTest.java3
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);