From 6ce205b35a423c82706fdc9b4e8b6cd6155456c7 Mon Sep 17 00:00:00 2001 From: Martin Polden Date: Fri, 9 Apr 2021 17:24:42 +0200 Subject: Revert "Revert "Add wantToRebuild field to client type"" --- .../api/integration/configserver/Node.java | 17 +++++++++++-- .../integration/configserver/NodeRepository.java | 2 +- .../noderepository/NodeRepositoryNode.java | 29 ++++++++++++++++++---- 3 files changed, 40 insertions(+), 8 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 0b3ef3ebe86..d1078b5e30c 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 @@ -56,6 +56,7 @@ public class Node { private final boolean retired; private final boolean wantToRetire; private final boolean wantToDeprovision; + private final boolean wantToRebuild; private final Optional reservedTo; private final Optional exclusiveTo; private final Map reports; @@ -69,7 +70,7 @@ public class Node { Optional currentFirmwareCheck, Optional wantedFirmwareCheck, ServiceState serviceState, Optional suspendedSince, long restartGeneration, long wantedRestartGeneration, long rebootGeneration, long wantedRebootGeneration, int cost, String flavor, String clusterId, ClusterType clusterType, boolean retired, boolean wantToRetire, boolean wantToDeprovision, - Optional reservedTo, Optional exclusiveTo, + boolean wantToRebuild, Optional reservedTo, Optional exclusiveTo, DockerImage wantedDockerImage, DockerImage currentDockerImage, Map reports, List history, Set additionalIpAddresses, String openStackId, Optional switchHostname) { this.hostname = hostname; @@ -101,6 +102,7 @@ public class Node { this.exclusiveTo = exclusiveTo; this.wantedDockerImage = wantedDockerImage; this.currentDockerImage = currentDockerImage; + this.wantToRebuild = wantToRebuild; this.reports = reports; this.history = history; this.openStackId = openStackId; @@ -214,6 +216,10 @@ public class Node { return wantToDeprovision; } + public boolean wantToRebuild() { + return wantToRebuild; + } + public Optional reservedTo() { return reservedTo; } public Optional exclusiveTo() { return exclusiveTo; } @@ -312,6 +318,7 @@ public class Node { private boolean retired; private boolean wantToRetire; private boolean wantToDeprovision; + private boolean wantToRebuild; private Optional reservedTo = Optional.empty(); private Optional exclusiveTo = Optional.empty(); private Map reports = new HashMap<>(); @@ -350,6 +357,7 @@ public class Node { this.retired = node.retired; this.wantToRetire = node.wantToRetire; this.wantToDeprovision = node.wantToDeprovision; + this.wantToRebuild = node.wantToRebuild; this.reservedTo = node.reservedTo; this.exclusiveTo = node.exclusiveTo; this.reports = node.reports; @@ -494,6 +502,11 @@ public class Node { return this; } + public Builder wantToRebuild(boolean wantToRebuild) { + this.wantToRebuild = wantToRebuild; + return this; + } + public Builder reservedTo(TenantName tenant) { this.reservedTo = Optional.of(tenant); return this; @@ -528,7 +541,7 @@ public class Node { 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, retired, wantToRetire, wantToDeprovision, reservedTo, exclusiveTo, + cost, flavor, clusterId, clusterType, retired, wantToRetire, wantToDeprovision, wantToRebuild, reservedTo, exclusiveTo, wantedDockerImage, currentDockerImage, reports, history, additionalIpAddresses, openStackId, switchHostname); } 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 7d454b2134f..72592e16bfd 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 @@ -148,7 +148,7 @@ public interface NodeRepository { Optional.ofNullable(node.getMembership()).map(NodeMembership::getRetired).orElse(false), node.getWantToRetire(), node.getWantToDeprovision(), - Optional.ofNullable(node.getReservedTo()).map(TenantName::from), + node.getWantToRebuild(), Optional.ofNullable(node.getReservedTo()).map(TenantName::from), Optional.ofNullable(node.getExclusiveTo()).map(ApplicationId::fromSerializedForm), dockerImageFrom(node.getWantedDockerImage()), dockerImageFrom(node.getCurrentDockerImage()), 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 8b027cb229a..80d710eda2b 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 @@ -12,6 +12,11 @@ import java.util.List; import java.util.Map; import java.util.Set; +/** + * The wire format of a node retrieved from the node repository. + * + * @author bjorncs + */ @JsonIgnoreProperties(ignoreUnknown = true) @JsonInclude(JsonInclude.Include.NON_NULL) public class NodeRepositoryNode { @@ -78,6 +83,8 @@ public class NodeRepositoryNode { private Boolean wantToRetire; @JsonProperty("wantToDeprovision") private Boolean wantToDeprovision; + @JsonProperty("wantToRebuild") + private Boolean wantToRebuild; @JsonProperty("cost") private Integer cost; @JsonProperty("history") @@ -303,6 +310,10 @@ public class NodeRepositoryNode { public Boolean getWantToDeprovision() { return wantToDeprovision; } + public Boolean getWantToRebuild() { + return wantToRebuild; + } + public void setWantToRetire(Boolean wantToRetire) { this.wantToRetire = wantToRetire; } @@ -311,6 +322,10 @@ public class NodeRepositoryNode { this.wantToDeprovision = wantToDeprovision; } + public void setWantToRebuild(Boolean wantToRebuild) { + this.wantToRebuild = wantToRebuild; + } + public Integer getCost() { return cost; } @@ -442,6 +457,8 @@ public class NodeRepositoryNode { ", wantedVespaVersion='" + wantedVespaVersion + '\'' + ", currentOsVersion='" + currentOsVersion + '\'' + ", wantedOsVersion='" + wantedOsVersion + '\'' + + ", currentFirmwareCheck=" + currentFirmwareCheck + + ", wantedFirmwareCheck=" + wantedFirmwareCheck + ", failCount=" + failCount + ", environment=" + environment + ", type=" + type + @@ -450,14 +467,16 @@ public class NodeRepositoryNode { ", parentHostname='" + parentHostname + '\'' + ", wantToRetire=" + wantToRetire + ", wantToDeprovision=" + wantToDeprovision + + ", wantToRebuild=" + wantToRebuild + ", cost=" + cost + ", history=" + history + - ", orchestratorStatus=" + orchestratorStatus + + ", orchestratorStatus='" + orchestratorStatus + '\'' + + ", suspendedSinceMillis=" + suspendedSinceMillis + ", reports=" + reports + - ", modelName=" + modelName + - ", reservedTo=" + reservedTo + - ", exclusiveTo=" + exclusiveTo + - ", switchHostname=" + switchHostname + + ", modelName='" + modelName + '\'' + + ", reservedTo='" + reservedTo + '\'' + + ", exclusiveTo='" + exclusiveTo + '\'' + + ", switchHostname='" + switchHostname + '\'' + '}'; } -- cgit v1.2.3