summaryrefslogtreecommitdiffstats
path: root/node-repository
diff options
context:
space:
mode:
authorAndreas Eriksen <andreer@yahoo-inc.com>2017-10-18 14:46:17 +0200
committerAndreas Eriksen <andreer@yahoo-inc.com>2017-10-18 14:48:55 +0200
commit684e34c171252820e84c4cc23de0e4b4944c4f6a (patch)
tree0989f68ffca5879e9cfa6a7173da07f6582e5fe9 /node-repository
parentc453645b5bae4cbb187e102a234388ae6452802f (diff)
remove quoted nulls from node repo
Diffstat (limited to 'node-repository')
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/NodeFailer.java3
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/persistence/NodeSerializer.java8
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/v2/NodePatcher.java7
3 files changed, 14 insertions, 4 deletions
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/NodeFailer.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/NodeFailer.java
index 29a3cd0a0d5..d90b558a6eb 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/NodeFailer.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/NodeFailer.java
@@ -136,8 +136,7 @@ public class NodeFailer extends Maintainer {
private List<Node> readyNodesWithHardwareDivergence() {
return nodeRepository().getNodes(Node.State.ready).stream()
- .filter(node -> node.status().hardwareDivergence().isPresent()
- && !node.status().hardwareDivergence().get().equals("null"))
+ .filter(node -> node.status().hardwareDivergence().isPresent())
.collect(Collectors.toList());
}
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/persistence/NodeSerializer.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/persistence/NodeSerializer.java
index 9393dc5ead4..7cef8f824d8 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/persistence/NodeSerializer.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/persistence/NodeSerializer.java
@@ -171,7 +171,7 @@ public class NodeSerializer {
hardwareFailureDescriptionFromSlime(object),
object.field(wantToRetireKey).asBool(),
wantToDeprovision,
- hardwareDivergenceFromSlime(object));
+ removeQuotedNulls(hardwareDivergenceFromSlime(object)));
}
private Flavor flavorFromSlime(Inspector object) {
@@ -239,6 +239,12 @@ public class NodeSerializer {
return Optional.empty();
}
+ // Remove when we no longer have "null" strings for this field in the node repo
+ private Optional<String> removeQuotedNulls(Optional<String> value) {
+ return value.isPresent() && value.get().equals("null") ? Optional.empty() : value;
+ }
+
+
private Set<String> ipAddressesFromSlime(Inspector object, String key) {
ImmutableSet.Builder<String> ipAddresses = ImmutableSet.builder();
object.field(key).traverse((ArrayTraverser) (i, item) -> ipAddresses.add(item.asString()));
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 d146e976121..916d889fec5 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
@@ -125,7 +125,7 @@ public class NodePatcher {
case "wantToDeprovision" :
return node.with(node.status().withWantToDeprovision(asBoolean(value)));
case "hardwareDivergence" :
- return node.with(node.status().withHardwareDivergence(asOptionalString(value)));
+ return node.with(node.status().withHardwareDivergence(removeQuotedNulls(asOptionalString(value))));
default :
throw new IllegalArgumentException("Could not apply field '" + name + "' on a node: No such modifiable field");
}
@@ -170,6 +170,11 @@ public class NodePatcher {
return field.type().equals(Type.NIX) ? Optional.empty() : Optional.of(asString(field));
}
+ // Remove when we no longer have "null" strings for this field in the node repo
+ private Optional<String> removeQuotedNulls(Optional<String> value) {
+ return value.isPresent() && value.get().equals("null") ? Optional.empty() : value;
+ }
+
private boolean asBoolean(Inspector field) {
if ( ! field.type().equals(Type.BOOL))
throw new IllegalArgumentException("Expected a BOOL value, got a " + field.type());