diff options
author | Martin Polden <mpolden@mpolden.no> | 2023-01-03 14:58:56 +0100 |
---|---|---|
committer | Martin Polden <mpolden@mpolden.no> | 2023-01-03 14:58:56 +0100 |
commit | e5f594d6d538aeb65b7d97840f743664588843b5 (patch) | |
tree | 533292f2b2bc1a7af7a93e4f52055fd225bc0f7c | |
parent | 9acae2dcf1383aed6e923608c0ef944aea4be981 (diff) |
Write state to node object
-rw-r--r-- | node-repository/src/main/java/com/yahoo/vespa/hosted/provision/persistence/NodeSerializer.java | 34 |
1 files changed, 33 insertions, 1 deletions
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 94707f7f429..00fcadc4f0f 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 @@ -48,7 +48,6 @@ import java.util.List; import java.util.Optional; import java.util.Set; import java.util.concurrent.ExecutionException; -import java.util.stream.Collectors; /** * Serializes a node to/from JSON. @@ -69,6 +68,7 @@ public class NodeSerializer { private final NodeFlavors flavors; // Node fields + private static final String stateKey = "state"; private static final String hostnameKey = "hostname"; private static final String ipAddressesKey = "ipAddresses"; private static final String ipAddressPoolKey = "additionalIpAddresses"; @@ -165,6 +165,7 @@ public class NodeSerializer { } private void toSlime(Node node, Cursor object) { + object.setString(stateKey, toString(node.state())); object.setString(hostnameKey, node.hostname()); toSlime(node.ipConfig().primary(), object.setArray(ipAddressesKey)); toSlime(node.ipConfig().pool().ipSet(), object.setArray(ipAddressPoolKey)); @@ -539,4 +540,35 @@ public class NodeSerializer { }; } + static Node.State nodeStateFromString(String state) { + return switch (state) { + case "active" -> Node.State.active; + case "dirty" -> Node.State.dirty; + case "failed" -> Node.State.failed; + case "inactive" -> Node.State.inactive; + case "parked" -> Node.State.parked; + case "provisioned" -> Node.State.provisioned; + case "ready" -> Node.State.ready; + case "reserved" -> Node.State.reserved; + case "deprovisioned" -> Node.State.deprovisioned; + case "breakfixed" -> Node.State.breakfixed; + default -> throw new IllegalArgumentException("Unknown node state '" + state + "'"); + }; + } + + static String toString(Node.State state) { + return switch (state) { + case active -> "active"; + case dirty -> "dirty"; + case failed -> "failed"; + case inactive -> "inactive"; + case parked -> "parked"; + case provisioned -> "provisioned"; + case ready -> "ready"; + case reserved -> "reserved"; + case deprovisioned -> "deprovisioned"; + case breakfixed -> "breakfixed"; + }; + } + } |