diff options
author | Ola Aunrønning <olaa@verizonmedia.com> | 2021-05-12 16:25:49 +0200 |
---|---|---|
committer | Ola Aunrønning <olaa@verizonmedia.com> | 2021-05-12 16:25:49 +0200 |
commit | 6212373a59cd08f37943d9ffbb8772f1736ac761 (patch) | |
tree | 90b60ce0994f7fef51f06965313672d138b79de6 | |
parent | 3c1a966604bfeb5315c056c993a736797482aaca (diff) |
Add ready-state to VCMRs
3 files changed, 9 insertions, 3 deletions
diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/vcmr/VespaChangeRequest.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/vcmr/VespaChangeRequest.java index a8be4a77c71..915f43dc369 100644 --- a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/vcmr/VespaChangeRequest.java +++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/vcmr/VespaChangeRequest.java @@ -89,6 +89,7 @@ public class VespaChangeRequest extends ChangeRequest { public enum Status { COMPLETED, + READY, IN_PROGRESS, PENDING_ACTION, PENDING_ASSESSMENT, diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/VCMRMaintainer.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/VCMRMaintainer.java index a8de70a56a2..3630986aa23 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/VCMRMaintainer.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/VCMRMaintainer.java @@ -24,6 +24,7 @@ import java.time.ZonedDateTime; import java.util.List; import java.util.Map; import java.util.Optional; +import java.util.Set; import java.util.function.Predicate; import java.util.logging.Logger; import java.util.stream.Collectors; @@ -77,7 +78,7 @@ public class VCMRMaintainer extends ControllerMaintainer { * Status is based on: * 1. Whether the source has reportedly closed the request * 2. Whether any host requires operator action - * 3. Whether any host has started/finished retiring + * 3. Whether any host is pending/started/finished retirement */ private Status getStatus(List<HostAction> nextActions, VespaChangeRequest changeRequest) { if (changeRequest.getChangeRequestSource().isClosed()) { @@ -90,10 +91,14 @@ public class VCMRMaintainer extends ControllerMaintainer { return Status.REQUIRES_OPERATOR_ACTION; } - if (byActionState.getOrDefault(State.RETIRING, 0L) + byActionState.getOrDefault(State.RETIRED, 0L) > 0) { + if (byActionState.getOrDefault(State.RETIRING, 0L) > 0) { return Status.IN_PROGRESS; } + if (Set.of(State.RETIRED, State.NONE).containsAll(byActionState.keySet())) { + return Status.READY; + } + if (byActionState.getOrDefault(State.PENDING_RETIREMENT, 0L) > 0) { return Status.PENDING_ACTION; } diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/VCMRMaintainerTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/VCMRMaintainerTest.java index d5c35f806f4..d29656eef75 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/VCMRMaintainerTest.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/VCMRMaintainerTest.java @@ -121,7 +121,7 @@ public class VCMRMaintainerTest { var writtenChangeRequest = tester.curator().readChangeRequest(changeRequestId).orElseThrow(); var parkedNodeAction = writtenChangeRequest.getHostActionPlan().get(0); assertEquals(State.RETIRED, parkedNodeAction.getState()); - assertEquals(Status.IN_PROGRESS, writtenChangeRequest.getStatus()); + assertEquals(Status.READY, writtenChangeRequest.getStatus()); } @Test |