From fec9f4dbe0c135e179ddae83967792a8002307c0 Mon Sep 17 00:00:00 2001 From: Valerij Fredriksen Date: Wed, 28 Oct 2020 16:55:34 +0100 Subject: Add exclusiveTo to controllers's config server client --- .../controller/api/integration/configserver/Node.java | 16 ++++++++++++++-- .../api/integration/configserver/NodeRepository.java | 1 + .../integration/noderepository/NodeRepositoryNode.java | 1 + 3 files changed, 16 insertions(+), 2 deletions(-) (limited to 'controller-api') 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 b57b2dbc496..d1faacaeba7 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 @@ -51,6 +51,7 @@ public class Node { private final boolean wantToRetire; private final boolean wantToDeprovision; private final Optional reservedTo; + private final Optional exclusiveTo; private final Map reports; public Node(HostName hostname, Optional parentHostname, State state, NodeType type, NodeResources resources, Optional owner, @@ -58,7 +59,8 @@ public class Node { Optional currentFirmwareCheck, Optional wantedFirmwareCheck, ServiceState serviceState, Optional suspendedSince, long restartGeneration, long wantedRestartGeneration, long rebootGeneration, long wantedRebootGeneration, int cost, String flavor, String clusterId, ClusterType clusterType, boolean wantToRetire, boolean wantToDeprovision, - Optional reservedTo, DockerImage wantedDockerImage, DockerImage currentDockerImage, Map reports) { + Optional reservedTo, Optional exclusiveTo, + DockerImage wantedDockerImage, DockerImage currentDockerImage, Map reports) { this.hostname = hostname; this.parentHostname = parentHostname; this.state = state; @@ -84,6 +86,7 @@ public class Node { this.wantToRetire = wantToRetire; this.wantToDeprovision = wantToDeprovision; this.reservedTo = reservedTo; + this.exclusiveTo = exclusiveTo; this.wantedDockerImage = wantedDockerImage; this.currentDockerImage = currentDockerImage; this.reports = reports; @@ -193,6 +196,8 @@ public class Node { public Optional reservedTo() { return reservedTo; } + public Optional exclusiveTo() { return exclusiveTo; } + public Map reports() { return reports; } @@ -267,6 +272,7 @@ public class Node { private boolean wantToRetire; private boolean wantToDeprovision; private Optional reservedTo = Optional.empty(); + private Optional exclusiveTo = Optional.empty(); private Map reports = new HashMap<>(); public Builder() { } @@ -299,6 +305,7 @@ public class Node { this.wantToRetire = node.wantToRetire; this.wantToDeprovision = node.wantToDeprovision; this.reservedTo = node.reservedTo; + this.exclusiveTo = node.exclusiveTo; this.reports = node.reports; } @@ -437,11 +444,16 @@ public class Node { return this; } + public Builder exclusiveTo(ApplicationId exclusiveTo) { + this.exclusiveTo = Optional.of(exclusiveTo); + return this; + } + public Node build() { return new Node(hostname, parentHostname, state, type, resources, owner, currentVersion, wantedVersion, currentOsVersion, wantedOsVersion, currentFirmwareCheck, wantedFirmwareCheck, serviceState, suspendedSince, restartGeneration, wantedRestartGeneration, rebootGeneration, wantedRebootGeneration, - cost, flavor, clusterId, clusterType, wantToRetire, wantToDeprovision, reservedTo, + cost, flavor, clusterId, clusterType, wantToRetire, wantToDeprovision, reservedTo, exclusiveTo, wantedDockerImage, currentDockerImage, reports); } diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/configserver/NodeRepository.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/configserver/NodeRepository.java index 6f4b39ac9b9..1285670d52c 100644 --- a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/configserver/NodeRepository.java +++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/configserver/NodeRepository.java @@ -129,6 +129,7 @@ public interface NodeRepository { node.getWantToRetire(), node.getWantToDeprovision(), Optional.ofNullable(node.getReservedTo()).map(TenantName::from), + Optional.ofNullable(node.getExclusiveTo()).map(ApplicationId::fromSerializedForm), dockerImageFrom(node.getWantedDockerImage()), dockerImageFrom(node.getCurrentDockerImage()), node.getReports()); diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/noderepository/NodeRepositoryNode.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/noderepository/NodeRepositoryNode.java index a57080324ca..2e5132fe17d 100644 --- a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/noderepository/NodeRepositoryNode.java +++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/noderepository/NodeRepositoryNode.java @@ -418,6 +418,7 @@ public class NodeRepositoryNode { ", reports=" + reports + ", modelName=" + modelName + ", reservedTo=" + reservedTo + + ", exclusiveTo=" + exclusiveTo + '}'; } } -- cgit v1.2.3