diff options
author | Harald Musum <musum@yahooinc.com> | 2023-05-12 11:25:06 +0200 |
---|---|---|
committer | Harald Musum <musum@yahooinc.com> | 2023-05-12 11:25:06 +0200 |
commit | ee3f0e9cfd01a3989ae72907464df5d71df0e351 (patch) | |
tree | 8a38fef44b57691000038f725e515d2c139b81ef /clustercontroller-core/src/test | |
parent | 1fca02b50e1c764063b8de71514fc5ccc79e3cd8 (diff) |
Create slobrok in constructor and simplify setup
Diffstat (limited to 'clustercontroller-core/src/test')
11 files changed, 45 insertions, 50 deletions
diff --git a/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/ClusterFeedBlockTest.java b/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/ClusterFeedBlockTest.java index 8130def0907..eb592e95865 100644 --- a/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/ClusterFeedBlockTest.java +++ b/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/ClusterFeedBlockTest.java @@ -69,7 +69,7 @@ public class ClusterFeedBlockTest extends FleetControllerTest { } private static FleetControllerOptions createOptions(Map<String, Double> feedBlockLimits, double clusterFeedBlockNoiseLevel) { - return defaultOptions("mycluster") + return defaultOptions() .setStorageDistribution(DistributionBuilder.forFlatCluster(NODE_COUNT)) .setNodes(new HashSet<>(DistributionBuilder.buildConfiguredNodes(NODE_COUNT))) .setClusterFeedBlockEnabled(true) 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 edf0cdbedd7..a210f219b08 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 @@ -35,7 +35,7 @@ public class DatabaseTest extends FleetControllerTest { @Test void testWantedStatesInZooKeeper() throws Exception { - FleetControllerOptions.Builder builder = defaultOptions("mycluster"); + FleetControllerOptions.Builder builder = defaultOptions(); builder.setZooKeeperServerAddress("127.0.0.1"); Timer timer = new FakeTimer(); setUpFleetController(timer, builder); @@ -90,7 +90,7 @@ public class DatabaseTest extends FleetControllerTest { @Test void testWantedStateOfUnknownNode() throws Exception { - FleetControllerOptions.Builder builder = defaultOptions("mycluster") + FleetControllerOptions.Builder builder = defaultOptions() .setMinRatioOfDistributorNodesUp(0) .setMinRatioOfStorageNodesUp(0) .setZooKeeperServerAddress("localhost"); 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 3fe289c3b43..baa5235c530 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 @@ -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.jrt.ListenFailedException; import com.yahoo.jrt.Request; import com.yahoo.jrt.Spec; import com.yahoo.jrt.StringValue; @@ -50,8 +51,8 @@ public abstract class FleetControllerTest implements Waiter { private static final int DEFAULT_NODE_COUNT = 10; private final Duration timeout = Duration.ofSeconds(30); - protected Slobrok slobrok; + protected FleetControllerOptions options; ZooKeeperTestServer zooKeeperServer; protected final List<FleetController> fleetControllers = new ArrayList<>(); @@ -59,29 +60,36 @@ public abstract class FleetControllerTest implements Waiter { // TODO: This should use the same timer as the fleet controllers (i.e. the one supplied in createFleetControllers() private Waiter waiter = createWaiter(new FakeTimer()); + FleetControllerTest() { + try { + slobrok = new Slobrok(); + } catch (ListenFailedException e) { + throw new RuntimeException(e); + } + } + static { LogSetup.initVespaLogging("fleetcontroller"); } - static protected FleetControllerOptions.Builder defaultOptions(String clusterName) { - return defaultOptions(clusterName, DEFAULT_NODE_COUNT); + protected static FleetControllerOptions.Builder defaultOptions() { + return defaultOptions(DEFAULT_NODE_COUNT); } - static protected FleetControllerOptions.Builder defaultOptions(String clusterName, int nodeCount) { - return defaultOptions(clusterName, IntStream.range(0, nodeCount) + protected static FleetControllerOptions.Builder defaultOptions(int nodeCount) { + return defaultOptions("mycluster", IntStream.range(0, nodeCount) .mapToObj(i -> new ConfiguredNode(i, false)) .collect(Collectors.toSet())); } - static protected FleetControllerOptions.Builder defaultOptions(String clusterName, Collection<ConfiguredNode> nodes) { + protected static FleetControllerOptions.Builder defaultOptions(String clusterName, Collection<ConfiguredNode> nodes) { var builder = new FleetControllerOptions.Builder(clusterName, nodes); builder.enableTwoPhaseClusterStateActivation(true); // Enable by default, tests can explicitly disable. return builder; } - void setUpSystem(FleetControllerOptions.Builder builder) throws Exception { + private void setUpSystem(FleetControllerOptions.Builder builder) throws Exception { log.log(Level.FINE, "Setting up system"); - slobrok = new Slobrok(); if (builder.zooKeeperServerAddress() != null) { zooKeeperServer = new ZooKeeperTestServer(); // Need to set zookeeper address again, as port number is not known until ZooKeeperTestServer has been created @@ -89,7 +97,6 @@ public abstract class FleetControllerTest implements Waiter { log.log(Level.FINE, "Set up new zookeeper server at " + zooKeeperServer.getAddress()); } builder.setSlobrokConnectionSpecs(getSlobrokConnectionSpecs(slobrok)); - this.options = builder.build(); } static FleetController createFleetController(Timer timer, FleetControllerOptions options) { @@ -126,7 +133,7 @@ public abstract class FleetControllerTest implements Waiter { } protected FleetControllerOptions setUpFleetController(Timer timer, FleetControllerOptions.Builder builder) throws Exception { - if (slobrok == null) setUpSystem(builder); + setUpSystem(builder); options = builder.build(); startFleetController(timer); return options; @@ -243,10 +250,7 @@ public abstract class FleetControllerTest implements Waiter { node.shutdown(); nodes = null; } - if (slobrok != null) { - slobrok.stop(); - slobrok = null; - } + slobrok.stop(); } public ClusterState waitForStableSystem() throws Exception { return waiter.waitForStableSystem(); } diff --git a/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/GroupAutoTakedownLiveConfigTest.java b/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/GroupAutoTakedownLiveConfigTest.java index 2801759e31e..3a6dedafad0 100644 --- a/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/GroupAutoTakedownLiveConfigTest.java +++ b/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/GroupAutoTakedownLiveConfigTest.java @@ -15,7 +15,7 @@ public class GroupAutoTakedownLiveConfigTest extends FleetControllerTest { private final Timer timer = new FakeTimer(); private static FleetControllerOptions.Builder createOptions(DistributionBuilder.GroupBuilder groupBuilder, double minNodeRatio) { - return defaultOptions("mycluster") + return defaultOptions() .setStorageDistribution(DistributionBuilder.forHierarchicCluster(groupBuilder)) .setNodes(new HashSet<>(DistributionBuilder.buildConfiguredNodes(groupBuilder.totalNodeCount()))) .setMinNodeRatioPerGroup(minNodeRatio) 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 19cfab2ec34..e93d824cb67 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 @@ -100,7 +100,7 @@ public class MasterElectionTest extends FleetControllerTest { @Test void testMasterElection() throws Exception { - FleetControllerOptions.Builder builder = defaultOptions("mycluster"); + FleetControllerOptions.Builder builder = defaultOptions(); builder.setMasterZooKeeperCooldownPeriod(100); Timer timer = new RealTimer(); setUpFleetControllers(3, timer, builder); @@ -127,7 +127,7 @@ public class MasterElectionTest extends FleetControllerTest { @Test void testMasterElectionWith5FleetControllers() throws Exception { - FleetControllerOptions.Builder builder = defaultOptions("mycluster"); + FleetControllerOptions.Builder builder = defaultOptions(); RealTimer timer = new RealTimer(); setUpFleetControllers(5, timer, builder); waitForMaster(0); @@ -190,7 +190,7 @@ public class MasterElectionTest extends FleetControllerTest { @Test void testClusterStateVersionIncreasesAcrossMasterElections() throws Exception { - FleetControllerOptions.Builder options = defaultOptions("mycluster"); + FleetControllerOptions.Builder options = defaultOptions(); options.setMasterZooKeeperCooldownPeriod(1); Timer timer = new RealTimer(); setUpFleetControllers(3, timer, options); @@ -210,7 +210,7 @@ public class MasterElectionTest extends FleetControllerTest { @Test void testVotingCorrectnessInFaceOfZKDisconnect() throws Exception { - FleetControllerOptions.Builder options = defaultOptions("mycluster"); + FleetControllerOptions.Builder options = defaultOptions(); // "Magic" port value is in range allocated to module for testing. zooKeeperServer = ZooKeeperTestServer.createWithFixedPort(18342); options.setMasterZooKeeperCooldownPeriod(100); @@ -231,7 +231,7 @@ public class MasterElectionTest extends FleetControllerTest { @Test void testZooKeeperUnavailable() throws Exception { - FleetControllerOptions.Builder builder = defaultOptions("mycluster") + FleetControllerOptions.Builder builder = defaultOptions() .setMasterZooKeeperCooldownPeriod(100) .setZooKeeperServerAddress("localhost"); Timer timer = new RealTimer(); @@ -264,7 +264,7 @@ public class MasterElectionTest extends FleetControllerTest { @Test @Disabled("Unstable, disable test, as functionality is not deemed critical") void testMasterZooKeeperCooldown() throws Exception { - FleetControllerOptions.Builder options = defaultOptions("mycluster"); + FleetControllerOptions.Builder options = defaultOptions(); options.setMasterZooKeeperCooldownPeriod(3600 * 1000); // An hour FakeTimer timer = new FakeTimer(); setUpFleetControllers(3, timer, options); @@ -312,7 +312,7 @@ public class MasterElectionTest extends FleetControllerTest { @Test void testGetMaster() throws Exception { - FleetControllerOptions.Builder options = defaultOptions("mycluster"); + FleetControllerOptions.Builder options = defaultOptions(); options.setMasterZooKeeperCooldownPeriod(3600 * 1000); // An hour FakeTimer timer = new FakeTimer(); setUpFleetControllers(3, timer, options); @@ -393,7 +393,7 @@ public class MasterElectionTest extends FleetControllerTest { @Test void testReconfigure() throws Exception { - FleetControllerOptions.Builder options = defaultOptions("mycluster"); + FleetControllerOptions.Builder options = defaultOptions(); options.setMasterZooKeeperCooldownPeriod(1); Timer timer = new RealTimer(); setUpFleetControllers(3, timer, options); @@ -418,7 +418,7 @@ public class MasterElectionTest extends FleetControllerTest { */ @Test void cluster_state_version_written_to_zookeeper_even_with_empty_send_set() throws Exception { - FleetControllerOptions.Builder builder = defaultOptions("mycluster") + FleetControllerOptions.Builder builder = defaultOptions() .setMasterZooKeeperCooldownPeriod(1) .setMinRatioOfDistributorNodesUp(0) .setMinRatioOfStorageNodesUp(0) @@ -463,7 +463,7 @@ public class MasterElectionTest extends FleetControllerTest { @Test void previously_published_state_is_taken_into_account_for_default_space_when_controller_bootstraps() throws Exception { - FleetControllerOptions.Builder builder = defaultOptions("mycluster") + FleetControllerOptions.Builder builder = defaultOptions() .setClusterHasGlobalDocumentTypes(true) .setMasterZooKeeperCooldownPeriod(1) .setMinTimeBeforeFirstSystemStateBroadcast(100000); @@ -506,7 +506,7 @@ public class MasterElectionTest extends FleetControllerTest { @Test void default_space_nodes_not_marked_as_maintenance_when_cluster_has_no_global_document_types() throws Exception { - FleetControllerOptions.Builder builder = defaultOptions("mycluster") + FleetControllerOptions.Builder builder = defaultOptions() .setClusterHasGlobalDocumentTypes(false) .setMasterZooKeeperCooldownPeriod(1) .setMinTimeBeforeFirstSystemStateBroadcast(100000); 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 2e8c688f6ee..3d3a38aacd4 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 @@ -10,7 +10,7 @@ public class NoZooKeeperTest extends FleetControllerTest { @Test void testWantedStatesInZooKeeper() throws Exception { // Null is the default for zooKeeperServerAddress - FleetControllerOptions.Builder builder = defaultOptions("mycluster"); + FleetControllerOptions.Builder builder = defaultOptions(); Timer timer = new FakeTimer(); setUpFleetController(timer, builder); setUpVdsNodes(timer); 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 4a5b88ef28c..cc9c3f84de3 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 @@ -63,7 +63,7 @@ public class RpcServerTest extends FleetControllerTest { @Test void testGetSystemState() throws Exception { LogFormatter.initializeLogging(); - FleetControllerOptions.Builder options = defaultOptions("mycluster"); + FleetControllerOptions.Builder options = defaultOptions(); setUpFleetController(timer, options); setUpVdsNodes(timer); waitForStableSystem(); @@ -448,7 +448,7 @@ public class RpcServerTest extends FleetControllerTest { @Test void testSetNodeStateOutOfRange() throws Exception { - FleetControllerOptions.Builder options = defaultOptions("mycluster"); + FleetControllerOptions.Builder options = defaultOptions(); options.setStorageDistribution(new Distribution(Distribution.getDefaultDistributionConfig(2, 10))); setUpFleetController(timer, options); setUpVdsNodes(timer); @@ -474,7 +474,7 @@ public class RpcServerTest extends FleetControllerTest { @Test void testGetMaster() throws Exception { - FleetControllerOptions.Builder options = defaultOptions("mycluster"); + FleetControllerOptions.Builder options = defaultOptions(); options.setStorageDistribution(new Distribution(Distribution.getDefaultDistributionConfig(2, 10))); setUpFleetController(timer, options); setUpVdsNodes(timer); @@ -494,7 +494,7 @@ public class RpcServerTest extends FleetControllerTest { @Test void testGetNodeList() throws Exception { - setUpFleetController(timer, defaultOptions("mycluster", 5)); + setUpFleetController(timer, defaultOptions(5)); final int nodeCount = 5; setUpVdsNodes(timer, false, nodeCount); waitForStableSystem(); 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 1fb648d8a6f..65dd13ab8a6 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 @@ -19,7 +19,7 @@ public class SlobrokTest extends FleetControllerTest { @Test void testSingleSlobrokRestart() throws Exception { - FleetControllerOptions.Builder builder = defaultOptions("mycluster") + FleetControllerOptions.Builder builder = defaultOptions() .setNodeStateRequestTimeoutMS(60 * 60 * 1000) .setMaxSlobrokDisconnectGracePeriod(60 * 60 * 1000); setUpFleetController(timer, builder); @@ -73,7 +73,7 @@ public class SlobrokTest extends FleetControllerTest { @Test void testNodeTooLongOutOfSlobrok() throws Exception { - FleetControllerOptions.Builder builder = defaultOptions("mycluster") + FleetControllerOptions.Builder builder = defaultOptions() .setMaxSlobrokDisconnectGracePeriod(60 * 1000) .setNodeStateRequestTimeoutMS(10000 * 60 * 1000); setUpFleetController(timer, builder); 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 8810172c801..dfef6e5a9d0 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 @@ -934,7 +934,7 @@ public class StateChangeTest extends FleetControllerTest { void testNoSystemStateBeforeInitialTimePeriod() throws Exception { FleetControllerOptions.Builder builder = defaultOptions() .setMinTimeBeforeFirstSystemStateBroadcast(3 * 60 * 1000); - setUpSystem(builder); + setUpFleetController(timer, builder); setUpVdsNodes(timer, true); // Leave one node down to avoid sending cluster state due to having seen all node states. for (int i = 0; i < nodes.size(); ++i) { @@ -942,7 +942,6 @@ public class StateChangeTest extends FleetControllerTest { nodes.get(i).connect(); } } - setUpFleetController(timer, builder); StateWaiter waiter = new StateWaiter(timer); fleetController().addSystemStateListener(waiter); @@ -978,8 +977,7 @@ public class StateChangeTest extends FleetControllerTest { void testSystemStateSentWhenNodesReplied() throws Exception { FleetControllerOptions.Builder builder = defaultOptions() .setMinTimeBeforeFirstSystemStateBroadcast(300 * 60 * 1000); - - setUpSystem(builder); + setUpFleetController(timer, builder); setUpVdsNodes(timer, true); for (DummyVdsNode node : nodes) { @@ -988,8 +986,6 @@ public class StateChangeTest extends FleetControllerTest { // Marking one node as 'initializing' improves testing of state later on. nodes.get(3).setNodeState(State.INITIALIZING); - setUpFleetController(timer, builder); - final StateWaiter waiter = new StateWaiter(timer); fleetController().addSystemStateListener(waiter); @@ -1375,10 +1371,6 @@ public class StateChangeTest extends FleetControllerTest { } } - private static FleetControllerOptions.Builder defaultOptions() { - return defaultOptions("mycluster", createNodes(10)); - } - private static FleetControllerOptions.Builder optionsWithZeroTransitionTime() { FleetControllerOptions.Builder options = defaultOptions(); options.setMaxTransitionTime(NodeType.STORAGE, 0); 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 12c12d330b8..f6b676cf421 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 @@ -6,7 +6,6 @@ import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; import java.time.Instant; import java.util.concurrent.TimeoutException; -import java.util.logging.Level; import java.util.logging.Logger; import static org.junit.jupiter.api.Assertions.assertEquals; @@ -31,7 +30,7 @@ public class StateGatherTest extends FleetControllerTest { @Test void testAlwaysHavePendingGetNodeStateRequestTowardsNodes() throws Exception { //Logger.getLogger(NodeStateGatherer.class.getName()).setLevel(Level.FINEST); - FleetControllerOptions.Builder builder = defaultOptions("mycluster") + FleetControllerOptions.Builder builder = defaultOptions() .setNodeStateRequestTimeoutMS(10 * 60 * 1000) // Force actual message timeout to be lower than request timeout. .setNodeStateRequestTimeoutEarliestPercentage(80) 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 411f31875c4..17ed6ca7a7b 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 @@ -29,7 +29,7 @@ public class WantedStateTest extends FleetControllerTest { @Test void testSettingStorageNodeMaintenanceAndBack() throws Exception { - setUpFleetController(timer, defaultOptions("mycluster")); + setUpFleetController(timer, defaultOptions()); setUpVdsNodes(timer); waitForStableSystem(); @@ -42,7 +42,7 @@ public class WantedStateTest extends FleetControllerTest { @Test void testOverridingWantedStateOtherReason() throws Exception { - setUpFleetController(timer, defaultOptions("mycluster")); + setUpFleetController(timer, defaultOptions()); setUpVdsNodes(timer); waitForStableSystem(); |