diff options
2 files changed, 30 insertions, 3 deletions
diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/NodeAttributes.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/NodeAttributes.java index 3b17972db6d..cb0e1042ad3 100644 --- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/NodeAttributes.java +++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/NodeAttributes.java @@ -15,6 +15,8 @@ public class NodeAttributes { private Optional<DockerImage> dockerImage = Optional.empty(); private Optional<String> vespaVersion = Optional.empty(); private Optional<String> hardwareDivergence = Optional.empty(); + private Optional<String> hardwareFailureDescription = Optional.empty(); + private Optional<Boolean> wantToDeprovision = Optional.empty(); public NodeAttributes() { } @@ -43,6 +45,16 @@ public class NodeAttributes { return this; } + public NodeAttributes withHardwareFailureDescription(String hardwareFailureDescription) { + this.hardwareFailureDescription = Optional.of(hardwareFailureDescription); + return this; + } + + public NodeAttributes withWantToDeprovision(boolean wantToDeprovision) { + this.wantToDeprovision = Optional.of(wantToDeprovision); + return this; + } + public Optional<Long> getRestartGeneration() { return restartGeneration; @@ -64,9 +76,18 @@ public class NodeAttributes { return hardwareDivergence; } + public Optional<String> getHardwareFailureDescription() { + return hardwareFailureDescription; + } + + public Optional<Boolean> getWantToDeprovision() { + return wantToDeprovision; + } + @Override public int hashCode() { - return Objects.hash(restartGeneration, rebootGeneration, dockerImage, vespaVersion, hardwareDivergence); + return Objects.hash(restartGeneration, rebootGeneration, dockerImage, vespaVersion, hardwareDivergence, + hardwareFailureDescription, wantToDeprovision); } @Override @@ -80,7 +101,9 @@ public class NodeAttributes { && Objects.equals(rebootGeneration, other.rebootGeneration) && Objects.equals(dockerImage, other.dockerImage) && Objects.equals(vespaVersion, other.vespaVersion) - && Objects.equals(hardwareDivergence, other.hardwareDivergence); + && Objects.equals(hardwareDivergence, other.hardwareDivergence) + && Objects.equals(hardwareFailureDescription, other.hardwareFailureDescription) + && Objects.equals(wantToDeprovision, other.wantToDeprovision); } @Override @@ -90,7 +113,9 @@ public class NodeAttributes { rebootGeneration.map(gen -> "rebootGeneration=" + gen), dockerImage.map(img -> "dockerImage=" + img.asString()), vespaVersion.map(ver -> "vespaVersion=" + ver), - hardwareDivergence.map(hwDivg -> "hardwareDivergence=" + hwDivg)) + hardwareDivergence.map(hwDivg -> "hardwareDivergence=" + hwDivg), + hardwareFailureDescription.map(hwDesc -> "hardwareFailureDescription=" + hwDesc), + wantToDeprovision.map(depr -> "wantToDeprovision=" + depr)) .filter(Optional::isPresent) .map(Optional::get) .collect(Collectors.joining(", ", "NodeAttributes{", "}")); 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 fb2a1e3f890..858209da18e 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 @@ -209,6 +209,8 @@ public class RealNodeRepository implements NodeRepository { node.currentRebootGeneration = nodeAttributes.getRebootGeneration().orElse(null); node.vespaVersion = nodeAttributes.getVespaVersion().orElse(null); node.hardwareDivergence = nodeAttributes.getHardwareDivergence().orElse(null); + node.hardwareFailureDescription = nodeAttributes.getHardwareFailureDescription().orElse(null); + node.wantToDeprovision = nodeAttributes.getWantToDeprovision().orElse(null); return node; } } |