aboutsummaryrefslogtreecommitdiffstats
path: root/controller-api/src
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@verizonmedia.com>2020-01-23 13:13:02 +0100
committerJon Bratseth <bratseth@verizonmedia.com>2020-01-23 13:13:02 +0100
commit1ccc915c58196a5dff01157781ace1aac417ba66 (patch)
tree2fc3a86c7d61bf6b3dde6f32d5c1a2ae7d9ce819 /controller-api/src
parentb492c6d6b5f46bc484d249ef5aa3768d7dd91c71 (diff)
Propagate reservedTo
Diffstat (limited to 'controller-api/src')
-rw-r--r--controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/configserver/Node.java20
-rw-r--r--controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/configserver/NodeRepository.java4
-rw-r--r--controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/noderepository/NodeRepositoryNode.java7
3 files changed, 27 insertions, 4 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 d0e4aa2d7d1..b436a4810d2 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
@@ -6,6 +6,7 @@ import com.yahoo.config.provision.ApplicationId;
import com.yahoo.config.provision.HostName;
import com.yahoo.config.provision.NodeResources;
import com.yahoo.config.provision.NodeType;
+import com.yahoo.config.provision.TenantName;
import java.util.Objects;
import java.util.Optional;
@@ -39,11 +40,13 @@ public class Node {
private final ClusterType clusterType;
private final boolean wantToRetire;
private final boolean wantToDeprovision;
+ private final Optional<TenantName> reservedTo;
public Node(HostName hostname, Optional<HostName> parentHostname, State state, NodeType type, NodeResources resources, Optional<ApplicationId> owner,
Version currentVersion, Version wantedVersion, Version currentOsVersion, Version wantedOsVersion, ServiceState serviceState,
long restartGeneration, long wantedRestartGeneration, long rebootGeneration, long wantedRebootGeneration,
- int cost, String flavor, String clusterId, ClusterType clusterType, boolean wantToRetire, boolean wantToDeprovision) {
+ int cost, String flavor, String clusterId, ClusterType clusterType, boolean wantToRetire, boolean wantToDeprovision,
+ Optional<TenantName> reservedTo) {
this.hostname = hostname;
this.parentHostname = parentHostname;
this.state = state;
@@ -65,6 +68,7 @@ public class Node {
this.clusterType = clusterType;
this.wantToRetire = wantToRetire;
this.wantToDeprovision = wantToDeprovision;
+ this.reservedTo = reservedTo;
}
public HostName hostname() {
@@ -149,6 +153,8 @@ public class Node {
return wantToDeprovision;
}
+ public Optional<TenantName> reservedTo() { return reservedTo; }
+
@Override
public boolean equals(Object o) {
if (this == o) return true;
@@ -213,7 +219,8 @@ public class Node {
private ClusterType clusterType;
private boolean wantToRetire;
private boolean wantToDeprovision;
-
+ private Optional<TenantName> reservedTo;
+
public Builder() { }
public Builder(Node node) {
@@ -238,6 +245,7 @@ public class Node {
this.clusterType = node.clusterType;
this.wantToRetire = node.wantToRetire;
this.wantToDeprovision = node.wantToDeprovision;
+ this.reservedTo = node.reservedTo;
}
public Builder hostname(HostName hostname) {
@@ -345,10 +353,16 @@ public class Node {
return this;
}
+ public Builder reservedTo(TenantName tenant) {
+ this.reservedTo = Optional.of(tenant);
+ return this;
+ }
+
public Node build() {
return new Node(hostname, parentHostname, state, type, resources, owner, currentVersion, wantedVersion, currentOsVersion,
wantedOsVersion, serviceState, restartGeneration, wantedRestartGeneration, rebootGeneration, wantedRebootGeneration,
- cost, flavor, clusterId, clusterType, wantToRetire, wantToDeprovision);
+ cost, flavor, clusterId, clusterType, wantToRetire, wantToDeprovision, reservedTo);
}
+
}
}
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 6d18c75b952..f45f33befaa 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
@@ -6,6 +6,7 @@ import com.yahoo.config.provision.ApplicationId;
import com.yahoo.config.provision.HostName;
import com.yahoo.config.provision.NodeResources;
import com.yahoo.config.provision.NodeType;
+import com.yahoo.config.provision.TenantName;
import com.yahoo.config.provision.zone.ZoneId;
import com.yahoo.vespa.hosted.controller.api.integration.noderepository.NodeList;
import com.yahoo.vespa.hosted.controller.api.integration.noderepository.NodeMembership;
@@ -107,7 +108,8 @@ public interface NodeRepository {
clusterIdOf(node.getMembership()),
clusterTypeOf(node.getMembership()),
node.getWantToRetire(),
- node.getWantToDeprovision());
+ node.getWantToDeprovision(),
+ Optional.ofNullable(node.getReservedTo()).map(name -> TenantName.from(name)));
}
private static String clusterIdOf(NodeMembership nodeMembership) {
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 78a64b98e2b..d9957d77ff3 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
@@ -80,6 +80,8 @@ public class NodeRepositoryNode {
private Map<String, JsonNode> reports;
@JsonProperty("modelName")
private String modelName;
+ @JsonProperty("reservedTo")
+ private String reservedTo;
public String getUrl() {
return url;
@@ -339,6 +341,10 @@ public class NodeRepositoryNode {
this.modelName = modelName;
}
+ public String getReservedTo() { return reservedTo; }
+
+ public void setReservedTo(String reservedTo) { this.reservedTo = reservedTo; }
+
@Override
public String toString() {
return "NodeRepositoryNode{" +
@@ -375,6 +381,7 @@ public class NodeRepositoryNode {
", allowedToBeDown=" + allowedToBeDown +
", reports=" + reports +
", modelName=" + modelName +
+ ", reservedTo=" + reservedTo +
'}';
}
}