aboutsummaryrefslogtreecommitdiffstats
path: root/node-repository
diff options
context:
space:
mode:
authorvalerijf <valerijf@oath.com>2017-08-15 11:33:45 +0200
committervalerijf <valerijf@oath.com>2017-08-15 11:33:45 +0200
commit2ed0af7550f05a95cb10c1d44862fa8e8032cf00 (patch)
treedf20075d269d563b4b7f90cac017c295f578b6ab /node-repository
parent645b08755297db8916023883c4bc58d70cff0dd5 (diff)
Keep hardwareFailureType while clients transition to hardwareFailureDescription
Diffstat (limited to 'node-repository')
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/v2/NodePatcher.java14
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/v2/NodesResponse.java2
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node4-after-changes.json1
3 files changed, 14 insertions, 3 deletions
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/v2/NodePatcher.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/v2/NodePatcher.java
index 10514b62bc1..2beabcd8e8f 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/v2/NodePatcher.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/v2/NodePatcher.java
@@ -30,7 +30,8 @@ import java.util.stream.Collectors;
*/
public class NodePatcher {
- public static final String HARDWARE_FAILURE_TYPE = "hardwareFailureDescription";
+ public static final String HARDWARE_FAILURE_TYPE = "hardwareFailureType";
+ public static final String HARDWARE_FAILURE_DESCRIPTION = "hardwareFailureDescription";
private final NodeFlavors nodeFlavors;
private final Inspector inspector;
private final NodeRepository nodeRepository;
@@ -78,9 +79,15 @@ public class NodePatcher {
List<Node> children = nodeRepository.getChildNodes(node.hostname());
boolean modified = false;
+ // TODO: Remove when all clients have switched to hardwareFailureDescription
if (inspector.field(HARDWARE_FAILURE_TYPE).valid()) {
- Optional<String> hardwareFailure = inspector.type().equals(Type.NIX) ?
- Optional.empty() : Optional.of(inspector.field(HARDWARE_FAILURE_TYPE).asString());
+ Optional<String> hardwareFailure = asOptionalString(inspector.field(HARDWARE_FAILURE_TYPE));
+ modified = true;
+ children = children.stream()
+ .map(node -> node.with(node.status().withHardwareFailureDescription(hardwareFailure)))
+ .collect(Collectors.toList());
+ } else if (inspector.field(HARDWARE_FAILURE_DESCRIPTION).valid()) {
+ Optional<String> hardwareFailure = asOptionalString(inspector.field(HARDWARE_FAILURE_DESCRIPTION));
modified = true;
children = children.stream()
.map(node -> node.with(node.status().withHardwareFailureDescription(hardwareFailure)))
@@ -113,6 +120,7 @@ public class NodePatcher {
return node.with(node.status().setFailCount(asLong(value).intValue()));
case "flavor" :
return node.with(nodeFlavors.getFlavorOrThrow(asString(value)));
+ case HARDWARE_FAILURE_DESCRIPTION:
case HARDWARE_FAILURE_TYPE:
return node.with(node.status().withHardwareFailureDescription(asOptionalString(value)));
case "parentHostname" :
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/v2/NodesResponse.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/v2/NodesResponse.java
index f47fab6091d..25e03cefe16 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/v2/NodesResponse.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/v2/NodesResponse.java
@@ -171,6 +171,8 @@ class NodesResponse extends HttpResponse {
});
object.setLong("failCount", node.status().failCount());
object.setBool("hardwareFailure", node.status().hardwareFailureDescription().isPresent());
+ // TODO: Remove when all clients have switched to hardwareFailureDescription
+ node.status().hardwareFailureDescription().ifPresent(failure -> object.setString("hardwareFailureType", failure));
node.status().hardwareFailureDescription().ifPresent(failure -> object.setString("hardwareFailureDescription", failure));
object.setBool("wantToRetire", node.status().wantToRetire());
object.setBool("wantToDeprovision", node.status().wantToDeprovision());
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node4-after-changes.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node4-after-changes.json
index 0cb276c215f..4082db74ff4 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node4-after-changes.json
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node4-after-changes.json
@@ -38,6 +38,7 @@
"convergedStateVersion": "6.43.0",
"failCount": 0,
"hardwareFailure": true,
+ "hardwareFailureType": "memory_mcelog",
"hardwareFailureDescription": "memory_mcelog",
"wantToRetire" : true,
"wantToDeprovision" : true,