summaryrefslogtreecommitdiffstats
path: root/node-repository/src/main/java/com/yahoo
diff options
context:
space:
mode:
authorMartin Polden <mpolden@mpolden.no>2023-01-03 14:58:56 +0100
committerMartin Polden <mpolden@mpolden.no>2023-01-03 14:58:56 +0100
commite5f594d6d538aeb65b7d97840f743664588843b5 (patch)
tree533292f2b2bc1a7af7a93e4f52055fd225bc0f7c /node-repository/src/main/java/com/yahoo
parent9acae2dcf1383aed6e923608c0ef944aea4be981 (diff)
Write state to node object
Diffstat (limited to 'node-repository/src/main/java/com/yahoo')
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/persistence/NodeSerializer.java34
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";
+ };
+ }
+
}