aboutsummaryrefslogtreecommitdiffstats
path: root/orchestrator
diff options
context:
space:
mode:
authorHåkon Hallingstad <hakon@yahooinc.com>2021-09-13 16:41:21 +0200
committerHåkon Hallingstad <hakon@yahooinc.com>2021-09-13 16:41:21 +0200
commita3fcef7201b804437becb7773821bb1457a1c8ce (patch)
tree42db280ea8d99bcb80378e907db8aa3ba6262cc6 /orchestrator
parentdc4fd3d892d799cee3016f04f134bd1baa5c9ce6 (diff)
Add ServiceStatus.UNKNOWN
Diffstat (limited to 'orchestrator')
-rw-r--r--orchestrator/src/main/java/com/yahoo/vespa/orchestrator/model/ClusterApiImpl.java5
-rw-r--r--orchestrator/src/main/java/com/yahoo/vespa/orchestrator/policy/SuspensionReasons.java7
-rw-r--r--orchestrator/src/test/java/com/yahoo/vespa/orchestrator/model/ApplicationApiImplTest.java2
-rw-r--r--orchestrator/src/test/java/com/yahoo/vespa/orchestrator/model/ClusterApiImplTest.java2
4 files changed, 14 insertions, 2 deletions
diff --git a/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/model/ClusterApiImpl.java b/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/model/ClusterApiImpl.java
index 6e88b227e61..b8538079194 100644
--- a/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/model/ClusterApiImpl.java
+++ b/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/model/ClusterApiImpl.java
@@ -126,7 +126,10 @@ class ClusterApiImpl implements ClusterApi {
continue;
}
- if (service.serviceStatus() == ServiceStatus.DOWN) {
+ if (service.serviceStatus() == ServiceStatus.UNKNOWN) {
+ reasons.mergeWith(SuspensionReasons.unknownStatus(service));
+ continue;
+ } else if (service.serviceStatus() == ServiceStatus.DOWN) {
Optional<Instant> since = service.serviceStatusInfo().since();
if (since.isEmpty()) {
reasons.mergeWith(SuspensionReasons.isDown(service));
diff --git a/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/policy/SuspensionReasons.java b/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/policy/SuspensionReasons.java
index c043396497b..4a1b4528d02 100644
--- a/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/policy/SuspensionReasons.java
+++ b/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/policy/SuspensionReasons.java
@@ -23,12 +23,19 @@ public class SuspensionReasons {
private final Map<HostName, List<String>> reasons = new HashMap<>();
public static SuspensionReasons nothingNoteworthy() { return new SuspensionReasons(); }
+
public static SuspensionReasons isDown(ServiceInstance service) {
return new SuspensionReasons().addReason(
service.hostName(),
service.descriptiveName() + " is down");
}
+ public static SuspensionReasons unknownStatus(ServiceInstance service) {
+ return new SuspensionReasons().addReason(
+ service.hostName(),
+ service.descriptiveName() + " has not yet been probed for health");
+ }
+
public static SuspensionReasons downSince(ServiceInstance service, Instant instant, Duration downDuration) {
return new SuspensionReasons().addReason(
service.hostName(),
diff --git a/orchestrator/src/test/java/com/yahoo/vespa/orchestrator/model/ApplicationApiImplTest.java b/orchestrator/src/test/java/com/yahoo/vespa/orchestrator/model/ApplicationApiImplTest.java
index c3e53b2f340..1138dd3f738 100644
--- a/orchestrator/src/test/java/com/yahoo/vespa/orchestrator/model/ApplicationApiImplTest.java
+++ b/orchestrator/src/test/java/com/yahoo/vespa/orchestrator/model/ApplicationApiImplTest.java
@@ -165,9 +165,11 @@ public class ApplicationApiImplTest {
verifyNoRemarksConditionWith(HostStatus.NO_REMARKS, ServiceStatus.UP, true);
verifyNoRemarksConditionWith(HostStatus.NO_REMARKS, ServiceStatus.NOT_CHECKED, true);
verifyNoRemarksConditionWith(HostStatus.NO_REMARKS, ServiceStatus.DOWN, true);
+ verifyNoRemarksConditionWith(HostStatus.NO_REMARKS, ServiceStatus.UNKNOWN, true);
verifyNoRemarksConditionWith(HostStatus.ALLOWED_TO_BE_DOWN, ServiceStatus.UP, false);
verifyNoRemarksConditionWith(HostStatus.ALLOWED_TO_BE_DOWN, ServiceStatus.NOT_CHECKED, false);
verifyNoRemarksConditionWith(HostStatus.ALLOWED_TO_BE_DOWN, ServiceStatus.DOWN, false);
+ verifyNoRemarksConditionWith(HostStatus.ALLOWED_TO_BE_DOWN, ServiceStatus.UNKNOWN, false);
}
private void verifyNoRemarksConditionWith(HostStatus hostStatus, ServiceStatus serviceStatus, boolean expectUp) {
diff --git a/orchestrator/src/test/java/com/yahoo/vespa/orchestrator/model/ClusterApiImplTest.java b/orchestrator/src/test/java/com/yahoo/vespa/orchestrator/model/ClusterApiImplTest.java
index c61c8eb34ec..2946c82eab8 100644
--- a/orchestrator/src/test/java/com/yahoo/vespa/orchestrator/model/ClusterApiImplTest.java
+++ b/orchestrator/src/test/java/com/yahoo/vespa/orchestrator/model/ClusterApiImplTest.java
@@ -192,7 +192,7 @@ public class ClusterApiImplTest {
@Test
public void testSingleConfigServerCanSuspend() {
- for (var status : EnumSet.of(ServiceStatus.UP, ServiceStatus.DOWN)) {
+ for (var status : EnumSet.of(ServiceStatus.UP, ServiceStatus.DOWN, ServiceStatus.UNKNOWN)) {
var clusterApi = makeConfigClusterApi(1, status);
var policy = new HostedVespaClusterPolicy(flagSource, zone);
try {