diff options
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; } |