summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHåkon Hallingstad <hakon@verizonmedia.com>2021-01-06 14:32:27 +0100
committerHåkon Hallingstad <hakon@verizonmedia.com>2021-01-06 14:32:27 +0100
commit25bdcc87f06449e94888ecd8f9c27cd71fad3195 (patch)
tree900bff7205767222665480d4e87033d025b8a0ab
parent21da42e562beb1cf132118d47170e65b4750efee (diff)
Serialize null OrchestratorStatus in NodeRepositoryNode in patch to null/nothing
-rw-r--r--controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/configserver/NodeRepository.java1
-rw-r--r--controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/noderepository/NodeRepositoryNode.java13
-rw-r--r--controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/noderepository/OrchestratorStatus.java11
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/InternalStepRunner.java1
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiHandler.java7
5 files changed, 24 insertions, 9 deletions
diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/configserver/NodeRepository.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/configserver/NodeRepository.java
index 76055e4ddf2..be3189eb1cf 100644
--- a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/configserver/NodeRepository.java
+++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/configserver/NodeRepository.java
@@ -210,7 +210,6 @@ public interface NodeRepository {
case ALLOWED_TO_BE_DOWN: return Node.ServiceState.allowedDown;
case PERMANENTLY_DOWN: return Node.ServiceState.permanentlyDown;
case NO_REMARKS: return Node.ServiceState.expectedUp;
- case OTHER: return Node.ServiceState.unknown;
}
return Node.ServiceState.unknown;
diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/noderepository/NodeRepositoryNode.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/noderepository/NodeRepositoryNode.java
index a63058572f9..8b027cb229a 100644
--- a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/noderepository/NodeRepositoryNode.java
+++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/noderepository/NodeRepositoryNode.java
@@ -11,7 +11,6 @@ import com.fasterxml.jackson.databind.JsonNode;
import java.util.List;
import java.util.Map;
import java.util.Set;
-import java.util.stream.Stream;
@JsonIgnoreProperties(ignoreUnknown = true)
@JsonInclude(JsonInclude.Include.NON_NULL)
@@ -328,15 +327,19 @@ public class NodeRepositoryNode {
this.history = history;
}
+
+ @JsonGetter("orchestratorStatus")
+ public String getOrchestratorStatusOrNull() {
+ return orchestratorStatus;
+ }
+
+ @JsonIgnore
public OrchestratorStatus getOrchestratorStatus() {
if (orchestratorStatus == null) {
return OrchestratorStatus.NO_REMARKS;
}
- return Stream.of(OrchestratorStatus.values())
- .filter(status -> status.name().equalsIgnoreCase(orchestratorStatus))
- .findAny()
- .orElse(OrchestratorStatus.OTHER);
+ return OrchestratorStatus.fromString(orchestratorStatus);
}
public Long suspendedSinceMillis() {
diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/noderepository/OrchestratorStatus.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/noderepository/OrchestratorStatus.java
index 51942b56b3d..74fdc8ebe92 100644
--- a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/noderepository/OrchestratorStatus.java
+++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/noderepository/OrchestratorStatus.java
@@ -1,6 +1,15 @@
// Copyright Verizon Media. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.hosted.controller.api.integration.noderepository;
+import java.util.stream.Stream;
+
public enum OrchestratorStatus {
- NO_REMARKS, ALLOWED_TO_BE_DOWN, PERMANENTLY_DOWN, OTHER
+ NO_REMARKS, ALLOWED_TO_BE_DOWN, PERMANENTLY_DOWN;
+
+ public static OrchestratorStatus fromString(String statusString) {
+ return Stream.of(OrchestratorStatus.values())
+ .filter(status -> status.name().equalsIgnoreCase(statusString))
+ .findAny()
+ .orElseThrow(() -> new IllegalArgumentException("Unknown orchestrator status: " + statusString));
+ }
}
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/InternalStepRunner.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/InternalStepRunner.java
index 373967df6c4..e789974ea13 100644
--- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/InternalStepRunner.java
+++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/InternalStepRunner.java
@@ -540,6 +540,7 @@ public class InternalStepRunner implements StepRunner {
switch (state) {
case allowedDown: return "allowed to be DOWN";
case expectedUp: return "expected to be UP";
+ case permanentlyDown: return "permanently DOWN";
case unorchestrated: return "unorchestrated";
default: return state.name();
}
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiHandler.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiHandler.java
index 22dd098adfb..0dff1600751 100644
--- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiHandler.java
+++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiHandler.java
@@ -723,13 +723,16 @@ public class ApplicationApiHandler extends LoggingRequestHandler {
}
}
- private static String valueOf(Node.ServiceState state) {
+ static String valueOf(Node.ServiceState state) {
switch (state) {
case expectedUp: return "expectedUp";
case allowedDown: return "allowedDown";
+ case permanentlyDown: return "permanentlyDown";
case unorchestrated: return "unorchestrated";
- default: throw new IllegalArgumentException("Unexpected node state '" + state + "'.");
+ case unknown: break;
}
+
+ return "unknown";
}
private static String valueOf(Node.ClusterType type) {