diff options
author | Ola Aunrønning <olaa@verizonmedia.com> | 2022-03-24 11:22:01 +0100 |
---|---|---|
committer | Ola Aunrønning <olaa@verizonmedia.com> | 2022-03-24 11:22:01 +0100 |
commit | d3c69ccbc1b661dfa74e20cd8ced6053e0043af3 (patch) | |
tree | c30b00744dd7d52c0982a7745f8a99195c9c778d | |
parent | 45a736b09bf13e9f2202ae4c05a84492536b87fd (diff) |
Make no assumptions about list order
-rw-r--r-- | controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/VcmrMaintainerTest.java | 48 |
1 files changed, 30 insertions, 18 deletions
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 5d40e7d5580..ad480bc1712 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 @@ -22,8 +22,6 @@ import java.time.Duration; import java.time.Instant; import java.time.ZonedDateTime; import java.util.List; -import java.util.Map; -import java.util.stream.Collectors; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; @@ -89,9 +87,10 @@ public class VcmrMaintainerTest { maintainer.maintain(); var writtenChangeRequest = tester.curator().readChangeRequest(changeRequestId).get(); - assertEquals(2, writtenChangeRequest.getHostActionPlan().size()); - var configAction = writtenChangeRequest.getHostActionPlan().get(0); - var tenantHostAction = writtenChangeRequest.getHostActionPlan().get(1); + var actionPlan = writtenChangeRequest.getHostActionPlan(); + assertEquals(2, actionPlan.size()); + var configAction = findHostAction(actionPlan, configNode); + var tenantHostAction = findHostAction(actionPlan, activeNode); assertEquals(State.REQUIRES_OPERATOR_ACTION, configAction.getState()); assertEquals(State.PENDING_RETIREMENT, tenantHostAction.getState()); assertEquals(Status.REQUIRES_OPERATOR_ACTION, writtenChangeRequest.getStatus()); @@ -108,8 +107,9 @@ public class VcmrMaintainerTest { maintainer.maintain(); var writtenChangeRequest = tester.curator().readChangeRequest(changeRequestId).orElseThrow(); - var parkedNodeAction = writtenChangeRequest.getHostActionPlan().get(0); - var failedNodeAction = writtenChangeRequest.getHostActionPlan().get(1); + var actionPlan = writtenChangeRequest.getHostActionPlan(); + var parkedNodeAction = findHostAction(actionPlan, activeNode); + var failedNodeAction = findHostAction(actionPlan, failedNode); assertEquals(State.RETIRING, parkedNodeAction.getState()); assertEquals(State.NONE, failedNodeAction.getState()); assertEquals(Status.IN_PROGRESS, writtenChangeRequest.getStatus()); @@ -129,9 +129,10 @@ public class VcmrMaintainerTest { maintainer.maintain(); var writtenChangeRequest = tester.curator().readChangeRequest(changeRequestId).orElseThrow(); - var parkedNodeAction = writtenChangeRequest.getHostActionPlan().get(0); - var failedNodeAction = writtenChangeRequest.getHostActionPlan().get(1); - assertEquals(State.REQUIRES_OPERATOR_ACTION, parkedNodeAction.getState()); + var actionPlan = writtenChangeRequest.getHostActionPlan(); + var activeNodeAction = findHostAction(actionPlan, activeNode); + var failedNodeAction = findHostAction(actionPlan, failedNode); + assertEquals(State.REQUIRES_OPERATOR_ACTION, activeNodeAction.getState()); assertEquals(State.REQUIRES_OPERATOR_ACTION, failedNodeAction.getState()); assertEquals(Status.REQUIRES_OPERATOR_ACTION, writtenChangeRequest.getStatus()); @@ -204,11 +205,11 @@ public class VcmrMaintainerTest { @Test public void handle_multizone_vcmr() { - var node1 = createNode(host1, NodeType.config, Node.State.active, false); - var node2 = createNode(host2, NodeType.host, Node.State.active, false); - var node3 = createNode(host3, NodeType.host, Node.State.active, false); - nodeRepo.putNodes(zoneId, List.of(node1, node2)); - nodeRepo.putNodes(zone2, List.of(node3)); + var configNode = createNode(host1, NodeType.config, Node.State.active, false); + var tenantNode1 = createNode(host2, NodeType.host, Node.State.active, false); + var tenantNode2 = createNode(host3, NodeType.host, Node.State.active, false); + nodeRepo.putNodes(zoneId, List.of(configNode, tenantNode1)); + nodeRepo.putNodes(zone2, List.of(tenantNode2)); nodeRepo.hasSpareCapacity(true); tester.curator().writeChangeRequest(futureChangeRequest()); @@ -216,9 +217,14 @@ public class VcmrMaintainerTest { var writtenChangeRequest = tester.curator().readChangeRequest(changeRequestId).get(); var actionPlan = writtenChangeRequest.getHostActionPlan(); - assertEquals(State.REQUIRES_OPERATOR_ACTION, actionPlan.get(0).getState()); - assertEquals(State.PENDING_RETIREMENT, actionPlan.get(1).getState()); - assertEquals(State.PENDING_RETIREMENT, actionPlan.get(2).getState()); + + var configAction = findHostAction(actionPlan, configNode); + var tenantAction1 = findHostAction(actionPlan, tenantNode1); + var tenantAction2 = findHostAction(actionPlan, tenantNode2); + + assertEquals(State.REQUIRES_OPERATOR_ACTION, configAction.getState()); + assertEquals(State.PENDING_RETIREMENT, tenantAction1.getState()); + assertEquals(State.PENDING_RETIREMENT, tenantAction2.getState()); } private VespaChangeRequest canceledChangeRequest() { @@ -269,4 +275,10 @@ public class VcmrMaintainerTest { .wantToRetire(wantToRetire) .build(); } + + private HostAction findHostAction(List<HostAction> actions, Node node) { + return actions.stream() + .filter(action -> node.hostname().value().equals(action.getHostname())) + .findFirst().orElseThrow(); + } } |