diff options
author | Jon Bratseth <bratseth@verizonmedia.com> | 2020-01-23 13:13:02 +0100 |
---|---|---|
committer | Jon Bratseth <bratseth@verizonmedia.com> | 2020-01-23 13:13:02 +0100 |
commit | 1ccc915c58196a5dff01157781ace1aac417ba66 (patch) | |
tree | 2fc3a86c7d61bf6b3dde6f32d5c1a2ae7d9ce819 /controller-api/src | |
parent | b492c6d6b5f46bc484d249ef5aa3768d7dd91c71 (diff) |
Propagate reservedTo
Diffstat (limited to 'controller-api/src')
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 + '}'; } } |