diff options
author | Andreas Eriksen <andreer@yahoo-inc.com> | 2017-10-18 14:46:17 +0200 |
---|---|---|
committer | Andreas Eriksen <andreer@yahoo-inc.com> | 2017-10-18 14:48:55 +0200 |
commit | 684e34c171252820e84c4cc23de0e4b4944c4f6a (patch) | |
tree | 0989f68ffca5879e9cfa6a7173da07f6582e5fe9 | |
parent | c453645b5bae4cbb187e102a234388ae6452802f (diff) |
remove quoted nulls from node repo
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()); |