aboutsummaryrefslogtreecommitdiffstats
path: root/node-admin
diff options
context:
space:
mode:
authorMorten Tokle <mortent@verizonmedia.com>2021-02-23 15:11:50 +0100
committerMorten Tokle <mortent@verizonmedia.com>2021-02-24 08:53:15 +0100
commite356a69e30c5bb7f74fe3ca3772fe4dfac4427f3 (patch)
tree29d7246cc13212d3dd2e524be4185470157a7253 /node-admin
parent8296c81b4c9d9c5d65c4ff92310b414b3721b777 (diff)
Read exclusiveTo field
Diffstat (limited to 'node-admin')
-rw-r--r--node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/NodeSpec.java26
-rw-r--r--node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/RealNodeRepository.java3
-rw-r--r--node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/bindings/NodeRepositoryNode.java3
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 +
'}';
}