summaryrefslogtreecommitdiffstats
path: root/controller-server
diff options
context:
space:
mode:
authorOla Aunrønning <olaa@verizonmedia.com>2019-11-14 12:25:37 +0100
committerOla Aunrønning <olaa@verizonmedia.com>2019-11-14 13:17:12 +0100
commita078c9d8d365682639477c6d499a48fe12b56ecd (patch)
tree55d7e5b6fa6e08de0d002823292fd0a3e7c8ca3b /controller-server
parente2308376344d4fa36ccc4d8e72b802b5953864fe (diff)
Created maintainer for resource tagging
Diffstat (limited to 'controller-server')
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/ControllerMaintenance.java3
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/ResourceTagMaintainer.java53
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/integration/ConfigServerMock.java7
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/integration/NodeRepositoryMock.java10
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/integration/ServiceRegistryMock.java8
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/ClusterInfoMaintainerTest.java2
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/OsUpgraderTest.java4
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/ResourceTagMaintainerTest.java53
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/SystemUpgraderTest.java4
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/controller/responses/maintenance.json3
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/os/OsApiTest.java2
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/versions/VersionStatusTest.java4
12 files changed, 142 insertions, 11 deletions
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/ControllerMaintenance.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/ControllerMaintenance.java
index 1743cad32e4..47959abfab4 100644
--- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/ControllerMaintenance.java
+++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/ControllerMaintenance.java
@@ -46,6 +46,7 @@ public class ControllerMaintenance extends AbstractComponent {
private final BillingMaintainer billingMaintainer;
private final CloudEventReporter cloudEventReporter;
private final RotationStatusUpdater rotationStatusUpdater;
+ private final ResourceTagMaintainer resourceTagMaintainer;
@Inject
@SuppressWarnings("unused") // instantiated by Dependency Injection
@@ -77,6 +78,7 @@ public class ControllerMaintenance extends AbstractComponent {
billingMaintainer = new BillingMaintainer(controller, Duration.ofDays(3), jobControl);
cloudEventReporter = new CloudEventReporter(controller, Duration.ofDays(1), jobControl);
rotationStatusUpdater = new RotationStatusUpdater(controller, maintenanceInterval, jobControl);
+ resourceTagMaintainer = new ResourceTagMaintainer(controller, Duration.ofMinutes(30), jobControl, controller.serviceRegistry().resourceTagger());
}
public Upgrader upgrader() { return upgrader; }
@@ -107,6 +109,7 @@ public class ControllerMaintenance extends AbstractComponent {
billingMaintainer.deconstruct();
cloudEventReporter.deconstruct();
rotationStatusUpdater.deconstruct();
+ resourceTagMaintainer.deconstruct();
}
/** Create one OS upgrader per cloud found in the zone registry of controller */
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/ResourceTagMaintainer.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/ResourceTagMaintainer.java
new file mode 100644
index 00000000000..32c8d64bf29
--- /dev/null
+++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/ResourceTagMaintainer.java
@@ -0,0 +1,53 @@
+// Copyright 2019 Oath Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+package com.yahoo.vespa.hosted.controller.maintenance;
+
+import com.yahoo.config.provision.CloudName;
+import com.yahoo.config.provision.HostName;
+import com.yahoo.config.provision.TenantName;
+import com.yahoo.config.provision.zone.ZoneId;
+import com.yahoo.vespa.hosted.controller.Controller;
+import com.yahoo.vespa.hosted.controller.api.integration.aws.ResourceTagger;
+
+import java.time.Duration;
+import java.util.Map;
+import java.util.logging.Level;
+import java.util.stream.Collectors;
+
+/**
+ * @author olaa
+ */
+public class ResourceTagMaintainer extends Maintainer {
+
+ private final ResourceTagger resourceTagger;
+
+ public ResourceTagMaintainer(Controller controller, Duration interval, JobControl jobControl, ResourceTagger resourceTagger) {
+ super(controller, interval, jobControl);
+ this.resourceTagger = resourceTagger;
+ }
+
+ @Override
+ public void maintain() {
+ controller().zoneRegistry().zones()
+ .ofCloud(CloudName.from("aws"))
+ .reachable()
+ .zones().forEach(zone -> {
+ Map<HostName, TenantName> tenantOfHosts = getTenantOfParentHosts(zone.getId());
+ int taggedResources = resourceTagger.tagResources(zone, tenantOfHosts);
+ if (taggedResources > 0)
+ log.log(Level.INFO, "Tagged " + taggedResources + " resources in " + zone.getId());
+ });
+
+
+ }
+
+ private Map<HostName, TenantName> getTenantOfParentHosts(ZoneId zoneId) {
+ return controller().serviceRegistry().configServer().nodeRepository()
+ .list(zoneId)
+ .stream()
+ .filter(node -> node.parentHostname().isPresent() && node.owner().isPresent())
+ .collect(Collectors.toMap(
+ node -> node.parentHostname().get(),
+ node -> node.owner().get().tenant()
+ ));
+ }
+}
diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/integration/ConfigServerMock.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/integration/ConfigServerMock.java
index 1025901dc15..d466681255a 100644
--- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/integration/ConfigServerMock.java
+++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/integration/ConfigServerMock.java
@@ -85,6 +85,7 @@ public class ConfigServerMock extends AbstractComponent implements ConfigServer
/** Assigns a reserved tenant node to the given deployment, with initial versions. */
public void provision(ZoneId zone, ApplicationId application) {
nodeRepository().putByHostname(zone, new Node(hostFor(application, zone),
+ Optional.empty(),
Node.State.reserved,
NodeType.tenant,
Optional.of(application),
@@ -113,6 +114,7 @@ public class ConfigServerMock extends AbstractComponent implements ConfigServer
HostName.from("node-" + i + "-" + application.id().application()
.value()
+ "-" + zone.value()),
+ Optional.empty(),
Node.State.active, application.nodeType(),
Optional.of(application.id()),
initialVersion,
@@ -175,14 +177,14 @@ public class ConfigServerMock extends AbstractComponent implements ConfigServer
for (Node node : nodeRepository().list(zone, application)) {
Node newNode;
if (osVersion) {
- newNode = new Node(node.hostname(), node.state(), node.type(), node.owner(), node.currentVersion(),
+ newNode = new Node(node.hostname(), Optional.empty(), node.state(), node.type(), node.owner(), node.currentVersion(),
node.wantedVersion(), version, version, node.serviceState(),
node.restartGeneration(), node.wantedRestartGeneration(), node.rebootGeneration(),
node.wantedRebootGeneration(), node.vcpu(), node.memoryGb(), node.diskGb(),
node.bandwidthGbps(), node.fastDisk(), node.cost(), node.canonicalFlavor(),
node.clusterId(), node.clusterType());
} else {
- newNode = new Node(node.hostname(), node.state(), node.type(), node.owner(), version,
+ newNode = new Node(node.hostname(), Optional.empty(), node.state(), node.type(), node.owner(), version,
version, node.currentOsVersion(), node.wantedOsVersion(), node.serviceState(),
node.restartGeneration(), node.wantedRestartGeneration(), node.rebootGeneration(),
node.wantedRebootGeneration(), node.vcpu(), node.memoryGb(), node.diskGb(),
@@ -306,6 +308,7 @@ public class ConfigServerMock extends AbstractComponent implements ConfigServer
List<Node> nodes = nodeRepository.list(deployment.zoneId(), deployment.applicationId());
for (Node node : nodes) {
nodeRepository.putByHostname(deployment.zoneId(), new Node(node.hostname(),
+ Optional.empty(),
Node.State.active,
node.type(),
node.owner(),
diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/integration/NodeRepositoryMock.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/integration/NodeRepositoryMock.java
index 7cec6a00f8e..d3b33581214 100644
--- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/integration/NodeRepositoryMock.java
+++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/integration/NodeRepositoryMock.java
@@ -67,6 +67,7 @@ public class NodeRepositoryMock implements NodeRepository {
public void addFixedNodes(ZoneId zone) {
var nodeA = new Node(HostName.from("hostA"),
+ Optional.of(HostName.from("parentHostA")),
Node.State.active,
NodeType.tenant,
Optional.of(ApplicationId.from("tenant1", "app1", "default")),
@@ -89,6 +90,7 @@ public class NodeRepositoryMock implements NodeRepository {
"clusterA",
Node.ClusterType.container);
var nodeB = new Node(HostName.from("hostB"),
+ Optional.of(HostName.from("parentHostB")),
Node.State.active,
NodeType.tenant,
Optional.of(ApplicationId.from("tenant2", "app2", "default")),
@@ -160,7 +162,7 @@ public class NodeRepositoryMock implements NodeRepository {
nodeRepository.getOrDefault(zone, Collections.emptyMap()).values()
.stream()
.filter(node -> node.type() == type)
- .map(node -> new Node(node.hostname(), node.state(), node.type(), node.owner(),
+ .map(node -> new Node(node.hostname(), node.parentHostname(), node.state(), node.type(), node.owner(),
node.currentVersion(), version))
.forEach(node -> putByHostname(zone, node));
}
@@ -191,7 +193,7 @@ public class NodeRepositoryMock implements NodeRepository {
public void doUpgrade(DeploymentId deployment, Optional<HostName> hostName, Version version) {
modifyNodes(deployment, hostName, node -> {
assert node.wantedVersion().equals(version);
- return new Node(node.hostname(), node.state(), node.type(), node.owner(), version, version);
+ return new Node(node.hostname(), node.parentHostname(), node.state(), node.type(), node.owner(), version, version);
});
}
@@ -205,6 +207,7 @@ public class NodeRepositoryMock implements NodeRepository {
public void requestRestart(DeploymentId deployment, Optional<HostName> hostname) {
modifyNodes(deployment, hostname, node -> new Node(node.hostname(),
+ node.parentHostname(),
node.state(),
node.type(),
node.owner(),
@@ -230,6 +233,7 @@ public class NodeRepositoryMock implements NodeRepository {
public void doRestart(DeploymentId deployment, Optional<HostName> hostname) {
modifyNodes(deployment, hostname, node -> new Node(node.hostname(),
+ node.parentHostname(),
node.state(),
node.type(),
node.owner(),
@@ -255,6 +259,7 @@ public class NodeRepositoryMock implements NodeRepository {
public void requestReboot(DeploymentId deployment, Optional<HostName> hostname) {
modifyNodes(deployment, hostname, node -> new Node(node.hostname(),
+ node.parentHostname(),
node.state(),
node.type(),
node.owner(),
@@ -280,6 +285,7 @@ public class NodeRepositoryMock implements NodeRepository {
public void doReboot(DeploymentId deployment, Optional<HostName> hostname) {
modifyNodes(deployment, hostname, node -> new Node(node.hostname(),
+ node.parentHostname(),
node.state(),
node.type(),
node.owner(),
diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/integration/ServiceRegistryMock.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/integration/ServiceRegistryMock.java
index eced161cebc..bd82807342e 100644
--- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/integration/ServiceRegistryMock.java
+++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/integration/ServiceRegistryMock.java
@@ -8,6 +8,8 @@ import com.yahoo.config.provision.SystemName;
import com.yahoo.test.ManualClock;
import com.yahoo.vespa.hosted.controller.api.integration.ServiceRegistry;
import com.yahoo.vespa.hosted.controller.api.integration.aws.MockAwsEventFetcher;
+import com.yahoo.vespa.hosted.controller.api.integration.aws.MockResourceTagger;
+import com.yahoo.vespa.hosted.controller.api.integration.aws.ResourceTagger;
import com.yahoo.vespa.hosted.controller.api.integration.certificates.ApplicationCertificateMock;
import com.yahoo.vespa.hosted.controller.api.integration.configserver.ConfigServer;
import com.yahoo.vespa.hosted.controller.api.integration.dns.MemoryNameService;
@@ -57,6 +59,7 @@ public class ServiceRegistryMock extends AbstractComponent implements ServiceReg
private final ApplicationStoreMock applicationStoreMock = new ApplicationStoreMock();
private final MockRunDataStore mockRunDataStore = new MockRunDataStore();
private final MockTenantCost mockTenantCost = new MockTenantCost();
+ private final MockResourceTagger mockResourceTagger = new MockResourceTagger();
public ServiceRegistryMock(SystemName system) {
this.zoneRegistryMock = new ZoneRegistryMock(system);
@@ -180,6 +183,11 @@ public class ServiceRegistryMock extends AbstractComponent implements ServiceReg
return zoneRegistryMock;
}
+ @Override
+ public ResourceTagger resourceTagger() {
+ return mockResourceTagger;
+ }
+
public ConfigServerMock configServerMock() {
return configServerMock;
}
diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/ClusterInfoMaintainerTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/ClusterInfoMaintainerTest.java
index 9739a24af01..bab0bb0615e 100644
--- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/ClusterInfoMaintainerTest.java
+++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/ClusterInfoMaintainerTest.java
@@ -54,6 +54,7 @@ public class ClusterInfoMaintainerTest {
private void addNodes(ZoneId zone) {
var nodeA = new Node(HostName.from("hostA"),
+ Optional.empty(),
Node.State.active,
NodeType.tenant,
Optional.of(ApplicationId.from("tenant1", "app1", "default")),
@@ -76,6 +77,7 @@ public class ClusterInfoMaintainerTest {
"clusterA",
Node.ClusterType.container);
var nodeB = new Node(HostName.from("hostB"),
+ Optional.empty(),
Node.State.active,
NodeType.tenant,
Optional.of(ApplicationId.from("tenant1", "app1", "default")),
diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/OsUpgraderTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/OsUpgraderTest.java
index 8a5dc7594f9..f39bff416dd 100644
--- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/OsUpgraderTest.java
+++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/OsUpgraderTest.java
@@ -154,7 +154,7 @@ public class OsUpgraderTest {
throw new IllegalArgumentException("No nodes allocated to " + application.id());
}
Node node = nodes.get(0);
- nodeRepository().putByHostname(zone, new Node(node.hostname(), Node.State.failed, node.type(), node.owner(),
+ nodeRepository().putByHostname(zone, new Node(node.hostname(), node.parentHostname(), Node.State.failed, node.type(), node.owner(),
node.currentVersion(), node.wantedVersion()));
}
@@ -164,7 +164,7 @@ public class OsUpgraderTest {
for (ZoneId zone : zones) {
for (Node node : nodesRequiredToUpgrade(zone, application)) {
nodeRepository().putByHostname(zone, new Node(
- node.hostname(), node.state(), node.type(), node.owner(), node.currentVersion(),
+ node.hostname(), node.parentHostname(), node.state(), node.type(), node.owner(), node.currentVersion(),
node.wantedVersion(), version, version, node.serviceState(),
node.restartGeneration(), node.wantedRestartGeneration(), node.rebootGeneration(),
node.wantedRebootGeneration(), node.vcpu(), node.memoryGb(), node.diskGb(),
diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/ResourceTagMaintainerTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/ResourceTagMaintainerTest.java
new file mode 100644
index 00000000000..2421a477568
--- /dev/null
+++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/ResourceTagMaintainerTest.java
@@ -0,0 +1,53 @@
+package com.yahoo.vespa.hosted.controller.maintenance;
+
+import com.yahoo.config.provision.HostName;
+import com.yahoo.config.provision.TenantName;
+import com.yahoo.config.provision.zone.ZoneId;
+import com.yahoo.vespa.hosted.controller.ControllerTester;
+import com.yahoo.vespa.hosted.controller.api.integration.aws.MockResourceTagger;
+import com.yahoo.vespa.hosted.controller.integration.ZoneApiMock;
+import org.junit.Test;
+
+import java.time.Duration;
+import java.util.Map;
+
+import static org.junit.Assert.*;
+
+/**
+ * @author olaa
+ */
+public class ResourceTagMaintainerTest {
+
+ ControllerTester tester = new ControllerTester();
+
+ @Test
+ public void maintain() {
+ setUpZones();
+ MockResourceTagger mockResourceTagger = new MockResourceTagger();
+ ResourceTagMaintainer resourceTagMaintainer = new ResourceTagMaintainer(tester.controller(),
+ Duration.ofMinutes(5),
+ new JobControl(tester.curator()),
+ mockResourceTagger);
+ resourceTagMaintainer.maintain();
+ assertEquals(2, mockResourceTagger.getValues().size());
+ Map<HostName, TenantName> tenanForHost = mockResourceTagger.getValues().get(ZoneId.from("prod.region-2"));
+ assertEquals(TenantName.from("tenant1"), tenanForHost.get(HostName.from("parentHostA")));
+ assertEquals(TenantName.from("tenant2"), tenanForHost.get(HostName.from("parentHostB")));
+
+
+ }
+
+ private void setUpZones() {
+ ZoneApiMock nonAwsZone = ZoneApiMock.newBuilder().withId("test.region-1").build();
+ ZoneApiMock awsZone1 = ZoneApiMock.newBuilder().withId("prod.region-2").withCloud("aws").build();
+ ZoneApiMock awsZone2 = ZoneApiMock.newBuilder().withId("test.region-3").withCloud("aws").build();
+ tester.zoneRegistry().setZones(
+ nonAwsZone,
+ awsZone1,
+ awsZone2);
+ tester.configServer().nodeRepository().addFixedNodes(nonAwsZone.getId());
+ tester.configServer().nodeRepository().addFixedNodes(awsZone1.getId());
+ tester.configServer().nodeRepository().addFixedNodes(awsZone2.getId());
+ }
+
+} \ No newline at end of file
diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/SystemUpgraderTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/SystemUpgraderTest.java
index f3c18499f16..d83b0d2eafe 100644
--- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/SystemUpgraderTest.java
+++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/SystemUpgraderTest.java
@@ -301,7 +301,7 @@ public class SystemUpgraderTest {
for (Node node : listNodes(zone, application)) {
nodeRepository().putByHostname(
zone.getId(),
- new Node(node.hostname(), node.state(), node.type(), node.owner(), node.wantedVersion(), node.wantedVersion()));
+ new Node(node.hostname(), node.parentHostname(), node.state(), node.type(), node.owner(), node.wantedVersion(), node.wantedVersion()));
}
assertCurrentVersion(application, version, zone);
@@ -326,7 +326,7 @@ public class SystemUpgraderTest {
Node node = nodes.get(0);
nodeRepository().putByHostname(
zone.getId(),
- new Node(node.hostname(), Node.State.failed, node.type(), node.owner(), node.currentVersion(), node.wantedVersion()));
+ new Node(node.hostname(), node.parentHostname(), Node.State.failed, node.type(), node.owner(), node.currentVersion(), node.wantedVersion()));
}
private void assertSystemVersion(Version version) {
diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/controller/responses/maintenance.json b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/controller/responses/maintenance.json
index 28d2980181f..3371c5563c9 100644
--- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/controller/responses/maintenance.json
+++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/controller/responses/maintenance.json
@@ -52,6 +52,9 @@
"name": "ResourceMeterMaintainer"
},
{
+ "name": "ResourceTagMaintainer"
+ },
+ {
"name": "RotationStatusUpdater"
},
{
diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/os/OsApiTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/os/OsApiTest.java
index 89f11eae5ae..3b5b3ba7f9d 100644
--- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/os/OsApiTest.java
+++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/os/OsApiTest.java
@@ -145,7 +145,7 @@ public class OsApiTest extends ControllerContainerTest {
for (Node node : nodeRepository().list(zone, application.id())) {
var version = targetVersion.orElse(node.wantedOsVersion());
nodeRepository().putByHostname(zone, new Node(
- node.hostname(), node.state(), node.type(), node.owner(), node.currentVersion(),
+ node.hostname(), node.parentHostname(), node.state(), node.type(), node.owner(), node.currentVersion(),
node.wantedVersion(), version, version, node.serviceState(),
node.restartGeneration(), node.wantedRestartGeneration(), node.rebootGeneration(),
node.wantedRebootGeneration(), node.vcpu(), node.memoryGb(), node.diskGb(),
diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/versions/VersionStatusTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/versions/VersionStatusTest.java
index 06260da833f..5456c280d95 100644
--- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/versions/VersionStatusTest.java
+++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/versions/VersionStatusTest.java
@@ -66,7 +66,7 @@ public class VersionStatusTest {
// Upgrade some config servers
for (ZoneApi zone : tester.zoneRegistry().zones().all().zones()) {
for (Node node : tester.configServer().nodeRepository().list(zone.getId(), SystemApplication.configServer.id())) {
- Node upgradedNode = new Node(node.hostname(), node.state(), node.type(), node.owner(), version1, node.wantedVersion());
+ Node upgradedNode = new Node(node.hostname(), node.parentHostname(), node.state(), node.type(), node.owner(), version1, node.wantedVersion());
tester.configServer().nodeRepository().putByHostname(zone.getId(), upgradedNode);
break;
}
@@ -110,7 +110,7 @@ public class VersionStatusTest {
Version ancientVersion = Version.fromString("5.1");
for (ZoneApi zone : tester.controller().zoneRegistry().zones().all().zones()) {
for (Node node : tester.configServer().nodeRepository().list(zone.getId(), SystemApplication.configServer.id())) {
- Node downgradedNode = new Node(node.hostname(), node.state(), node.type(), node.owner(), ancientVersion, node.wantedVersion());
+ Node downgradedNode = new Node(node.hostname(), node.parentHostname(), node.state(), node.type(), node.owner(), ancientVersion, node.wantedVersion());
tester.configServer().nodeRepository().putByHostname(zone.getId(), downgradedNode);
break;
}