summaryrefslogtreecommitdiffstats
path: root/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/MaintenanceWhenPendingGlobalMergesTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/MaintenanceWhenPendingGlobalMergesTest.java')
-rw-r--r--clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/MaintenanceWhenPendingGlobalMergesTest.java19
1 files changed, 17 insertions, 2 deletions
diff --git a/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/MaintenanceWhenPendingGlobalMergesTest.java b/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/MaintenanceWhenPendingGlobalMergesTest.java
index a2e661aa161..3b052a1bcb2 100644
--- a/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/MaintenanceWhenPendingGlobalMergesTest.java
+++ b/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/MaintenanceWhenPendingGlobalMergesTest.java
@@ -19,8 +19,13 @@ import static org.mockito.Mockito.when;
public class MaintenanceWhenPendingGlobalMergesTest {
private static class Fixture {
- public MergePendingChecker mockPendingChecker = mock(MergePendingChecker.class);
- public MaintenanceWhenPendingGlobalMerges deriver = new MaintenanceWhenPendingGlobalMerges(mockPendingChecker);
+ MergePendingChecker mockPendingChecker = mock(MergePendingChecker.class);
+ MaintenanceTransitionConstraint mockEligibilityChecker = mock(MaintenanceTransitionConstraint.class);
+ MaintenanceWhenPendingGlobalMerges deriver = new MaintenanceWhenPendingGlobalMerges(mockPendingChecker, mockEligibilityChecker);
+
+ Fixture() {
+ when(mockEligibilityChecker.maintenanceTransitionAllowed(anyInt())).thenReturn(true);
+ }
}
private static String defaultSpace() {
@@ -102,4 +107,14 @@ public class MaintenanceWhenPendingGlobalMergesTest {
.reason(NODE_TOO_UNSTABLE, 2).build()));
}
+ @Test
+ public void node_with_pending_merges_only_set_to_maintenance_if_eligible() {
+ Fixture f = new Fixture();
+ Arrays.asList(1, 2, 3).forEach(idx -> when(f.mockPendingChecker.mayHaveMergesPending(globalSpace(), idx)).thenReturn(true));
+ Arrays.asList(1, 2, 4).forEach(idx -> when(f.mockEligibilityChecker.maintenanceTransitionAllowed(idx)).thenReturn(false));
+ AnnotatedClusterState derived = f.deriver.derivedFrom(stateFromString("distributor:5 storage:5"), defaultSpace());
+ assertThat(derived, equalTo(AnnotatedClusterStateBuilder.ofState("distributor:5 storage:5 .3.s:m")
+ .reason(MAY_HAVE_MERGES_PENDING, 3).build()));
+ }
+
}