diff options
Diffstat (limited to 'clustercontroller-core/src/test/java/com')
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"); |