diff options
author | Morten Tokle <mortent@verizonmedia.com> | 2021-02-23 15:11:50 +0100 |
---|---|---|
committer | Morten Tokle <mortent@verizonmedia.com> | 2021-02-24 08:53:15 +0100 |
commit | e356a69e30c5bb7f74fe3ca3772fe4dfac4427f3 (patch) | |
tree | 29d7246cc13212d3dd2e524be4185470157a7253 /node-admin | |
parent | 8296c81b4c9d9c5d65c4ff92310b414b3721b777 (diff) |
Read exclusiveTo field
Diffstat (limited to 'node-admin')
3 files changed, 27 insertions, 5 deletions
diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/NodeSpec.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/NodeSpec.java index 01a6e87fb58..f7d68fe87ea 100644 --- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/NodeSpec.java +++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/NodeSpec.java @@ -62,6 +62,8 @@ public class NodeSpec { private final Optional<String> parentHostname; private final Optional<URI> archiveUri; + private final Optional<ApplicationId> exclusiveTo; + public NodeSpec( String hostname, Optional<DockerImage> wantedDockerImage, @@ -88,7 +90,8 @@ public class NodeSpec { Set<String> additionalIpAddresses, NodeReports reports, Optional<String> parentHostname, - Optional<URI> archiveUri) { + Optional<URI> archiveUri, + Optional<ApplicationId> exclusiveTo) { if (state == NodeState.active) { requireOptional(owner, "owner"); requireOptional(membership, "membership"); @@ -124,6 +127,7 @@ public class NodeSpec { this.reports = Objects.requireNonNull(reports); this.parentHostname = Objects.requireNonNull(parentHostname); this.archiveUri = Objects.requireNonNull(archiveUri); + this.exclusiveTo = Objects.requireNonNull(exclusiveTo); } public String hostname() { @@ -252,6 +256,10 @@ public class NodeSpec { return archiveUri; } + public Optional<ApplicationId> exclusiveTo() { + return exclusiveTo; + } + @Override public boolean equals(Object o) { if (this == o) return true; @@ -283,7 +291,8 @@ public class NodeSpec { Objects.equals(additionalIpAddresses, that.additionalIpAddresses) && Objects.equals(reports, that.reports) && Objects.equals(parentHostname, that.parentHostname) && - Objects.equals(archiveUri, that.archiveUri); + Objects.equals(archiveUri, that.archiveUri) && + Objects.equals(exclusiveTo, that.exclusiveTo); } @Override @@ -313,7 +322,8 @@ public class NodeSpec { additionalIpAddresses, reports, parentHostname, - archiveUri); + archiveUri, + exclusiveTo); } @Override @@ -344,6 +354,7 @@ public class NodeSpec { + " reports=" + reports + " parentHostname=" + parentHostname + " archiveUri=" + archiveUri + + " exclusiveTo=" + exclusiveTo + " }"; } @@ -374,6 +385,7 @@ public class NodeSpec { private NodeReports reports = new NodeReports(); private Optional<String> parentHostname = Optional.empty(); private Optional<URI> archiveUri = Optional.empty(); + private Optional<ApplicationId> exclusiveTo = Optional.empty(); public Builder() {} @@ -403,6 +415,7 @@ public class NodeSpec { node.currentFirmwareCheck.ifPresent(this::currentFirmwareCheck); node.parentHostname.ifPresent(this::parentHostname); node.archiveUri.ifPresent(this::archiveUri); + node.exclusiveTo.ifPresent(this::exclusiveTo); } public Builder hostname(String hostname) { @@ -560,6 +573,11 @@ public class NodeSpec { return this; } + public Builder exclusiveTo(ApplicationId applicationId) { + this.exclusiveTo = Optional.of(applicationId); + return this; + } + public Builder updateFromNodeAttributes(NodeAttributes attributes) { attributes.getDockerImage().ifPresent(this::currentDockerImage); attributes.getCurrentOsVersion().ifPresent(this::currentOsVersion); @@ -670,7 +688,7 @@ public class NodeSpec { wantedRebootGeneration, currentRebootGeneration, wantedFirmwareCheck, currentFirmwareCheck, modelName, resources, ipAddresses, additionalIpAddresses, - reports, parentHostname, archiveUri); + reports, parentHostname, archiveUri, exclusiveTo); } diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/RealNodeRepository.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/RealNodeRepository.java index c0fd77a89b7..0747912bba2 100644 --- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/RealNodeRepository.java +++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/RealNodeRepository.java @@ -183,7 +183,8 @@ public class RealNodeRepository implements NodeRepository { node.additionalIpAddresses, reports, Optional.ofNullable(node.parentHostname), - Optional.ofNullable(node.archiveUri).map(URI::create)); + Optional.ofNullable(node.archiveUri).map(URI::create), + Optional.ofNullable(node.exclusiveTo).map(ApplicationId::fromSerializedForm)); } private static NodeResources.DiskSpeed diskSpeedFromString(String diskSpeed) { diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/bindings/NodeRepositoryNode.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/bindings/NodeRepositoryNode.java index aeafcbb8088..988bd2a4bf3 100644 --- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/bindings/NodeRepositoryNode.java +++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/bindings/NodeRepositoryNode.java @@ -78,6 +78,8 @@ public class NodeRepositoryNode { public String orchestratorStatus; @JsonProperty("archiveUri") public String archiveUri; + @JsonProperty("exclusiveTo") + public String exclusiveTo; @JsonProperty("reports") public Map<String, JsonNode> reports = null; @@ -117,6 +119,7 @@ public class NodeRepositoryNode { ", orchestratorStatus=" + orchestratorStatus + ", archiveUri=" + archiveUri + ", reports=" + reports + + ", exclusiveTo=" + exclusiveTo + '}'; } |