aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOla Aunrønning <olaa@verizonmedia.com>2022-03-24 11:22:01 +0100
committerOla Aunrønning <olaa@verizonmedia.com>2022-03-24 11:22:01 +0100
commitd3c69ccbc1b661dfa74e20cd8ced6053e0043af3 (patch)
treec30b00744dd7d52c0982a7745f8a99195c9c778d
parent45a736b09bf13e9f2202ae4c05a84492536b87fd (diff)
Make no assumptions about list order
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/VcmrMaintainerTest.java48
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();
+ }
}