summaryrefslogtreecommitdiffstats
path: root/container-core/src/test/java/com/yahoo/container/handler
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@verizonmedia.com>2020-03-30 23:11:29 +0200
committerJon Bratseth <bratseth@verizonmedia.com>2020-03-30 23:12:29 +0200
commit5f20981c68ea4afbd25c57e7e46eac6c60ff9ab3 (patch)
treee029232b48df96db979faf69715625fb62f8b421 /container-core/src/test/java/com/yahoo/container/handler
parentc90c9ac78a1dc2422525b801d4b22faa251d7c5d (diff)
Configure initially out of rotation for config servers
Diffstat (limited to 'container-core/src/test/java/com/yahoo/container/handler')
-rw-r--r--container-core/src/test/java/com/yahoo/container/handler/VipStatusTestCase.java68
1 files changed, 46 insertions, 22 deletions
diff --git a/container-core/src/test/java/com/yahoo/container/handler/VipStatusTestCase.java b/container-core/src/test/java/com/yahoo/container/handler/VipStatusTestCase.java
index d3479936544..e13debcddda 100644
--- a/container-core/src/test/java/com/yahoo/container/handler/VipStatusTestCase.java
+++ b/container-core/src/test/java/com/yahoo/container/handler/VipStatusTestCase.java
@@ -4,6 +4,7 @@ package com.yahoo.container.handler;
import static org.junit.Assert.*;
import com.yahoo.container.QrSearchersConfig;
+import com.yahoo.container.core.VipStatusConfig;
import com.yahoo.container.jdisc.state.StateMonitor;
import com.yahoo.jdisc.core.SystemTimer;
import org.junit.Test;
@@ -14,39 +15,45 @@ import org.junit.Test;
* @author steinar
*/
public class VipStatusTestCase {
- private static final String [] clusters = {"cluster1", "cluster2", "cluster3"};
- private static QrSearchersConfig getSearchersCfg() {
+ private static QrSearchersConfig getSearchersConfig(String[] clusters) {
var b = new QrSearchersConfig.Builder();
- var searchClusterB = new QrSearchersConfig.Searchcluster.Builder();
- for (String cluster : clusters) {
- searchClusterB.name(cluster);
+ if (clusters.length > 0) {
+ var searchClusterB = new QrSearchersConfig.Searchcluster.Builder();
+ for (String cluster : clusters) {
+ searchClusterB.name(cluster);
+ }
+ b.searchcluster(searchClusterB);
}
- b.searchcluster(searchClusterB);
return b.build();
}
- private static VipStatus getVipStatus(StateMonitor.Status startState) {
- return new VipStatus(getSearchersCfg(), new ClustersStatus(), new StateMonitor(1000, startState, new SystemTimer(), runnable -> {
- Thread thread = new Thread(runnable, "StateMonitor");
- thread.setDaemon(true);
- return thread;
- }));
+
+ private static VipStatus getVipStatus(String[] clusters, StateMonitor.Status startState, boolean initiallyInRotation) {
+ return new VipStatus(getSearchersConfig(clusters),
+ new VipStatusConfig.Builder().initiallyInRotation(initiallyInRotation).build(),
+ new ClustersStatus(),
+ new StateMonitor(1000, startState, new SystemTimer(), runnable -> {
+ Thread thread = new Thread(runnable, "StateMonitor");
+ thread.setDaemon(true);
+ return thread;
+ }));
}
- private static void removeAll(VipStatus v) {
+ private static void remove(String[] clusters, VipStatus v) {
for (String s : clusters) {
v.removeFromRotation(s);
}
}
- private static void addAll(VipStatus v) {
+
+ private static void add(String[] clusters, VipStatus v) {
for (String s : clusters) {
v.addToRotation(s);
}
}
- private static void verifyUpOrDown(StateMonitor.Status status) {
- VipStatus v = getVipStatus(status);
- removeAll(v);
+ private static void verifyUpOrDown(String[] clusters, StateMonitor.Status status) {
+ VipStatus v = getVipStatus(clusters, status, true);
+ remove(clusters, v);
// initial state
assertFalse(v.isInRotation());
v.addToRotation(clusters[0]);
@@ -59,15 +66,18 @@ public class VipStatusTestCase {
@Test
public void testInitializingOrDownRequireAllUp() {
- verifyUpOrDown(StateMonitor.Status.initializing);
- verifyUpOrDown(StateMonitor.Status.down);
+ String[] clusters = {"cluster1", "cluster2", "cluster3"};
+ verifyUpOrDown(clusters, StateMonitor.Status.initializing);
+ verifyUpOrDown(clusters, StateMonitor.Status.down);
}
@Test
public void testUpRequireAllDown() {
- VipStatus v = getVipStatus(StateMonitor.Status.initializing);
+ String[] clusters = {"cluster1", "cluster2", "cluster3"};
+
+ VipStatus v = getVipStatus(clusters, StateMonitor.Status.initializing, true);
assertFalse(v.isInRotation());
- addAll(v);
+ add(clusters, v);
assertTrue(v.isInRotation());
v.removeFromRotation(clusters[0]);
@@ -89,4 +99,18 @@ public class VipStatusTestCase {
assertTrue(v.isInRotation());
}
-}
+ @Test
+ public void testNoClustersConfiguringInitiallyInRotationFalse() {
+ String[] clusters = {};
+ VipStatus v = getVipStatus(clusters, StateMonitor.Status.initializing, false);
+ assertFalse(v.isInRotation());
+ }
+
+ @Test
+ public void testNoClustersConfiguringInitiallyInRotationTrue() {
+ String[] clusters = {};
+ VipStatus v = getVipStatus(clusters, StateMonitor.Status.initializing, true);
+ assertTrue(v.isInRotation());
+ }
+
+} \ No newline at end of file