summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/configserver/Node.java184
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/integration/ConfigServerMock.java64
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/integration/NodeRepositoryMock.java179
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/ClusterInfoMaintainerTest.java77
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/OsUpgraderTest.java11
-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/os/OsApiTest.java8
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/versions/VersionStatusTest.java4
8 files changed, 278 insertions, 253 deletions
diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/configserver/Node.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/configserver/Node.java
index e8ae7c181d8..cff7d9551a1 100644
--- a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/configserver/Node.java
+++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/configserver/Node.java
@@ -5,7 +5,6 @@ import com.yahoo.component.Version;
import com.yahoo.config.provision.ApplicationId;
import com.yahoo.config.provision.HostName;
import com.yahoo.config.provision.NodeType;
-import org.jetbrains.annotations.TestOnly;
import java.util.Objects;
import java.util.Optional;
@@ -65,20 +64,13 @@ public class Node {
this.diskGb = diskGb;
this.bandwidthGbps = bandwidthGbps;
this.fastDisk = fastDisk;
+ this.remoteStorage = remoteStorage;
this.cost = cost;
this.canonicalFlavor = canonicalFlavor;
this.clusterId = clusterId;
this.clusterType = clusterType;
}
- @TestOnly
- public Node(HostName hostname, Optional<HostName> parentHostname, State state, NodeType type, Optional<ApplicationId> owner,
- Version currentVersion, Version wantedVersion) {
- this(hostname, parentHostname, state, type, owner, currentVersion, wantedVersion,
- Version.emptyVersion, Version.emptyVersion, ServiceState.unorchestrated, 0, 0, 0, 0,
- 2, 8, 50, 1, true, 0, "d-2-8-50", "cluster", ClusterType.container);
- }
-
public HostName hostname() {
return hostname;
}
@@ -210,4 +202,178 @@ public class Node {
unknown
}
+ public static class Builder {
+ private HostName hostname;
+ private Optional<HostName> parentHostname = Optional.empty();
+ private State state;
+ private NodeType type;
+ private Optional<ApplicationId> owner = Optional.empty();
+ private Version currentVersion;
+ private Version wantedVersion;
+ private Version currentOsVersion;
+ private Version wantedOsVersion;
+ private ServiceState serviceState;
+ private long restartGeneration;
+ private long wantedRestartGeneration;
+ private long rebootGeneration;
+ private long wantedRebootGeneration;
+ private double vcpu;
+ private double memoryGb;
+ private double diskGb;
+ private double bandwidthGbps;
+ private boolean fastDisk;
+ private int cost;
+ private String canonicalFlavor;
+ private String clusterId;
+ private ClusterType clusterType;
+
+ public Builder() { }
+
+ public Builder(Node node) {
+ this.hostname = node.hostname;
+ this.parentHostname = node.parentHostname;
+ this.state = node.state;
+ this.type = node.type;
+ this.owner = node.owner;
+ this.currentVersion = node.currentVersion;
+ this.wantedVersion = node.wantedVersion;
+ this.currentOsVersion = node.currentOsVersion;
+ this.wantedOsVersion = node.wantedOsVersion;
+ this.serviceState = node.serviceState;
+ this.restartGeneration = node.restartGeneration;
+ this.wantedRestartGeneration = node.wantedRestartGeneration;
+ this.rebootGeneration = node.rebootGeneration;
+ this.wantedRebootGeneration = node.wantedRebootGeneration;
+ this.vcpu = node.vcpu;
+ this.memoryGb = node.memoryGb;
+ this.diskGb = node.diskGb;
+ this.bandwidthGbps = node.bandwidthGbps;
+ this.fastDisk = node.fastDisk;
+ this.cost = node.cost;
+ this.canonicalFlavor = node.canonicalFlavor;
+ this.clusterId = node.clusterId;
+ this.clusterType = node.clusterType;
+ }
+
+ public Builder hostname(HostName hostname) {
+ this.hostname = hostname;
+ return this;
+ }
+
+ public Builder parentHostname(HostName parentHostname) {
+ this.parentHostname = Optional.ofNullable(parentHostname);
+ return this;
+ }
+
+ public Builder state(State state) {
+ this.state = state;
+ return this;
+ }
+
+ public Builder type(NodeType type) {
+ this.type = type;
+ return this;
+ }
+
+ public Builder owner(ApplicationId owner) {
+ this.owner = Optional.ofNullable(owner);
+ return this;
+ }
+
+ public Builder currentVersion(Version currentVersion) {
+ this.currentVersion = currentVersion;
+ return this;
+ }
+
+ public Builder wantedVersion(Version wantedVersion) {
+ this.wantedVersion = wantedVersion;
+ return this;
+ }
+
+ public Builder currentOsVersion(Version currentOsVersion) {
+ this.currentOsVersion = currentOsVersion;
+ return this;
+ }
+
+ public Builder wantedOsVersion(Version wantedOsVersion) {
+ this.wantedOsVersion = wantedOsVersion;
+ return this;
+ }
+
+ public Builder serviceState(ServiceState serviceState) {
+ this.serviceState = serviceState;
+ return this;
+ }
+
+ public Builder restartGeneration(long restartGeneration) {
+ this.restartGeneration = restartGeneration;
+ return this;
+ }
+
+ public Builder wantedRestartGeneration(long wantedRestartGeneration) {
+ this.wantedRestartGeneration = wantedRestartGeneration;
+ return this;
+ }
+
+ public Builder rebootGeneration(long rebootGeneration) {
+ this.rebootGeneration = rebootGeneration;
+ return this;
+ }
+
+ public Builder wantedRebootGeneration(long wantedRebootGeneration) {
+ this.wantedRebootGeneration = wantedRebootGeneration;
+ return this;
+ }
+
+ public Builder vcpu(double vcpu) {
+ this.vcpu = vcpu;
+ return this;
+ }
+
+ public Builder memoryGb(double memoryGb) {
+ this.memoryGb = memoryGb;
+ return this;
+ }
+
+ public Builder diskGb(double diskGb) {
+ this.diskGb = diskGb;
+ return this;
+ }
+
+ public Builder bandwidthGbps(double bandwidthGbps) {
+ this.bandwidthGbps = bandwidthGbps;
+ return this;
+ }
+
+ public Builder fastDisk(boolean fastDisk) {
+ this.fastDisk = fastDisk;
+ return this;
+ }
+
+ public Builder cost(int cost) {
+ this.cost = cost;
+ return this;
+ }
+
+ public Builder canonicalFlavor(String canonicalFlavor) {
+ this.canonicalFlavor = canonicalFlavor;
+ return this;
+ }
+
+ public Builder clusterId(String clusterId) {
+ this.clusterId = clusterId;
+ return this;
+ }
+
+ public Builder clusterType(ClusterType clusterType) {
+ this.clusterType = clusterType;
+ return this;
+ }
+
+ public Node build() {
+ return new Node(hostname, parentHostname, state, type, owner, currentVersion, wantedVersion, currentOsVersion,
+ wantedOsVersion, serviceState, restartGeneration, wantedRestartGeneration, rebootGeneration, wantedRebootGeneration,
+ vcpu, memoryGb, diskGb, bandwidthGbps, fastDisk, cost, canonicalFlavor, clusterId, clusterType);
+ }
+ }
}
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 d466681255a..3ec85f7c8c8 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
@@ -84,13 +84,19 @@ 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),
- initialVersion,
- initialVersion));
+ nodeRepository().putByHostname(zone, new Node.Builder().hostname(hostFor(application, zone))
+ .state(Node.State.reserved)
+ .type(NodeType.tenant)
+ .owner(application)
+ .currentVersion(initialVersion)
+ .wantedVersion(initialVersion)
+ .vcpu(2).memoryGb(8).diskGb(50).bandwidthGbps(1)
+ .fastDisk(true)
+ .serviceState(Node.ServiceState.unorchestrated)
+ .canonicalFlavor("d-2-8-50")
+ .clusterId("cluster")
+ .clusterType(Node.ClusterType.container)
+ .build());
}
public HostName hostFor(ApplicationId application, ZoneId zone) {
@@ -110,16 +116,15 @@ public class ConfigServerMock extends AbstractComponent implements ConfigServer
for (ZoneId zone : zones) {
for (SystemApplication application : applications) {
List<Node> nodes = IntStream.rangeClosed(1, 3)
- .mapToObj(i -> new Node(
- HostName.from("node-" + i + "-" + application.id().application()
- .value()
- + "-" + zone.value()),
- Optional.empty(),
- Node.State.active, application.nodeType(),
- Optional.of(application.id()),
- initialVersion,
- initialVersion
- ))
+ .mapToObj(i -> new Node.Builder()
+ .hostname(HostName.from("node-" + i + "-" + application.id().application()
+ .value() + "-" + zone.value()))
+ .state(Node.State.active)
+ .type(application.nodeType())
+ .owner(application.id())
+ .currentVersion(initialVersion).wantedVersion(initialVersion)
+ .currentOsVersion(Version.emptyVersion).wantedOsVersion(Version.emptyVersion)
+ .build())
.collect(Collectors.toList());
nodeRepository().putByHostname(zone, nodes);
convergeServices(application.id(), zone);
@@ -177,19 +182,9 @@ public class ConfigServerMock extends AbstractComponent implements ConfigServer
for (Node node : nodeRepository().list(zone, application)) {
Node newNode;
if (osVersion) {
- 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());
+ newNode = new Node.Builder(node).currentOsVersion(version).wantedOsVersion(version).build();
} else {
- 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(),
- node.bandwidthGbps(), node.fastDisk(), node.cost(), node.canonicalFlavor(),
- node.clusterId(), node.clusterType());
+ newNode = new Node.Builder(node).currentVersion(version).wantedVersion(version).build();
}
nodeRepository().putByHostname(zone, newNode);
if (++n == nodeCount) break;
@@ -307,13 +302,10 @@ public class ConfigServerMock extends AbstractComponent implements ConfigServer
application.activate();
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(),
- node.currentVersion(),
- application.version().get()));
+ nodeRepository.putByHostname(deployment.zoneId(), new Node.Builder(node)
+ .state(Node.State.active)
+ .wantedVersion(application.version().get())
+ .build());
}
serviceStatus.put(deployment, new ServiceConvergence(deployment.applicationId(),
deployment.zoneId(),
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 d3b33581214..c444c3966de 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
@@ -66,52 +66,38 @@ 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")),
- Version.fromString("7.42"),
- Version.fromString("7.42"),
- Version.fromString("7.6"),
- Version.fromString("7.6"),
- Node.ServiceState.expectedUp,
- 0,
- 0,
- 0,
- 0,
- 24,
- 24,
- 500,
- 1000,
- false,
- 10,
- "C-2B/24/500",
- "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")),
- Version.fromString("7.42"),
- Version.fromString("7.42"),
- Version.fromString("7.6"),
- Version.fromString("7.6"),
- Node.ServiceState.expectedUp,
- 0,
- 0,
- 0,
- 0,
- 40,
- 24,
- 500,
- 1000,
- false,
- 20,
- "C-2C/24/500",
- "clusterB",
- Node.ClusterType.container);
+ var nodeA = new Node.Builder()
+ .hostname(HostName.from("hostA"))
+ .parentHostname(HostName.from("parentHostA"))
+ .state(Node.State.active)
+ .type(NodeType.tenant)
+ .owner(ApplicationId.from("tenant1", "app1", "default"))
+ .currentVersion(Version.fromString("7.42"))
+ .wantedVersion(Version.fromString("7.42"))
+ .currentOsVersion(Version.fromString("7.6"))
+ .wantedOsVersion(Version.fromString("7.6"))
+ .serviceState(Node.ServiceState.expectedUp)
+ .vcpu(24).memoryGb(24).diskGb(500)
+ .cost(10)
+ .clusterId("clusterA")
+ .clusterType(Node.ClusterType.container)
+ .build();
+ var nodeB = new Node.Builder()
+ .hostname(HostName.from("hostB"))
+ .parentHostname(HostName.from("parentHostB"))
+ .state(Node.State.active)
+ .type(NodeType.tenant)
+ .owner(ApplicationId.from("tenant2", "app2", "default"))
+ .currentVersion(Version.fromString("7.42"))
+ .wantedVersion(Version.fromString("7.42"))
+ .currentOsVersion(Version.fromString("7.6"))
+ .wantedOsVersion(Version.fromString("7.6"))
+ .serviceState(Node.ServiceState.expectedUp)
+ .vcpu(40).memoryGb(24).diskGb(500)
+ .cost(20)
+ .clusterId("clusterB")
+ .clusterType(Node.ClusterType.container)
+ .build();
addNodes(zone, List.of(nodeA, nodeB));
}
@@ -162,8 +148,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.parentHostname(), node.state(), node.type(), node.owner(),
- node.currentVersion(), version))
+ .map(node -> new Node.Builder(node).wantedVersion(version).build())
.forEach(node -> putByHostname(zone, node));
}
@@ -193,7 +178,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.parentHostname(), node.state(), node.type(), node.owner(), version, version);
+ return new Node.Builder(node).currentVersion(version).build();
});
}
@@ -206,107 +191,19 @@ 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(),
- node.currentVersion(),
- node.wantedVersion(),
- node.currentOsVersion(),
- node.wantedOsVersion(),
- node.serviceState(),
- node.restartGeneration(),
- node.wantedRestartGeneration() + 1,
- node.rebootGeneration(),
- node.wantedRebootGeneration(),
- node.vcpu(),
- node.memoryGb(),
- node.diskGb(),
- node.bandwidthGbps(),
- node.fastDisk(),
- node.cost(),
- node.canonicalFlavor(),
- node.clusterId(),
- node.clusterType()));
+ modifyNodes(deployment, hostname, node -> new Node.Builder(node).wantedRestartGeneration(node.wantedRestartGeneration() + 1).build());
}
public void doRestart(DeploymentId deployment, Optional<HostName> hostname) {
- modifyNodes(deployment, hostname, node -> new Node(node.hostname(),
- node.parentHostname(),
- node.state(),
- node.type(),
- node.owner(),
- node.currentVersion(),
- node.wantedVersion(),
- node.currentOsVersion(),
- node.wantedOsVersion(),
- node.serviceState(),
- node.restartGeneration() + 1,
- node.wantedRestartGeneration(),
- node.rebootGeneration(),
- node.wantedRebootGeneration(),
- node.vcpu(),
- node.memoryGb(),
- node.diskGb(),
- node.bandwidthGbps(),
- node.fastDisk(),
- node.cost(),
- node.canonicalFlavor(),
- node.clusterId(),
- node.clusterType()));
+ modifyNodes(deployment, hostname, node -> new Node.Builder(node).restartGeneration(node.restartGeneration() + 1).build());
}
public void requestReboot(DeploymentId deployment, Optional<HostName> hostname) {
- modifyNodes(deployment, hostname, node -> new Node(node.hostname(),
- node.parentHostname(),
- node.state(),
- node.type(),
- node.owner(),
- node.currentVersion(),
- node.wantedVersion(),
- node.currentOsVersion(),
- node.wantedOsVersion(),
- node.serviceState(),
- node.restartGeneration(),
- node.wantedRestartGeneration(),
- node.rebootGeneration(),
- node.wantedRebootGeneration() + 1,
- node.vcpu(),
- node.memoryGb(),
- node.diskGb(),
- node.bandwidthGbps(),
- node.fastDisk(),
- node.cost(),
- node.canonicalFlavor(),
- node.clusterId(),
- node.clusterType()));
+ modifyNodes(deployment, hostname, node -> new Node.Builder(node).wantedRebootGeneration(node.wantedRebootGeneration() + 1).build());
}
public void doReboot(DeploymentId deployment, Optional<HostName> hostname) {
- modifyNodes(deployment, hostname, node -> new Node(node.hostname(),
- node.parentHostname(),
- node.state(),
- node.type(),
- node.owner(),
- node.currentVersion(),
- node.wantedVersion(),
- node.currentOsVersion(),
- node.wantedOsVersion(),
- node.serviceState(),
- node.restartGeneration(),
- node.wantedRestartGeneration(),
- node.rebootGeneration() + 1,
- node.wantedRebootGeneration(),
- node.vcpu(),
- node.memoryGb(),
- node.diskGb(),
- node.bandwidthGbps(),
- node.fastDisk(),
- node.cost(),
- node.canonicalFlavor(),
- node.clusterId(),
- node.clusterType()));
+ modifyNodes(deployment, hostname, node -> new Node.Builder(node).rebootGeneration(node.rebootGeneration() + 1).build());
}
}
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 bab0bb0615e..c78be975f7e 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
@@ -16,7 +16,6 @@ import org.junit.Test;
import java.time.Duration;
import java.util.List;
-import java.util.Optional;
import static org.junit.Assert.assertEquals;
@@ -53,52 +52,36 @@ 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")),
- Version.fromString("7.42"),
- Version.fromString("7.42"),
- Version.fromString("7.6"),
- Version.fromString("7.6"),
- Node.ServiceState.expectedUp,
- 0,
- 0,
- 0,
- 0,
- 24,
- 24,
- 500,
- 1000,
- false,
- 10,
- "C-2B/24/500",
- "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")),
- Version.fromString("7.42"),
- Version.fromString("7.42"),
- Version.fromString("7.6"),
- Version.fromString("7.6"),
- Node.ServiceState.expectedUp,
- 0,
- 0,
- 0,
- 0,
- 40,
- 24,
- 500,
- 1000,
- false,
- 20,
- "C-2C/24/500",
- "clusterB",
- Node.ClusterType.container);
+ var nodeA = new Node.Builder()
+ .hostname(HostName.from("hostA"))
+ .parentHostname(HostName.from("parentHostA"))
+ .state(Node.State.active)
+ .type(NodeType.tenant)
+ .owner(ApplicationId.from("tenant1", "app1", "default"))
+ .currentVersion(Version.fromString("7.42"))
+ .wantedVersion(Version.fromString("7.42"))
+ .currentOsVersion(Version.fromString("7.6"))
+ .wantedOsVersion(Version.fromString("7.6"))
+ .serviceState(Node.ServiceState.expectedUp)
+ .cost(10)
+ .clusterId("clusterA")
+ .clusterType(Node.ClusterType.container)
+ .build();
+ var nodeB = new Node.Builder()
+ .hostname(HostName.from("hostB"))
+ .parentHostname(HostName.from("parentHostB"))
+ .state(Node.State.active)
+ .type(NodeType.tenant)
+ .owner(ApplicationId.from("tenant1", "app1", "default"))
+ .currentVersion(Version.fromString("7.42"))
+ .wantedVersion(Version.fromString("7.42"))
+ .currentOsVersion(Version.fromString("7.6"))
+ .wantedOsVersion(Version.fromString("7.6"))
+ .serviceState(Node.ServiceState.expectedUp)
+ .cost(20)
+ .clusterId("clusterB")
+ .clusterType(Node.ClusterType.container)
+ .build();
tester.configServer().nodeRepository().addNodes(zone, List.of(nodeA, nodeB));
}
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 f39bff416dd..cf3d978ef62 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,8 +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.parentHostname(), Node.State.failed, node.type(), node.owner(),
- node.currentVersion(), node.wantedVersion()));
+ nodeRepository().putByHostname(zone, new Node.Builder(node).state(Node.State.failed).build());
}
/** Simulate OS upgrade of nodes allocated to application. In a real system this is done by the node itself */
@@ -163,13 +162,7 @@ public class OsUpgraderTest {
assertWanted(version, application, zones);
for (ZoneId zone : zones) {
for (Node node : nodesRequiredToUpgrade(zone, application)) {
- nodeRepository().putByHostname(zone, new Node(
- 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(),
- node.bandwidthGbps(), node.fastDisk(), node.cost(), node.canonicalFlavor(),
- node.clusterId(), node.clusterType()));
+ nodeRepository().putByHostname(zone, new Node.Builder(node).wantedOsVersion(version).currentOsVersion(version).build());
}
assertCurrent(version, application, zone);
}
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 d83b0d2eafe..08dbd7e48db 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.parentHostname(), node.state(), node.type(), node.owner(), node.wantedVersion(), node.wantedVersion()));
+ new Node.Builder(node).currentVersion(node.wantedVersion()).build());
}
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.parentHostname(), Node.State.failed, node.type(), node.owner(), node.currentVersion(), node.wantedVersion()));
+ new Node.Builder(node).state(Node.State.failed).build());
}
private void assertSystemVersion(Version version) {
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 3b5b3ba7f9d..7370cf12d5a 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
@@ -144,13 +144,7 @@ public class OsApiTest extends ControllerContainerTest {
var targetVersion = nodeRepository().targetVersionsOf(zone).osVersion(application.nodeType());
for (Node node : nodeRepository().list(zone, application.id())) {
var version = targetVersion.orElse(node.wantedOsVersion());
- nodeRepository().putByHostname(zone, new Node(
- 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(),
- node.bandwidthGbps(), node.fastDisk(), node.cost(), node.canonicalFlavor(),
- node.clusterId(), node.clusterType()));
+ nodeRepository().putByHostname(zone, new Node.Builder(node).currentOsVersion(version).wantedOsVersion(version).build());
}
}
}
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 5456c280d95..ae81b83ccf0 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.parentHostname(), node.state(), node.type(), node.owner(), version1, node.wantedVersion());
+ Node upgradedNode = new Node.Builder(node).currentVersion(version1).build();
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.parentHostname(), node.state(), node.type(), node.owner(), ancientVersion, node.wantedVersion());
+ Node downgradedNode = new Node.Builder(node).currentVersion(ancientVersion).build();
tester.configServer().nodeRepository().putByHostname(zone.getId(), downgradedNode);
break;
}