summaryrefslogtreecommitdiffstats
path: root/clustercontroller-core
diff options
context:
space:
mode:
authorHarald Musum <musum@yahooinc.com>2022-09-01 13:03:52 +0200
committerHarald Musum <musum@yahooinc.com>2022-09-01 13:03:52 +0200
commitd6f97966ab36917b26b5a58a094293a8583d5fb3 (patch)
treefa7a5b7c18847d7aa4b8fe53b62658f40abe6839 /clustercontroller-core
parent2ec85a52d1f110bdf434045d36a51f2f0ea5195f (diff)
Use node type instead of boolean, simplify
Diffstat (limited to 'clustercontroller-core')
-rw-r--r--clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/DatabaseTest.java4
-rw-r--r--clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/DummyVdsNode.java5
-rw-r--r--clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/DummyVdsNodeOptions.java7
-rw-r--r--clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/FleetControllerTest.java43
-rw-r--r--clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/MasterElectionTest.java8
-rw-r--r--clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/NoZooKeeperTest.java2
-rw-r--r--clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/RpcServerTest.java10
-rw-r--r--clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/SlobrokTest.java4
-rw-r--r--clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/StateChangeTest.java4
-rw-r--r--clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/StateGatherTest.java5
-rw-r--r--clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/WantedStateTest.java4
11 files changed, 50 insertions, 46 deletions
diff --git a/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/DatabaseTest.java b/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/DatabaseTest.java
index a383c225e89..26bb21da3d4 100644
--- a/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/DatabaseTest.java
+++ b/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/DatabaseTest.java
@@ -31,7 +31,7 @@ public class DatabaseTest extends FleetControllerTest {
FleetControllerOptions.Builder builder = defaultOptions("mycluster");
builder.setZooKeeperServerAddress("127.0.0.1");
setUpFleetController(true, builder);
- setUpVdsNodes(true, new DummyVdsNodeOptions());
+ setUpVdsNodes(true);
log.info("WAITING FOR STABLE SYSTEM");
waitForStableSystem();
@@ -87,7 +87,7 @@ public class DatabaseTest extends FleetControllerTest {
.setMinRatioOfStorageNodesUp(0)
.setZooKeeperServerAddress("localhost");
setUpFleetController(true, builder);
- setUpVdsNodes(true, new DummyVdsNodeOptions());
+ setUpVdsNodes(true);
waitForStableSystem();
// Populate map of wanted states we should have
diff --git a/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/DummyVdsNode.java b/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/DummyVdsNode.java
index 8ca2d6fdb6a..fbaf41fdd47 100644
--- a/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/DummyVdsNode.java
+++ b/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/DummyVdsNode.java
@@ -120,11 +120,12 @@ public class DummyVdsNode {
}
};
- public DummyVdsNode(Timer timer, DummyVdsNodeOptions options, String[] slobrokConnectionSpecs, String clusterName, boolean distributor, int index) throws Exception {
+ public DummyVdsNode(Timer timer, DummyVdsNodeOptions options, String[] slobrokConnectionSpecs, String clusterName,
+ NodeType nodeType, int index) throws Exception {
this.timer = timer;
this.slobrokConnectionSpecs = slobrokConnectionSpecs;
this.clusterName = clusterName;
- type = distributor ? NodeType.DISTRIBUTOR : NodeType.STORAGE;
+ type = nodeType;
this.index = index;
this.nodeState = new NodeState(type, State.UP);
this.stateCommunicationVersion = requireAtLeast(options.stateCommunicationVersion, "state communication version cannot be less than 2", 2);
diff --git a/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/DummyVdsNodeOptions.java b/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/DummyVdsNodeOptions.java
index c391fc27813..d6b5e7fa5d2 100644
--- a/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/DummyVdsNodeOptions.java
+++ b/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/DummyVdsNodeOptions.java
@@ -8,6 +8,11 @@ import com.yahoo.vespa.clustercontroller.core.rpc.RPCCommunicator;
* over regular RPC.
*/
public class DummyVdsNodeOptions {
- // 0 - 4.1, 1 - 4.2-5.0.10, 2 - 5.0.11+, 3 - 6.220+, 4 - 7.24+
+ // Rpc method versions and which Vespa versions supports each version:
+ // 0 - 4.1
+ // 1 - 4.2-5.0.10
+ // 2 - 5.0.11+
+ // 3 - 6.220+
+ // 4 - 7.24+
int stateCommunicationVersion = RPCCommunicator.ACTIVATE_CLUSTER_STATE_VERSION_RPC_VERSION;
}
diff --git a/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/FleetControllerTest.java b/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/FleetControllerTest.java
index dd723cf3d37..58a076a6176 100644
--- a/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/FleetControllerTest.java
+++ b/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/FleetControllerTest.java
@@ -35,15 +35,15 @@ import java.util.Arrays;
import java.util.Collection;
import java.util.HashSet;
import java.util.List;
-import java.util.Map;
import java.util.Set;
-import java.util.TreeMap;
import java.util.TreeSet;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
+import static com.yahoo.vdslib.state.NodeType.DISTRIBUTOR;
+import static com.yahoo.vdslib.state.NodeType.STORAGE;
import static org.junit.jupiter.api.Assertions.fail;
/**
@@ -201,8 +201,8 @@ public abstract class FleetControllerTest implements Waiter {
}
}
- protected void setUpVdsNodes(boolean useFakeTimer, DummyVdsNodeOptions options) throws Exception {
- setUpVdsNodes(useFakeTimer, options, false);
+ protected void setUpVdsNodes(boolean useFakeTimer) throws Exception {
+ setUpVdsNodes(useFakeTimer, new DummyVdsNodeOptions(), false);
}
protected void setUpVdsNodes(boolean useFakeTimer, DummyVdsNodeOptions options, boolean startDisconnected) throws Exception {
setUpVdsNodes(useFakeTimer, options, startDisconnected, DEFAULT_NODE_COUNT);
@@ -213,15 +213,23 @@ public abstract class FleetControllerTest implements Waiter {
nodeIndexes.add(this.nodes.size()/2 + i); // divide by 2 because there are 2 nodes (storage and distributor) per index
setUpVdsNodes(useFakeTimer, options, startDisconnected, nodeIndexes);
}
- protected void setUpVdsNodes(boolean useFakeTimer, DummyVdsNodeOptions options, boolean startDisconnected, Set<Integer> nodeIndexes) throws Exception {
- String[] connectionSpecs = getSlobrokConnectionSpecs(slobrok);
+ protected void setUpVdsNodes(boolean useFakeTimer, DummyVdsNodeOptions nodeOptions, boolean startDisconnected, Set<Integer> nodeIndexes) throws Exception {
for (int nodeIndex : nodeIndexes) {
- nodes.add(new DummyVdsNode(useFakeTimer ? timer : new RealTimer(), options, connectionSpecs, this.options.clusterName(), true, nodeIndex));
- if ( ! startDisconnected) nodes.get(nodes.size() - 1).connect();
- nodes.add(new DummyVdsNode(useFakeTimer ? timer : new RealTimer(), options, connectionSpecs, this.options.clusterName(), false, nodeIndex));
- if ( ! startDisconnected) nodes.get(nodes.size() - 1).connect();
+ nodes.add(createNode(useFakeTimer, nodeOptions, startDisconnected, DISTRIBUTOR, nodeIndex));
+ nodes.add(createNode(useFakeTimer, nodeOptions, startDisconnected, STORAGE, nodeIndex));
}
}
+
+ private DummyVdsNode createNode(boolean useFakeTimer, DummyVdsNodeOptions nodeOptions, boolean startDisconnected,
+ NodeType nodeType, int nodeIndex) throws Exception {
+ String[] connectionSpecs = getSlobrokConnectionSpecs(slobrok);
+ DummyVdsNode node = new DummyVdsNode(useFakeTimer ? timer : new RealTimer(), nodeOptions, connectionSpecs,
+ options.clusterName(), nodeType, nodeIndex);
+ if ( ! startDisconnected)
+ node.connect();
+ return node;
+ }
+
// TODO: Replace all usages of the above setUp methods with this one, and remove the nodes field
/**
@@ -230,14 +238,10 @@ public abstract class FleetControllerTest implements Waiter {
* the returned list is twice as large as configuredNodes.
*/
protected List<DummyVdsNode> setUpVdsNodes(boolean useFakeTimer, DummyVdsNodeOptions options, boolean startDisconnected, List<ConfiguredNode> configuredNodes) throws Exception {
- String[] connectionSpecs = getSlobrokConnectionSpecs(slobrok);
nodes = new ArrayList<>();
- final boolean distributor = true;
for (ConfiguredNode configuredNode : configuredNodes) {
- nodes.add(new DummyVdsNode(useFakeTimer ? timer : new RealTimer(), options, connectionSpecs, this.options.clusterName(), distributor, configuredNode.index()));
- if ( ! startDisconnected) nodes.get(nodes.size() - 1).connect();
- nodes.add(new DummyVdsNode(useFakeTimer ? timer : new RealTimer(), options, connectionSpecs, this.options.clusterName(), !distributor, configuredNode.index()));
- if ( ! startDisconnected) nodes.get(nodes.size() - 1).connect();
+ nodes.add(createNode(useFakeTimer, options, startDisconnected, DISTRIBUTOR, configuredNode.index()));
+ nodes.add(createNode(useFakeTimer, options, startDisconnected, STORAGE, configuredNode.index()));
}
return nodes;
}
@@ -274,13 +278,6 @@ public abstract class FleetControllerTest implements Waiter {
subsetWaiter.waitForState(expectedState);
}
- static Map<NodeType, Integer> transitionTimes(int milliseconds) {
- Map<NodeType, Integer> maxTransitionTime = new TreeMap<>();
- maxTransitionTime.put(NodeType.DISTRIBUTOR, milliseconds);
- maxTransitionTime.put(NodeType.STORAGE, milliseconds);
- return maxTransitionTime;
- }
-
protected void tearDownSystem() throws Exception {
if (testName != null) {
//log.log(Level.INFO, "STOPPING TEST " + testName);
diff --git a/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/MasterElectionTest.java b/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/MasterElectionTest.java
index 0594fc13ef5..42b06c63f97 100644
--- a/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/MasterElectionTest.java
+++ b/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/MasterElectionTest.java
@@ -222,7 +222,7 @@ public class MasterElectionTest extends FleetControllerTest {
setUpFleetController(3, false, options);
// Currently need to have content nodes present for the cluster controller to even bother
// attempting to persisting its cluster state version to ZK.
- setUpVdsNodes(false, new DummyVdsNodeOptions());
+ setUpVdsNodes(false);
fleetController = fleetControllers.get(0); // Required to prevent waitForStableSystem from NPE'ing
waitForStableSystem();
waitForMaster(0);
@@ -454,7 +454,7 @@ public class MasterElectionTest extends FleetControllerTest {
.setMinDistributorNodesUp(0)
.setMinStorageNodesUp(1);
setUpFleetController(3, false, builder);
- setUpVdsNodes(false, new DummyVdsNodeOptions());
+ setUpVdsNodes(false);
fleetController = fleetControllers.get(0); // Required to prevent waitForStableSystem from NPE'ing
waitForStableSystem();
waitForMaster(0);
@@ -499,7 +499,7 @@ public class MasterElectionTest extends FleetControllerTest {
.setMinTimeBeforeFirstSystemStateBroadcast(100000);
boolean useFakeTimer = false;
setUpFleetController(3, useFakeTimer, builder);
- setUpVdsNodes(false, new DummyVdsNodeOptions());
+ setUpVdsNodes(false);
fleetController = fleetControllers.get(0); // Required to prevent waitForStableSystem from NPE'ing
waitForMaster(0);
waitForStableSystem();
@@ -542,7 +542,7 @@ public class MasterElectionTest extends FleetControllerTest {
.setMasterZooKeeperCooldownPeriod(1)
.setMinTimeBeforeFirstSystemStateBroadcast(100000);
setUpFleetController(3, false, builder);
- setUpVdsNodes(false, new DummyVdsNodeOptions());
+ setUpVdsNodes(false);
fleetController = fleetControllers.get(0); // Required to prevent waitForStableSystem from NPE'ing
waitForMaster(0);
waitForStableSystem();
diff --git a/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/NoZooKeeperTest.java b/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/NoZooKeeperTest.java
index a1f47e32a7d..483c92d4861 100644
--- a/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/NoZooKeeperTest.java
+++ b/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/NoZooKeeperTest.java
@@ -13,7 +13,7 @@ public class NoZooKeeperTest extends FleetControllerTest {
// Null is the default for zooKeeperServerAddress
FleetControllerOptions.Builder builder = defaultOptions("mycluster");
setUpFleetController(true, builder);
- setUpVdsNodes(true, new DummyVdsNodeOptions());
+ setUpVdsNodes(true);
waitForStableSystem();
assertTrue(nodes.get(0).isDistributor());
diff --git a/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/RpcServerTest.java b/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/RpcServerTest.java
index c91bb7b19b7..d36486d2eb6 100644
--- a/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/RpcServerTest.java
+++ b/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/RpcServerTest.java
@@ -84,7 +84,7 @@ public class RpcServerTest extends FleetControllerTest {
try {
startingTest("RpcServerTest::testFailOccasionallyAndIgnoreToSeeIfOtherTestsThenWork");
setUpFleetController(true, defaultOptions("mycluster"));
- setUpVdsNodes(true, new DummyVdsNodeOptions());
+ setUpVdsNodes(true);
waitForStableSystem();
} catch (Throwable t) {
}
@@ -96,7 +96,7 @@ public class RpcServerTest extends FleetControllerTest {
startingTest("RpcServerTest::testGetSystemState");
FleetControllerOptions.Builder options = defaultOptions("mycluster");
setUpFleetController(true, options);
- setUpVdsNodes(true, new DummyVdsNodeOptions());
+ setUpVdsNodes(true);
waitForStableSystem();
assertTrue(nodes.get(0).isDistributor());
@@ -166,7 +166,7 @@ public class RpcServerTest extends FleetControllerTest {
builder.setMaxInitProgressTime(30000);
builder.setStableStateTimePeriod(60000);
setUpFleetController(true, builder);
- setUpVdsNodes(true, new DummyVdsNodeOptions());
+ setUpVdsNodes(true);
waitForStableSystem();
setWantedNodeState(State.DOWN, NodeType.DISTRIBUTOR, 2);
@@ -490,7 +490,7 @@ public class RpcServerTest extends FleetControllerTest {
FleetControllerOptions.Builder options = defaultOptions("mycluster");
options.setStorageDistribution(new Distribution(Distribution.getDefaultDistributionConfig(2, 10)));
setUpFleetController(true, options);
- setUpVdsNodes(true, new DummyVdsNodeOptions());
+ setUpVdsNodes(true);
waitForStableSystem();
int rpcPort = fleetController.getRpcPort();
@@ -518,7 +518,7 @@ public class RpcServerTest extends FleetControllerTest {
FleetControllerOptions.Builder options = defaultOptions("mycluster");
options.setStorageDistribution(new Distribution(Distribution.getDefaultDistributionConfig(2, 10)));
setUpFleetController(true, options);
- setUpVdsNodes(true, new DummyVdsNodeOptions());
+ setUpVdsNodes(true);
waitForStableSystem();
int rpcPort = fleetController.getRpcPort();
diff --git a/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/SlobrokTest.java b/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/SlobrokTest.java
index be3f7f27488..4cf69b778a2 100644
--- a/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/SlobrokTest.java
+++ b/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/SlobrokTest.java
@@ -20,7 +20,7 @@ public class SlobrokTest extends FleetControllerTest {
.setNodeStateRequestTimeoutMS(60 * 60 * 1000)
.setMaxSlobrokDisconnectGracePeriod(60 * 60 * 1000);
setUpFleetController(true, builder);
- setUpVdsNodes(true, new DummyVdsNodeOptions());
+ setUpVdsNodes(true);
waitForStableSystem();
int version = fleetController.getSystemState().getVersion();
@@ -74,7 +74,7 @@ public class SlobrokTest extends FleetControllerTest {
.setMaxSlobrokDisconnectGracePeriod(60 * 1000)
.setNodeStateRequestTimeoutMS(10000 * 60 * 1000);
setUpFleetController(true, builder);
- setUpVdsNodes(true, new DummyVdsNodeOptions());
+ setUpVdsNodes(true);
waitForStableSystem();
int version = fleetController.getSystemState().getVersion();
diff --git a/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/StateChangeTest.java b/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/StateChangeTest.java
index 30eae09724e..56fcd4666e8 100644
--- a/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/StateChangeTest.java
+++ b/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/StateChangeTest.java
@@ -1038,7 +1038,7 @@ public class StateChangeTest extends FleetControllerTest {
startingTest("StateChangeTest::testDontTagFailingSetSystemStateOk()");
FleetControllerOptions.Builder options = defaultOptions("mycluster", createNodes(10));
setUpFleetController(true, options);
- setUpVdsNodes(true, new DummyVdsNodeOptions());
+ setUpVdsNodes(true);
waitForStableSystem();
StateWaiter waiter = new StateWaiter(timer);
@@ -1116,7 +1116,7 @@ public class StateChangeTest extends FleetControllerTest {
startingTest("StateChangeTest::testSetAllTimestampsAfterDowntime");
FleetControllerOptions.Builder options = defaultOptions("mycluster", createNodes(10));
setUpFleetController(true, options);
- setUpVdsNodes(true, new DummyVdsNodeOptions());
+ setUpVdsNodes(true);
waitForStableSystem();
StateWaiter waiter = new StateWaiter(timer);
diff --git a/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/StateGatherTest.java b/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/StateGatherTest.java
index 712ed9172d5..6ecfc9ca550 100644
--- a/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/StateGatherTest.java
+++ b/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/StateGatherTest.java
@@ -1,6 +1,7 @@
// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.clustercontroller.core;
+import com.yahoo.vdslib.state.NodeType;
import org.junit.jupiter.api.Test;
import java.time.Instant;
import java.util.concurrent.TimeoutException;
@@ -35,8 +36,8 @@ public class StateGatherTest extends FleetControllerTest {
setUpFleetController(true, builder);
String[] connectionSpecs = getSlobrokConnectionSpecs(slobrok);
DummyVdsNodeOptions dummyOptions = new DummyVdsNodeOptions();
- DummyVdsNode dnode = new DummyVdsNode(timer, dummyOptions, connectionSpecs, builder.clusterName(), true, 0);
- DummyVdsNode snode = new DummyVdsNode(timer, dummyOptions, connectionSpecs, builder.clusterName(), false, 0);
+ DummyVdsNode dnode = new DummyVdsNode(timer, dummyOptions, connectionSpecs, builder.clusterName(), NodeType.DISTRIBUTOR, 0);
+ DummyVdsNode snode = new DummyVdsNode(timer, dummyOptions, connectionSpecs, builder.clusterName(), NodeType.STORAGE, 0);
dnode.connect();
snode.connect();
diff --git a/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/WantedStateTest.java b/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/WantedStateTest.java
index 7bbae78dbab..e89f5fc7e58 100644
--- a/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/WantedStateTest.java
+++ b/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/WantedStateTest.java
@@ -12,7 +12,7 @@ public class WantedStateTest extends FleetControllerTest {
void testSettingStorageNodeMaintenanceAndBack() throws Exception {
startingTest("WantedStateTest::testSettingStorageNodeMaintenanceAndBack()");
setUpFleetController(true, defaultOptions("mycluster"));
- setUpVdsNodes(true, new DummyVdsNodeOptions());
+ setUpVdsNodes(true);
waitForStableSystem();
setWantedState(nodes.get(1), State.MAINTENANCE, null);
@@ -26,7 +26,7 @@ public class WantedStateTest extends FleetControllerTest {
void testOverridingWantedStateOtherReason() throws Exception {
startingTest("WantedStateTest::testOverridingWantedStateOtherReason()");
setUpFleetController(true, defaultOptions("mycluster"));
- setUpVdsNodes(true, new DummyVdsNodeOptions());
+ setUpVdsNodes(true);
waitForStableSystem();
setWantedState(nodes.get(1), State.MAINTENANCE, "Foo");