diff options
author | Valerij Fredriksen <valerijf@verizonmedia.com> | 2020-10-28 16:55:34 +0100 |
---|---|---|
committer | Valerij Fredriksen <valerijf@verizonmedia.com> | 2020-11-03 16:26:57 +0100 |
commit | fec9f4dbe0c135e179ddae83967792a8002307c0 (patch) | |
tree | 4958c1406a1861774514b4fe774bdc73231283c2 /controller-api | |
parent | c3c0c67621ec2ad422e69159fe46698e45e2cac1 (diff) |
Add exclusiveTo to controllers's config server client
Diffstat (limited to 'controller-api')
3 files changed, 16 insertions, 2 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 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<TenantName> reservedTo; + private final Optional<ApplicationId> exclusiveTo; private final Map<String, JsonNode> reports; public Node(HostName hostname, Optional<HostName> parentHostname, State state, NodeType type, NodeResources resources, Optional<ApplicationId> owner, @@ -58,7 +59,8 @@ public class Node { Optional<Instant> currentFirmwareCheck, Optional<Instant> wantedFirmwareCheck, ServiceState serviceState, Optional<Instant> suspendedSince, long restartGeneration, long wantedRestartGeneration, long rebootGeneration, long wantedRebootGeneration, int cost, String flavor, String clusterId, ClusterType clusterType, boolean wantToRetire, boolean wantToDeprovision, - Optional<TenantName> reservedTo, DockerImage wantedDockerImage, DockerImage currentDockerImage, Map<String, JsonNode> reports) { + Optional<TenantName> reservedTo, Optional<ApplicationId> exclusiveTo, + DockerImage wantedDockerImage, DockerImage currentDockerImage, Map<String, JsonNode> 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<TenantName> reservedTo() { return reservedTo; } + public Optional<ApplicationId> exclusiveTo() { return exclusiveTo; } + public Map<String, JsonNode> reports() { return reports; } @@ -267,6 +272,7 @@ public class Node { private boolean wantToRetire; private boolean wantToDeprovision; private Optional<TenantName> reservedTo = Optional.empty(); + private Optional<ApplicationId> exclusiveTo = Optional.empty(); private Map<String, JsonNode> 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 + '}'; } } |