summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@yahoo-inc.com>2016-11-16 10:54:39 +0100
committerJon Bratseth <bratseth@yahoo-inc.com>2016-11-16 10:54:39 +0100
commit2d8eab47947464ba02cf0ef799a7884e4ff73903 (patch)
tree5692ea287d7a3bc7c447ec837dc4c21affc1ce50
parent742d75513b06c5551ec872bf5d8575af763a03b2 (diff)
Don't reboot test and staging nodes
Test and staging nodes are recycled very often and rebooting each time cuts the test throughput in half.
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/NodeRepository.java9
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/assimilate/PopulateClient.java2
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/persistence/CuratorDatabaseClient.java20
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/v2/NodeStateSerializer.java (renamed from node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/NodeStateSerializer.java)2
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/v2/NodesResponse.java1
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/testutils/MockNodeRepository.java2
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/NodeRepositoryTester.java3
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/assimilate/PopulateClientTest.java7
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/ApplicationMaintainerTest.java2
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/FailedExpirerTest.java2
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/NodeFailTester.java2
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/ReservationExpirerTest.java2
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/RetiredExpirerTest.java4
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/monitoring/ProvisionMetricsTest.java17
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/persistence/CuratorDatabaseClientTest.java4
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ProvisioningTester.java4
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/NodeStateSerializerTest.java1
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v1/RestApiTest.java2
18 files changed, 53 insertions, 33 deletions
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/NodeRepository.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/NodeRepository.java
index eee0eae4e83..da86bbc62de 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/NodeRepository.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/NodeRepository.java
@@ -6,6 +6,7 @@ import com.yahoo.collections.ListMap;
import com.yahoo.component.AbstractComponent;
import com.yahoo.config.provision.ApplicationId;
import com.yahoo.config.provision.NodeType;
+import com.yahoo.config.provision.Zone;
import com.yahoo.transaction.Mutex;
import com.yahoo.transaction.NestedTransaction;
import com.yahoo.vespa.curator.Curator;
@@ -62,16 +63,16 @@ public class NodeRepository extends AbstractComponent {
* This will use the system time to make time-sensitive decisions
*/
@Inject
- public NodeRepository(NodeFlavors flavors, Curator curator) {
- this(flavors, curator, Clock.systemUTC());
+ public NodeRepository(NodeFlavors flavors, Curator curator, Zone zone) {
+ this(flavors, curator, Clock.systemUTC(), zone);
}
/**
* Creates a node repository form a zookeeper provider and a clock instance
* which will be used for time-sensitive decisions.
*/
- public NodeRepository(NodeFlavors flavors, Curator curator, Clock clock) {
- this.zkClient = new CuratorDatabaseClient(flavors, curator, clock);
+ public NodeRepository(NodeFlavors flavors, Curator curator, Clock clock, Zone zone) {
+ this.zkClient = new CuratorDatabaseClient(flavors, curator, clock, zone);
// read and write all nodes to make sure they are stored in the latest version of the serialized format
for (Node.State state : Node.State.values())
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/assimilate/PopulateClient.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/assimilate/PopulateClient.java
index 422eee820db..f3fb49b0024 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/assimilate/PopulateClient.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/assimilate/PopulateClient.java
@@ -58,7 +58,7 @@ public class PopulateClient {
this.hostMapping = XmlUtils.getHostMapping(XmlUtils.parseXml(hostsXmlFilename));
this.flavorSpec = flavorSpec;
this.dryRun = dryRun;
- this.zkClient = new CuratorDatabaseClient(nodeFlavors, curator, creationClock);
+ this.zkClient = new CuratorDatabaseClient(nodeFlavors, curator, creationClock, Zone.defaultZone());
ensureFlavorIsDefinedForEveryCluster();
}
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/persistence/CuratorDatabaseClient.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/persistence/CuratorDatabaseClient.java
index f17eda94ead..77809de36ce 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/persistence/CuratorDatabaseClient.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/persistence/CuratorDatabaseClient.java
@@ -4,6 +4,8 @@ package com.yahoo.vespa.hosted.provision.persistence;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.datatype.joda.JodaModule;
import com.yahoo.config.provision.ApplicationId;
+import com.yahoo.config.provision.Environment;
+import com.yahoo.config.provision.Zone;
import com.yahoo.log.LogLevel;
import com.yahoo.path.Path;
import com.yahoo.transaction.NestedTransaction;
@@ -46,9 +48,12 @@ public class CuratorDatabaseClient {
private final ObjectMapper jsonMapper = new ObjectMapper();
private final Clock clock;
+
+ private final Zone zone;
- public CuratorDatabaseClient(NodeFlavors flavors, Curator curator, Clock clock) {
+ public CuratorDatabaseClient(NodeFlavors flavors, Curator curator, Clock clock, Zone zone) {
this.nodeSerializer = new NodeSerializer(flavors);
+ this.zone = zone;
jsonMapper.registerModule(new JodaModule());
this.curatorDatabase = new CuratorDatabase(curator, root, /* useCache: */ false);
this.clock = clock;
@@ -164,12 +169,19 @@ public class CuratorDatabaseClient {
private Status newNodeStatus(Node node, Node.State toState) {
if (node.state() != Node.State.failed && toState == Node.State.failed) return node.status().withIncreasedFailCount();
if (node.state() == Node.State.failed && toState == Node.State.active) return node.status().withDecreasedFailCount(); // fail undo
- // Increase reboot generation when node is moved to dirty. This is done to reset the state on the node
- // (e.g. get rid of lingering processes).
- if (node.state() != Node.State.dirty && toState == Node.State.dirty) return node.status().withReboot(node.status().reboot().withIncreasedWanted());
+ // Increase reboot generation when node is moved to dirty unless qick reuse is prioritized.
+ // This gets rid of lingering processes, updates OS packages if necessary and tests that reboot succeeds.
+ if (node.state() != Node.State.dirty && toState == Node.State.dirty && !needsFastNodeReuse(zone))
+ return node.status().withReboot(node.status().reboot().withIncreasedWanted());
+
return node.status();
}
+ /** In automated test environments, nodes need to be reused quickly to achieve fast test turnaronud time */
+ private boolean needsFastNodeReuse(Zone zone) {
+ return zone.environment() == Environment.staging || zone.environment() == Environment.test;
+ }
+
private History newNodeHistory(Node node, Node.State toState) {
History history = node.history();
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/NodeStateSerializer.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/v2/NodeStateSerializer.java
index fa74605b32f..a9493166208 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/NodeStateSerializer.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/v2/NodeStateSerializer.java
@@ -1,5 +1,5 @@
// Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-package com.yahoo.vespa.hosted.provision.restapi;
+package com.yahoo.vespa.hosted.provision.restapi.v2;
import com.yahoo.vespa.hosted.provision.Node;
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/v2/NodesResponse.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/v2/NodesResponse.java
index c245230bfa3..c275b641baf 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/v2/NodesResponse.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/v2/NodesResponse.java
@@ -14,7 +14,6 @@ import com.yahoo.vespa.hosted.provision.NodeRepository;
import com.yahoo.vespa.hosted.provision.node.History;
import com.yahoo.vespa.hosted.provision.node.Status;
import com.yahoo.vespa.hosted.provision.node.filter.NodeFilter;
-import com.yahoo.vespa.hosted.provision.restapi.NodeStateSerializer;
import java.io.IOException;
import java.io.OutputStream;
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 5e1fd2357cb..707d9207d8d 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
@@ -39,7 +39,7 @@ public class MockNodeRepository extends NodeRepository {
* @param flavors flavors to have in node repo
*/
public MockNodeRepository(NodeFlavors flavors) throws Exception {
- super(flavors, new MockCurator(), Clock.fixed(Instant.ofEpochMilli(123), ZoneId.of("Z")));
+ super(flavors, new MockCurator(), Clock.fixed(Instant.ofEpochMilli(123), ZoneId.of("Z")), Zone.defaultZone());
this.flavors = flavors;
populate();
}
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/NodeRepositoryTester.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/NodeRepositoryTester.java
index 46bf29d887f..475cd047960 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/NodeRepositoryTester.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/NodeRepositoryTester.java
@@ -1,6 +1,7 @@
package com.yahoo.vespa.hosted.provision;
import com.yahoo.config.provision.NodeType;
+import com.yahoo.config.provision.Zone;
import com.yahoo.test.ManualClock;
import com.yahoo.vespa.config.nodes.NodeRepositoryConfig;
import com.yahoo.vespa.curator.mock.MockCurator;
@@ -29,7 +30,7 @@ public class NodeRepositoryTester {
clock = new ManualClock();
curator = new MockCurator();
curator.setConnectionSpec("server1:1234,server2:5678");
- nodeRepository = new NodeRepository(nodeFlavors, curator, clock);
+ nodeRepository = new NodeRepository(nodeFlavors, curator, clock, Zone.defaultZone());
}
public NodeRepository nodeRepository() { return nodeRepository; }
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/assimilate/PopulateClientTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/assimilate/PopulateClientTest.java
index d19648d8d30..22eaa7c00b4 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/assimilate/PopulateClientTest.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/assimilate/PopulateClientTest.java
@@ -6,6 +6,7 @@ import com.yahoo.config.provision.ApplicationId;
import com.yahoo.config.provision.ApplicationName;
import com.yahoo.config.provision.InstanceName;
import com.yahoo.config.provision.TenantName;
+import com.yahoo.config.provision.Zone;
import com.yahoo.vespa.curator.Curator;
import com.yahoo.vespa.curator.mock.MockCurator;
import com.yahoo.vespa.hosted.provision.Node;
@@ -54,9 +55,11 @@ public class PopulateClientTest {
@Test
public void testCorrectDataIsWrittenToZooKeeper() {
Curator curator = new MockCurator();
- CuratorDatabaseClient curatorDatabaseClient = new CuratorDatabaseClient(flavors, curator, Clock.systemUTC());
+ CuratorDatabaseClient curatorDatabaseClient = new CuratorDatabaseClient(flavors, curator,
+ Clock.systemUTC(), Zone.defaultZone());
- PopulateClient populateClient = new PopulateClient(curator, flavors, tenantId, applicationId, instanceId, servicesXmlFilename, hostsXmlFilename, flavorSpec, false);
+ PopulateClient populateClient = new PopulateClient(curator, flavors, tenantId, applicationId, instanceId,
+ servicesXmlFilename, hostsXmlFilename, flavorSpec, false);
populateClient.populate(PopulateClient.CONTAINER_CLUSTER_TYPE);
populateClient.populate(PopulateClient.CONTENT_CLUSTER_TYPE);
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/ApplicationMaintainerTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/ApplicationMaintainerTest.java
index bc902a4d910..8da137d4c86 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/ApplicationMaintainerTest.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/ApplicationMaintainerTest.java
@@ -46,7 +46,7 @@ public class ApplicationMaintainerTest {
ManualClock clock = new ManualClock();
Zone zone = new Zone(Environment.prod, RegionName.from("us-east"));
NodeFlavors nodeFlavors = FlavorConfigBuilder.createDummies("default");
- NodeRepository nodeRepository = new NodeRepository(nodeFlavors, curator, clock);
+ NodeRepository nodeRepository = new NodeRepository(nodeFlavors, curator, clock, zone);
createReadyNodes(15, nodeRepository, nodeFlavors);
createHostNodes(2, nodeRepository, nodeFlavors);
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/FailedExpirerTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/FailedExpirerTest.java
index 32f03ea042e..c691bb076c9 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/FailedExpirerTest.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/FailedExpirerTest.java
@@ -81,7 +81,7 @@ public class FailedExpirerTest {
private NodeRepository failureScenarioIn(SystemName system, Environment environment) {
ManualClock clock = new ManualClock();
NodeFlavors nodeFlavors = FlavorConfigBuilder.createDummies("default");
- NodeRepository nodeRepository = new NodeRepository(nodeFlavors, curator, clock);
+ NodeRepository nodeRepository = new NodeRepository(nodeFlavors, curator, clock, Zone.defaultZone());
NodeRepositoryProvisioner provisioner = new NodeRepositoryProvisioner(nodeRepository, nodeFlavors, Zone.defaultZone(), clock);
List<Node> nodes = new ArrayList<>(3);
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/NodeFailTester.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/NodeFailTester.java
index 4e63e7a6203..0ebcdd1b7bc 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/NodeFailTester.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/NodeFailTester.java
@@ -86,7 +86,7 @@ public class NodeFailTester {
public NodeFailTester() {
clock = new ManualClock();
curator = new MockCurator();
- nodeRepository = new NodeRepository(nodeFlavors, curator, clock);
+ nodeRepository = new NodeRepository(nodeFlavors, curator, clock, zone);
provisioner = new NodeRepositoryProvisioner(nodeRepository, nodeFlavors, zone);
hostLivenessTracker = new TestHostLivenessTracker(clock);
orchestrator = new OrchestratorMock();
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/ReservationExpirerTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/ReservationExpirerTest.java
index c936bf038ca..e40b39e6182 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/ReservationExpirerTest.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/ReservationExpirerTest.java
@@ -37,7 +37,7 @@ public class ReservationExpirerTest {
public void ensure_reservation_times_out() throws InterruptedException {
ManualClock clock = new ManualClock();
NodeFlavors flavors = FlavorConfigBuilder.createDummies("default");
- NodeRepository nodeRepository = new NodeRepository(flavors, curator, clock);
+ NodeRepository nodeRepository = new NodeRepository(flavors, curator, clock, Zone.defaultZone());
NodeRepositoryProvisioner provisioner = new NodeRepositoryProvisioner(nodeRepository, flavors, Zone.defaultZone(), clock);
List<Node> nodes = new ArrayList<>(2);
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/RetiredExpirerTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/RetiredExpirerTest.java
index 3b9f4469b01..9570bdda8f3 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/RetiredExpirerTest.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/RetiredExpirerTest.java
@@ -45,7 +45,7 @@ public class RetiredExpirerTest {
ManualClock clock = new ManualClock();
Zone zone = new Zone(Environment.prod, RegionName.from("us-east"));
NodeFlavors nodeFlavors = FlavorConfigBuilder.createDummies("default");
- NodeRepository nodeRepository = new NodeRepository(nodeFlavors, curator, clock);
+ NodeRepository nodeRepository = new NodeRepository(nodeFlavors, curator, clock, zone);
NodeRepositoryProvisioner provisioner = new NodeRepositoryProvisioner(nodeRepository, nodeFlavors, zone);
createReadyNodes(7, nodeRepository, nodeFlavors);
@@ -83,7 +83,7 @@ public class RetiredExpirerTest {
ManualClock clock = new ManualClock();
Zone zone = new Zone(Environment.prod, RegionName.from("us-east"));
NodeFlavors nodeFlavors = FlavorConfigBuilder.createDummies("default");
- NodeRepository nodeRepository = new NodeRepository(nodeFlavors, curator, clock);
+ NodeRepository nodeRepository = new NodeRepository(nodeFlavors, curator, clock, zone);
NodeRepositoryProvisioner provisioner = new NodeRepositoryProvisioner(nodeRepository, nodeFlavors, zone);
createReadyNodes(8, nodeRepository, nodeFlavors);
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/monitoring/ProvisionMetricsTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/monitoring/ProvisionMetricsTest.java
index 2e6f7d1867f..2c1c1a6ca72 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/monitoring/ProvisionMetricsTest.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/monitoring/ProvisionMetricsTest.java
@@ -2,6 +2,7 @@
package com.yahoo.vespa.hosted.provision.monitoring;
import com.yahoo.config.provision.NodeType;
+import com.yahoo.config.provision.Zone;
import com.yahoo.jdisc.Metric;
import com.yahoo.vespa.curator.Curator;
import com.yahoo.vespa.curator.mock.MockCurator;
@@ -25,15 +26,15 @@ public class ProvisionMetricsTest {
@Test(timeout = 10_000L)
public void test_registered_metric() throws InterruptedException {
- final NodeFlavors nodeFlavors = FlavorConfigBuilder.createDummies("default");
- final Curator curator = new MockCurator();
- final NodeRepository nodeRepository = new NodeRepository(nodeFlavors, curator);
- final Node node = nodeRepository.createNode("openStackId", "hostname", Optional.empty(), nodeFlavors.getFlavorOrThrow("default"), NodeType.tenant);
+ NodeFlavors nodeFlavors = FlavorConfigBuilder.createDummies("default");
+ Curator curator = new MockCurator();
+ NodeRepository nodeRepository = new NodeRepository(nodeFlavors, curator, Zone.defaultZone());
+ Node node = nodeRepository.createNode("openStackId", "hostname", Optional.empty(), nodeFlavors.getFlavorOrThrow("default"), NodeType.tenant);
nodeRepository.addNodes(Collections.singletonList(node));
- final Node hostNode = nodeRepository.createNode("openStackId2", "parent", Optional.empty(), nodeFlavors.getFlavorOrThrow("default"), NodeType.host);
+ Node hostNode = nodeRepository.createNode("openStackId2", "parent", Optional.empty(), nodeFlavors.getFlavorOrThrow("default"), NodeType.host);
nodeRepository.addNodes(Collections.singletonList(hostNode));
- final Map<String, Number> expectedMetrics = new HashMap<>();
+ Map<String, Number> expectedMetrics = new HashMap<>();
expectedMetrics.put("hostedVespa.provisionedHosts", 1);
expectedMetrics.put("hostedVespa.parkedHosts", 0);
expectedMetrics.put("hostedVespa.readyHosts", 0);
@@ -43,8 +44,8 @@ public class ProvisionMetricsTest {
expectedMetrics.put("hostedVespa.dirtyHosts", 0);
expectedMetrics.put("hostedVespa.failedHosts", 0);
- final TestMetric metric = new TestMetric(expectedMetrics.size());
- final ProvisionMetrics provisionMetrics = new ProvisionMetrics(metric, nodeRepository);
+ TestMetric metric = new TestMetric(expectedMetrics.size());
+ ProvisionMetrics provisionMetrics = new ProvisionMetrics(metric, nodeRepository);
metric.latch.await();
assertEquals(expectedMetrics, metric.values);
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/persistence/CuratorDatabaseClientTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/persistence/CuratorDatabaseClientTest.java
index 0763d70f419..6ce40047352 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/persistence/CuratorDatabaseClientTest.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/persistence/CuratorDatabaseClientTest.java
@@ -6,6 +6,7 @@ import com.yahoo.config.provision.ApplicationName;
import com.yahoo.config.provision.InstanceName;
import com.yahoo.config.provision.NodeType;
import com.yahoo.config.provision.TenantName;
+import com.yahoo.config.provision.Zone;
import com.yahoo.vespa.curator.Curator;
import com.yahoo.vespa.curator.mock.MockCurator;
import com.yahoo.vespa.hosted.provision.Node;
@@ -22,7 +23,8 @@ import static org.junit.Assert.assertEquals;
public class CuratorDatabaseClientTest {
private Curator curator = new MockCurator();
- private CuratorDatabaseClient zkClient = new CuratorDatabaseClient(FlavorConfigBuilder.createDummies("default"), curator, Clock.systemUTC());
+ private CuratorDatabaseClient zkClient = new CuratorDatabaseClient(FlavorConfigBuilder.createDummies("default"),
+ curator, Clock.systemUTC(), Zone.defaultZone());
@Test
public void ensure_can_read_stored_host_information() throws Exception {
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ProvisioningTester.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ProvisioningTester.java
index b8e812afdbd..02389c229b3 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ProvisioningTester.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ProvisioningTester.java
@@ -61,7 +61,7 @@ public class ProvisioningTester implements AutoCloseable {
try {
nodeFlavors = new NodeFlavors(createConfig());
clock = new ManualClock();
- nodeRepository = new NodeRepository(nodeFlavors, curator, clock);
+ nodeRepository = new NodeRepository(nodeFlavors, curator, clock, zone);
provisioner = new NodeRepositoryProvisioner(nodeRepository, nodeFlavors, zone, clock);
capacityPolicies = new CapacityPolicies(zone, nodeFlavors);
provisionLogger = new NullProvisionLogger();
@@ -75,7 +75,7 @@ public class ProvisioningTester implements AutoCloseable {
try {
nodeFlavors = new NodeFlavors(config);
clock = new ManualClock();
- nodeRepository = new NodeRepository(nodeFlavors, curator, clock);
+ nodeRepository = new NodeRepository(nodeFlavors, curator, clock, zone);
provisioner = new NodeRepositoryProvisioner(nodeRepository, nodeFlavors, zone, clock);
capacityPolicies = new CapacityPolicies(zone, nodeFlavors);
provisionLogger = new NullProvisionLogger();
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/NodeStateSerializerTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/NodeStateSerializerTest.java
index 5987b295dbe..c4f96b0709a 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/NodeStateSerializerTest.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/NodeStateSerializerTest.java
@@ -2,6 +2,7 @@
package com.yahoo.vespa.hosted.provision.restapi;
import com.yahoo.vespa.hosted.provision.Node;
+import com.yahoo.vespa.hosted.provision.restapi.v2.NodeStateSerializer;
import org.junit.Test;
import java.util.HashSet;
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v1/RestApiTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v1/RestApiTest.java
index 28b93544238..5374cd52e0f 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v1/RestApiTest.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v1/RestApiTest.java
@@ -77,7 +77,7 @@ public class RestApiTest {
private static final NodeFlavors flavors = FlavorConfigBuilder.createDummies("default");
public MockNodeRepository() throws Exception {
- super(flavors, new MockCurator(), Clock.systemUTC());
+ super(flavors, new MockCurator(), Clock.systemUTC(), Zone.defaultZone());
populate();
}