http://git-wip-us.apache.org/repos/asf/helix/blob/c0d5792b/helix-core/src/test/java/org/apache/helix/integration/common/ZkIntegrationTestBase.java ---------------------------------------------------------------------- diff --git a/helix-core/src/test/java/org/apache/helix/integration/common/ZkIntegrationTestBase.java b/helix-core/src/test/java/org/apache/helix/integration/common/ZkIntegrationTestBase.java deleted file mode 100644 index 85b4d45..0000000 --- a/helix-core/src/test/java/org/apache/helix/integration/common/ZkIntegrationTestBase.java +++ /dev/null @@ -1,322 +0,0 @@ -package org.apache.helix.integration.common; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import java.lang.reflect.Method; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.logging.Level; -import org.I0Itec.zkclient.ZkServer; -import org.apache.helix.BaseDataAccessor; -import org.apache.helix.ConfigAccessor; -import org.apache.helix.HelixManager; -import org.apache.helix.PropertyKey.Builder; -import org.apache.helix.TestHelper; -import org.apache.helix.ZNRecord; -import org.apache.helix.controller.pipeline.AbstractAsyncBaseStage; -import org.apache.helix.controller.pipeline.Stage; -import org.apache.helix.controller.pipeline.StageContext; -import org.apache.helix.controller.rebalancer.DelayedAutoRebalancer; -import org.apache.helix.controller.rebalancer.strategy.AutoRebalanceStrategy; -import org.apache.helix.controller.stages.AttributeName; -import org.apache.helix.controller.stages.ClusterEvent; -import org.apache.helix.manager.zk.ZKHelixDataAccessor; -import org.apache.helix.manager.zk.ZNRecordSerializer; -import org.apache.helix.manager.zk.ZkBaseDataAccessor; -import org.apache.helix.manager.zk.ZkClient; -import org.apache.helix.model.BuiltInStateModelDefinitions; -import org.apache.helix.model.ClusterConfig; -import org.apache.helix.model.ConfigScope; -import org.apache.helix.model.ExternalView; -import org.apache.helix.model.IdealState; -import org.apache.helix.model.InstanceConfig; -import org.apache.helix.model.LiveInstance; -import org.apache.helix.model.OnlineOfflineSMD; -import org.apache.helix.model.StateModelDefinition; -import org.apache.helix.model.builder.ConfigScopeBuilder; -import org.apache.helix.tools.ClusterSetup; -import org.apache.helix.util.ZKClientPool; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.testng.Assert; -import org.testng.AssertJUnit; -import org.testng.ITestContext; -import org.testng.annotations.AfterMethod; -import org.testng.annotations.AfterSuite; -import org.testng.annotations.BeforeMethod; -import org.testng.annotations.BeforeSuite; - -public class ZkIntegrationTestBase { - private static Logger LOG = LoggerFactory.getLogger(ZkIntegrationTestBase.class); - - protected static ZkServer _zkServer; - protected static ZkClient _gZkClient; - protected static ClusterSetup _gSetupTool; - protected static BaseDataAccessor<ZNRecord> _baseAccessor; - - public static final String ZK_ADDR = "localhost:2183"; - protected static final String CLUSTER_PREFIX = "CLUSTER"; - protected static final String CONTROLLER_CLUSTER_PREFIX = "CONTROLLER_CLUSTER"; - - protected final String CONTROLLER_PREFIX = "controller"; - protected final String PARTICIPANT_PREFIX = "localhost"; - - @BeforeSuite - public void beforeSuite() throws Exception { - // TODO: use logging.properties file to config java.util.logging.Logger levels - java.util.logging.Logger topJavaLogger = java.util.logging.Logger.getLogger(""); - topJavaLogger.setLevel(Level.WARNING); - - // Due to ZOOKEEPER-2693 fix, we need to specify whitelist for execute zk commends - System.setProperty("zookeeper.4lw.commands.whitelist", "*"); - - _zkServer = TestHelper.startZkServer(ZK_ADDR); - AssertJUnit.assertTrue(_zkServer != null); - ZKClientPool.reset(); - - _gZkClient = new ZkClient(ZK_ADDR); - _gZkClient.setZkSerializer(new ZNRecordSerializer()); - _gSetupTool = new ClusterSetup(_gZkClient); - _baseAccessor = new ZkBaseDataAccessor<>(_gZkClient); - } - - @AfterSuite - public void afterSuite() { - ZKClientPool.reset(); - _gZkClient.close(); - TestHelper.stopZkServer(_zkServer); - } - - @BeforeMethod - public void beforeTest(Method testMethod, ITestContext testContext){ - long startTime = System.currentTimeMillis(); - System.out.println("START " + testMethod.getName() + " at " + new Date(startTime)); - testContext.setAttribute("StartTime", System.currentTimeMillis()); - } - - @AfterMethod - public void endTest(Method testMethod, ITestContext testContext) { - Long startTime = (Long) testContext.getAttribute("StartTime"); - long endTime = System.currentTimeMillis(); - System.out.println( - "END " + testMethod.getName() + " at " + new Date(endTime) + ", took: " + (endTime - startTime) + "ms."); - } - - protected String getShortClassName() { - return this.getClass().getSimpleName(); - } - - protected String getCurrentLeader(ZkClient zkClient, String clusterName) { - ZKHelixDataAccessor accessor = - new ZKHelixDataAccessor(clusterName, new ZkBaseDataAccessor<ZNRecord>(zkClient)); - Builder keyBuilder = accessor.keyBuilder(); - - LiveInstance leader = accessor.getProperty(keyBuilder.controllerLeader()); - if (leader == null) { - return null; - } - return leader.getInstanceName(); - } - - protected void enableHealthCheck(String clusterName) { - ConfigScope scope = new ConfigScopeBuilder().forCluster(clusterName).build(); - new ConfigAccessor(_gZkClient).set(scope, "healthChange" + ".enabled", "" + true); - } - - protected void enablePersistBestPossibleAssignment(ZkClient zkClient, String clusterName, - Boolean enabled) { - ConfigAccessor configAccessor = new ConfigAccessor(zkClient); - ClusterConfig clusterConfig = configAccessor.getClusterConfig(clusterName); - clusterConfig.setPersistBestPossibleAssignment(enabled); - configAccessor.setClusterConfig(clusterName, clusterConfig); - } - - protected void enablePersistIntermediateAssignment(ZkClient zkClient, String clusterName, - Boolean enabled) { - ConfigAccessor configAccessor = new ConfigAccessor(zkClient); - ClusterConfig clusterConfig = configAccessor.getClusterConfig(clusterName); - clusterConfig.setPersistIntermediateAssignment(enabled); - configAccessor.setClusterConfig(clusterName, clusterConfig); - } - - protected void enableTopologyAwareRebalance(ZkClient zkClient, String clusterName, - Boolean enabled) { - ConfigAccessor configAccessor = new ConfigAccessor(zkClient); - ClusterConfig clusterConfig = configAccessor.getClusterConfig(clusterName); - clusterConfig.setTopologyAwareEnabled(enabled); - configAccessor.setClusterConfig(clusterName, clusterConfig); - } - - protected void enableDelayRebalanceInCluster(ZkClient zkClient, String clusterName, - boolean enabled) { - ConfigAccessor configAccessor = new ConfigAccessor(zkClient); - ClusterConfig clusterConfig = configAccessor.getClusterConfig(clusterName); - clusterConfig.setDelayRebalaceEnabled(enabled); - configAccessor.setClusterConfig(clusterName, clusterConfig); - } - - protected void enableDelayRebalanceInInstance(ZkClient zkClient, String clusterName, - String instanceName, boolean enabled) { - ConfigAccessor configAccessor = new ConfigAccessor(zkClient); - InstanceConfig instanceConfig = configAccessor.getInstanceConfig(clusterName, instanceName); - instanceConfig.setDelayRebalanceEnabled(enabled); - configAccessor.setInstanceConfig(clusterName, instanceName, instanceConfig); - } - - protected void setDelayTimeInCluster(ZkClient zkClient, String clusterName, long delay) { - ConfigAccessor configAccessor = new ConfigAccessor(zkClient); - ClusterConfig clusterConfig = configAccessor.getClusterConfig(clusterName); - clusterConfig.setRebalanceDelayTime(delay); - configAccessor.setClusterConfig(clusterName, clusterConfig); - } - - protected IdealState createResourceWithDelayedRebalance(String clusterName, String db, - String stateModel, int numPartition, int replica, int minActiveReplica, long delay) { - return createResourceWithDelayedRebalance(clusterName, db, stateModel, numPartition, replica, - minActiveReplica, delay, AutoRebalanceStrategy.class.getName()); - } - - protected IdealState createResourceWithDelayedRebalance(String clusterName, String db, - String stateModel, int numPartition, int replica, int minActiveReplica, long delay, - String rebalanceStrategy) { - IdealState idealState = - _gSetupTool.getClusterManagementTool().getResourceIdealState(clusterName, db); - if (idealState == null) { - _gSetupTool.addResourceToCluster(clusterName, db, numPartition, stateModel, - IdealState.RebalanceMode.FULL_AUTO + "", rebalanceStrategy); - } - - idealState = - _gSetupTool.getClusterManagementTool().getResourceIdealState(clusterName, db); - idealState.setMinActiveReplicas(minActiveReplica); - if (!idealState.isDelayRebalanceEnabled()) { - idealState.setDelayRebalanceEnabled(true); - } - if (delay > 0) { - idealState.setRebalanceDelay(delay); - } - idealState.setRebalancerClassName(DelayedAutoRebalancer.class.getName()); - _gSetupTool.getClusterManagementTool().setResourceIdealState(clusterName, db, idealState); - _gSetupTool.rebalanceStorageCluster(clusterName, db, replica); - idealState = - _gSetupTool.getClusterManagementTool().getResourceIdealState(clusterName, db); - - return idealState; - } - - protected IdealState createIdealState(String resourceGroupName, String instanceGroupTag, - List<String> instanceNames, int numPartition, int replica, String rebalanceMode, - String stateModelDef) { - IdealState is = _gSetupTool - .createIdealStateForResourceGroup(resourceGroupName, instanceGroupTag, numPartition, - replica, rebalanceMode, stateModelDef); - - // setup initial partition->instance mapping. - int nodeIdx = 0; - int numNode = instanceNames.size(); - assert (numNode >= replica); - for (int i = 0; i < numPartition; i++) { - String partitionName = resourceGroupName + "_" + i; - for (int j = 0; j < replica; j++) { - is.setPartitionState(partitionName, instanceNames.get((nodeIdx + j) % numNode), - OnlineOfflineSMD.States.ONLINE.toString()); - } - nodeIdx++; - } - - return is; - } - - protected void createDBInSemiAuto(ClusterSetup clusterSetup, String clusterName, String dbName, - List<String> preferenceList, String stateModelDef, int numPartition, int replica) { - clusterSetup.addResourceToCluster(clusterName, dbName, numPartition, stateModelDef, - IdealState.RebalanceMode.SEMI_AUTO.toString()); - clusterSetup.rebalanceStorageCluster(clusterName, dbName, replica); - - IdealState is = - _gSetupTool.getClusterManagementTool().getResourceIdealState(clusterName, dbName); - for (String p : is.getPartitionSet()) { - is.setPreferenceList(p, preferenceList); - } - clusterSetup.getClusterManagementTool().setResourceIdealState(clusterName, dbName, is); - } - - /** - * Validate there should be always minimal active replica and top state replica for each partition. - * Also make sure there is always some partitions with only active replica count. - */ - protected void validateMinActiveAndTopStateReplica(IdealState is, ExternalView ev, - int minActiveReplica, int numNodes) { - StateModelDefinition stateModelDef = - BuiltInStateModelDefinitions.valueOf(is.getStateModelDefRef()).getStateModelDefinition(); - String topState = stateModelDef.getStatesPriorityList().get(0); - int replica = Integer.valueOf(is.getReplicas()); - - Map<String, Integer> stateCount = - stateModelDef.getStateCountMap(numNodes, replica); - Set<String> activeStates = stateCount.keySet(); - - for (String partition : is.getPartitionSet()) { - Map<String, String> assignmentMap = ev.getRecord().getMapField(partition); - Assert.assertNotNull(assignmentMap, - is.getResourceName() + "'s best possible assignment is null for partition " + partition); - Assert.assertTrue(!assignmentMap.isEmpty(), - is.getResourceName() + "'s partition " + partition + " has no best possible map in IS."); - - boolean hasTopState = false; - int activeReplica = 0; - for (String state : assignmentMap.values()) { - if (topState.equalsIgnoreCase(state)) { - hasTopState = true; - } - if (activeStates.contains(state)) { - activeReplica++; - } - } - - if (activeReplica < minActiveReplica) { - int a = 0; - } - - Assert.assertTrue(hasTopState, String.format("%s missing %s replica", partition, topState)); - Assert.assertTrue(activeReplica >= minActiveReplica, String - .format("%s has less active replica %d then required %d", partition, activeReplica, - minActiveReplica)); - } - } - - protected void runStage(HelixManager manager, ClusterEvent event, Stage stage) throws Exception { - event.addAttribute(AttributeName.helixmanager.name(), manager); - StageContext context = new StageContext(); - stage.init(context); - stage.preProcess(); - - // AbstractAsyncBaseStage will run asynchronously, and it's main logics are implemented in - // execute() function call - if (stage instanceof AbstractAsyncBaseStage) { - ((AbstractAsyncBaseStage) stage).execute(event); - } else { - stage.process(event); - } - stage.postProcess(); - } -}
http://git-wip-us.apache.org/repos/asf/helix/blob/c0d5792b/helix-core/src/test/java/org/apache/helix/integration/common/ZkStandAloneCMTestBase.java ---------------------------------------------------------------------- diff --git a/helix-core/src/test/java/org/apache/helix/integration/common/ZkStandAloneCMTestBase.java b/helix-core/src/test/java/org/apache/helix/integration/common/ZkStandAloneCMTestBase.java index 4027984..3cbffe1 100644 --- a/helix-core/src/test/java/org/apache/helix/integration/common/ZkStandAloneCMTestBase.java +++ b/helix-core/src/test/java/org/apache/helix/integration/common/ZkStandAloneCMTestBase.java @@ -24,12 +24,14 @@ import java.util.Date; import org.apache.helix.HelixManager; import org.apache.helix.HelixManagerFactory; import org.apache.helix.InstanceType; +import org.apache.helix.common.ZkTestBase; import org.apache.helix.integration.manager.ClusterControllerManager; import org.apache.helix.integration.manager.MockParticipantManager; -import org.apache.helix.tools.ClusterSetup; import org.apache.helix.tools.ClusterStateVerifier; import org.apache.helix.tools.ClusterStateVerifier.BestPossAndExtViewZkVerifier; import org.apache.helix.tools.ClusterStateVerifier.MasterNbInExtViewVerifier; +import org.apache.helix.tools.ClusterVerifiers.BestPossibleExternalViewVerifier; +import org.apache.helix.tools.ClusterVerifiers.HelixClusterVerifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.testng.Assert; @@ -41,7 +43,7 @@ import org.testng.annotations.BeforeClass; * start 5 dummy participants verify the current states at end */ -public class ZkStandAloneCMTestBase extends ZkIntegrationTestBase { +public class ZkStandAloneCMTestBase extends ZkTestBase { private static Logger LOG = LoggerFactory.getLogger(ZkStandAloneCMTestBase.class); protected static final int NODE_NR = 5; @@ -50,11 +52,12 @@ public class ZkStandAloneCMTestBase extends ZkIntegrationTestBase { protected static final String TEST_DB = "TestDB"; protected static final int _PARTITIONS = 20; - protected ClusterSetup _setupTool; protected HelixManager _manager; protected final String CLASS_NAME = getShortClassName(); protected final String CLUSTER_NAME = CLUSTER_PREFIX + "_" + CLASS_NAME; + HelixClusterVerifier _clusterVerifier; + protected MockParticipantManager[] _participants = new MockParticipantManager[NODE_NR]; protected ClusterControllerManager _controller; @@ -65,20 +68,14 @@ public class ZkStandAloneCMTestBase extends ZkIntegrationTestBase { // Logger.getRootLogger().setLevel(Level.INFO); System.out.println("START " + CLASS_NAME + " at " + new Date(System.currentTimeMillis())); - String namespace = "/" + CLUSTER_NAME; - if (_gZkClient.exists(namespace)) { - _gZkClient.deleteRecursively(namespace); - } - _setupTool = new ClusterSetup(ZK_ADDR); - // setup storage cluster - _setupTool.addCluster(CLUSTER_NAME, true); - _setupTool.addResourceToCluster(CLUSTER_NAME, TEST_DB, _PARTITIONS, STATE_MODEL); + _gSetupTool.addCluster(CLUSTER_NAME, true); + _gSetupTool.addResourceToCluster(CLUSTER_NAME, TEST_DB, _PARTITIONS, STATE_MODEL); for (int i = 0; i < NODE_NR; i++) { String storageNodeName = PARTICIPANT_PREFIX + "_" + (START_PORT + i); - _setupTool.addInstanceToCluster(CLUSTER_NAME, storageNodeName); + _gSetupTool.addInstanceToCluster(CLUSTER_NAME, storageNodeName); } - _setupTool.rebalanceStorageCluster(CLUSTER_NAME, TEST_DB, _replica); + _gSetupTool.rebalanceStorageCluster(CLUSTER_NAME, TEST_DB, _replica); // start dummy participants for (int i = 0; i < NODE_NR; i++) { @@ -96,6 +93,8 @@ public class ZkStandAloneCMTestBase extends ZkIntegrationTestBase { ClusterStateVerifier .verifyByZkCallback(new MasterNbInExtViewVerifier(ZK_ADDR, CLUSTER_NAME)); + _clusterVerifier = new BestPossibleExternalViewVerifier.Builder(CLUSTER_NAME).setZkAddr(ZK_ADDR).build(); + Assert.assertTrue(result); result = @@ -114,7 +113,6 @@ public class ZkStandAloneCMTestBase extends ZkIntegrationTestBase { /** * shutdown order: 1) disconnect the controller 2) disconnect participants */ - if (_controller != null && _controller.isConnected()) { _controller.syncStop(); } @@ -127,6 +125,16 @@ public class ZkStandAloneCMTestBase extends ZkIntegrationTestBase { _manager.disconnect(); } + String namespace = "/" + CLUSTER_NAME; + if (_gZkClient.exists(namespace)) { + try { + _gSetupTool.deleteCluster(CLUSTER_NAME); + } catch (Exception ex) { + System.err.println( + "Failed to delete cluster " + CLUSTER_NAME + ", error: " + ex.getLocalizedMessage()); + } + } + System.out.println("END " + CLASS_NAME + " at " + new Date(System.currentTimeMillis())); } } http://git-wip-us.apache.org/repos/asf/helix/blob/c0d5792b/helix-core/src/test/java/org/apache/helix/integration/controller/TestClusterDataCacheSelectiveUpdate.java ---------------------------------------------------------------------- diff --git a/helix-core/src/test/java/org/apache/helix/integration/controller/TestClusterDataCacheSelectiveUpdate.java b/helix-core/src/test/java/org/apache/helix/integration/controller/TestClusterDataCacheSelectiveUpdate.java index b032513..6202f84 100644 --- a/helix-core/src/test/java/org/apache/helix/integration/controller/TestClusterDataCacheSelectiveUpdate.java +++ b/helix-core/src/test/java/org/apache/helix/integration/controller/TestClusterDataCacheSelectiveUpdate.java @@ -100,8 +100,8 @@ public class TestClusterDataCacheSelectiveUpdate extends ZkStandAloneCMTestBase Assert.assertEquals(accessor.getReadCount(PropertyType.CONFIGS), 1); // add a new resource - _setupTool.addResourceToCluster(CLUSTER_NAME, "TestDB_1", _PARTITIONS, STATE_MODEL); - _setupTool.rebalanceStorageCluster(CLUSTER_NAME, "TestDB_1", _replica); + _gSetupTool.addResourceToCluster(CLUSTER_NAME, "TestDB_1", _PARTITIONS, STATE_MODEL); + _gSetupTool.rebalanceStorageCluster(CLUSTER_NAME, "TestDB_1", _replica); Thread.sleep(100); HelixClusterVerifier _clusterVerifier = @@ -119,10 +119,10 @@ public class TestClusterDataCacheSelectiveUpdate extends ZkStandAloneCMTestBase // Add more resources accessor.clearReadCounters(); - _setupTool.addResourceToCluster(CLUSTER_NAME, "TestDB_2", _PARTITIONS, STATE_MODEL); - _setupTool.rebalanceStorageCluster(CLUSTER_NAME, "TestDB_2", _replica); - _setupTool.addResourceToCluster(CLUSTER_NAME, "TestDB_3", _PARTITIONS, STATE_MODEL); - _setupTool.rebalanceStorageCluster(CLUSTER_NAME, "TestDB_3", _replica); + _gSetupTool.addResourceToCluster(CLUSTER_NAME, "TestDB_2", _PARTITIONS, STATE_MODEL); + _gSetupTool.rebalanceStorageCluster(CLUSTER_NAME, "TestDB_2", _replica); + _gSetupTool.addResourceToCluster(CLUSTER_NAME, "TestDB_3", _PARTITIONS, STATE_MODEL); + _gSetupTool.rebalanceStorageCluster(CLUSTER_NAME, "TestDB_3", _replica); // Totally four resources. Two of them are newly added. cache.notifyDataChange(HelixConstants.ChangeType.IDEAL_STATE); http://git-wip-us.apache.org/repos/asf/helix/blob/c0d5792b/helix-core/src/test/java/org/apache/helix/integration/controller/TestClusterMaintenanceMode.java ---------------------------------------------------------------------- diff --git a/helix-core/src/test/java/org/apache/helix/integration/controller/TestClusterMaintenanceMode.java b/helix-core/src/test/java/org/apache/helix/integration/controller/TestClusterMaintenanceMode.java index 3949183..e643c9a 100644 --- a/helix-core/src/test/java/org/apache/helix/integration/controller/TestClusterMaintenanceMode.java +++ b/helix-core/src/test/java/org/apache/helix/integration/controller/TestClusterMaintenanceMode.java @@ -7,10 +7,13 @@ import org.apache.helix.integration.task.WorkflowGenerator; import org.apache.helix.model.ExternalView; import org.apache.helix.model.IdealState; import org.testng.Assert; +import org.testng.annotations.AfterClass; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; public class TestClusterMaintenanceMode extends TaskTestBase { + MockParticipantManager _newInstance; + @BeforeClass public void beforeClass() throws Exception { _numDbs = 1; @@ -20,6 +23,14 @@ public class TestClusterMaintenanceMode extends TaskTestBase { super.beforeClass(); } + @AfterClass + public void afterClass() throws Exception { + if (_newInstance != null && _newInstance.isConnected()) { + _newInstance.syncStop(); + } + super.afterClass(); + } + @Test public void testMaintenanceModeAddNewInstance() throws InterruptedException { _gSetupTool.getClusterManagementTool().enableMaintenanceMode(CLUSTER_NAME, true, "Test"); @@ -27,10 +38,10 @@ public class TestClusterMaintenanceMode extends TaskTestBase { ExternalView prevExternalView = _gSetupTool.getClusterManagementTool() .getResourceExternalView(CLUSTER_NAME, WorkflowGenerator.DEFAULT_TGT_DB); String instanceName = PARTICIPANT_PREFIX + "_" + (_startPort + 10); - _setupTool.addInstanceToCluster(CLUSTER_NAME, instanceName); - MockParticipantManager newInstance = + _gSetupTool.addInstanceToCluster(CLUSTER_NAME, instanceName); + _newInstance = new MockParticipantManager(ZK_ADDR, CLUSTER_NAME, instanceName); - newInstance.syncStart(); + _newInstance.syncStart(); _gSetupTool.getClusterManagementTool() .rebalance(CLUSTER_NAME, WorkflowGenerator.DEFAULT_TGT_DB, 3); Thread.sleep(3000); http://git-wip-us.apache.org/repos/asf/helix/blob/c0d5792b/helix-core/src/test/java/org/apache/helix/integration/controller/TestControllerLeadershipChange.java ---------------------------------------------------------------------- diff --git a/helix-core/src/test/java/org/apache/helix/integration/controller/TestControllerLeadershipChange.java b/helix-core/src/test/java/org/apache/helix/integration/controller/TestControllerLeadershipChange.java index c44c924..6c0236f 100644 --- a/helix-core/src/test/java/org/apache/helix/integration/controller/TestControllerLeadershipChange.java +++ b/helix-core/src/test/java/org/apache/helix/integration/controller/TestControllerLeadershipChange.java @@ -28,7 +28,7 @@ import org.apache.helix.HelixManager; import org.apache.helix.HelixManagerFactory; import org.apache.helix.InstanceType; import org.apache.helix.PropertyPathBuilder; -import org.apache.helix.integration.common.ZkIntegrationTestBase; +import org.apache.helix.common.ZkTestBase; import org.apache.helix.integration.manager.MockParticipantManager; import org.apache.helix.model.IdealState; import org.apache.helix.model.LiveInstance; @@ -36,7 +36,7 @@ import org.apache.helix.monitoring.mbeans.MonitorDomainNames; import org.testng.Assert; import org.testng.annotations.Test; -public class TestControllerLeadershipChange extends ZkIntegrationTestBase{ +public class TestControllerLeadershipChange extends ZkTestBase { @Test public void testMissingTopStateDurationMonitoring() throws Exception { http://git-wip-us.apache.org/repos/asf/helix/blob/c0d5792b/helix-core/src/test/java/org/apache/helix/integration/controller/TestControllerLiveLock.java ---------------------------------------------------------------------- diff --git a/helix-core/src/test/java/org/apache/helix/integration/controller/TestControllerLiveLock.java b/helix-core/src/test/java/org/apache/helix/integration/controller/TestControllerLiveLock.java index b2b291b..0dff764 100644 --- a/helix-core/src/test/java/org/apache/helix/integration/controller/TestControllerLiveLock.java +++ b/helix-core/src/test/java/org/apache/helix/integration/controller/TestControllerLiveLock.java @@ -124,6 +124,7 @@ public class TestControllerLiveLock extends ZkUnitTestBase { for (int i = 0; i < n; i++) { participants[i].syncStop(); } + TestHelper.dropCluster(clusterName, _gZkClient); System.out.println("END " + clusterName + " at " + new Date(System.currentTimeMillis())); } http://git-wip-us.apache.org/repos/asf/helix/blob/c0d5792b/helix-core/src/test/java/org/apache/helix/integration/controller/TestSkipBestPossibleCalculation.java ---------------------------------------------------------------------- diff --git a/helix-core/src/test/java/org/apache/helix/integration/controller/TestSkipBestPossibleCalculation.java b/helix-core/src/test/java/org/apache/helix/integration/controller/TestSkipBestPossibleCalculation.java index 79ae4c4..df5bf10 100644 --- a/helix-core/src/test/java/org/apache/helix/integration/controller/TestSkipBestPossibleCalculation.java +++ b/helix-core/src/test/java/org/apache/helix/integration/controller/TestSkipBestPossibleCalculation.java @@ -40,9 +40,9 @@ public class TestSkipBestPossibleCalculation extends ZkStandAloneCMTestBase { int numResource = 5; for (int i = 0; i < numResource; i++) { String dbName = "TestDB_" + i; - _setupTool.addResourceToCluster(CLUSTER_NAME, dbName, _PARTITIONS, STATE_MODEL, + _gSetupTool.addResourceToCluster(CLUSTER_NAME, dbName, _PARTITIONS, STATE_MODEL, IdealState.RebalanceMode.CUSTOMIZED.name()); - _setupTool.rebalanceResource(CLUSTER_NAME, dbName, 3); + _gSetupTool.rebalanceResource(CLUSTER_NAME, dbName, 3); } ClusterDataCache cache = http://git-wip-us.apache.org/repos/asf/helix/blob/c0d5792b/helix-core/src/test/java/org/apache/helix/integration/manager/TestDistributedControllerManager.java ---------------------------------------------------------------------- diff --git a/helix-core/src/test/java/org/apache/helix/integration/manager/TestDistributedControllerManager.java b/helix-core/src/test/java/org/apache/helix/integration/manager/TestDistributedControllerManager.java index 207044a..ef59f31 100644 --- a/helix-core/src/test/java/org/apache/helix/integration/manager/TestDistributedControllerManager.java +++ b/helix-core/src/test/java/org/apache/helix/integration/manager/TestDistributedControllerManager.java @@ -28,7 +28,7 @@ import org.apache.helix.PropertyKey; import org.apache.helix.TestHelper; import org.apache.helix.ZNRecord; import org.apache.helix.ZkTestHelper; -import org.apache.helix.integration.common.ZkIntegrationTestBase; +import org.apache.helix.common.ZkTestBase; import org.apache.helix.manager.zk.CallbackHandler; import org.apache.helix.manager.zk.ZKHelixDataAccessor; import org.apache.helix.manager.zk.ZKHelixManager; @@ -42,7 +42,7 @@ import org.slf4j.LoggerFactory; import org.testng.Assert; import org.testng.annotations.Test; -public class TestDistributedControllerManager extends ZkIntegrationTestBase { +public class TestDistributedControllerManager extends ZkTestBase { private static Logger LOG = LoggerFactory.getLogger(TestDistributedControllerManager.class); @Test http://git-wip-us.apache.org/repos/asf/helix/blob/c0d5792b/helix-core/src/test/java/org/apache/helix/integration/manager/TestHelixDataAccessor.java ---------------------------------------------------------------------- diff --git a/helix-core/src/test/java/org/apache/helix/integration/manager/TestHelixDataAccessor.java b/helix-core/src/test/java/org/apache/helix/integration/manager/TestHelixDataAccessor.java index 39fdb2a..7e6d931 100644 --- a/helix-core/src/test/java/org/apache/helix/integration/manager/TestHelixDataAccessor.java +++ b/helix-core/src/test/java/org/apache/helix/integration/manager/TestHelixDataAccessor.java @@ -6,15 +6,12 @@ import java.util.Map; import java.util.TreeMap; import org.apache.helix.BaseDataAccessor; import org.apache.helix.HelixDataAccessor; -import org.apache.helix.HelixException; import org.apache.helix.HelixProperty; import org.apache.helix.PropertyKey; import org.apache.helix.ZNRecord; import org.apache.helix.api.exceptions.HelixMetaDataAccessException; -import org.apache.helix.controller.stages.AttributeName; import org.apache.helix.controller.stages.ClusterDataCache; -import org.apache.helix.controller.stages.ReadClusterDataStage; -import org.apache.helix.integration.common.ZkIntegrationTestBase; +import org.apache.helix.common.ZkTestBase; import org.apache.helix.manager.zk.ZKHelixDataAccessor; import org.apache.helix.manager.zk.ZkBaseDataAccessor; import org.apache.helix.mock.MockZkClient; @@ -22,7 +19,7 @@ import org.testng.Assert; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; -public class TestHelixDataAccessor extends ZkIntegrationTestBase { +public class TestHelixDataAccessor extends ZkTestBase { private MockZkClient _zkClient; BaseDataAccessor<ZNRecord> baseDataAccessor; HelixDataAccessor accessor; http://git-wip-us.apache.org/repos/asf/helix/blob/c0d5792b/helix-core/src/test/java/org/apache/helix/integration/manager/TestParticipantManager.java ---------------------------------------------------------------------- diff --git a/helix-core/src/test/java/org/apache/helix/integration/manager/TestParticipantManager.java b/helix-core/src/test/java/org/apache/helix/integration/manager/TestParticipantManager.java index d2ab0bb..d21f46e 100644 --- a/helix-core/src/test/java/org/apache/helix/integration/manager/TestParticipantManager.java +++ b/helix-core/src/test/java/org/apache/helix/integration/manager/TestParticipantManager.java @@ -32,7 +32,7 @@ import org.apache.helix.PropertyPathBuilder; import org.apache.helix.TestHelper; import org.apache.helix.ZNRecord; import org.apache.helix.ZkTestHelper; -import org.apache.helix.integration.common.ZkIntegrationTestBase; +import org.apache.helix.common.ZkTestBase; import org.apache.helix.manager.zk.ZKHelixDataAccessor; import org.apache.helix.manager.zk.ZKHelixManager; import org.apache.helix.manager.zk.ZNRecordSerializer; @@ -47,7 +47,7 @@ import org.slf4j.LoggerFactory; import org.testng.Assert; import org.testng.annotations.Test; -public class TestParticipantManager extends ZkIntegrationTestBase { +public class TestParticipantManager extends ZkTestBase { private static Logger LOG = LoggerFactory.getLogger(TestParticipantManager.class); http://git-wip-us.apache.org/repos/asf/helix/blob/c0d5792b/helix-core/src/test/java/org/apache/helix/integration/messaging/TestBatchMessage.java ---------------------------------------------------------------------- diff --git a/helix-core/src/test/java/org/apache/helix/integration/messaging/TestBatchMessage.java b/helix-core/src/test/java/org/apache/helix/integration/messaging/TestBatchMessage.java index bd44ca3..f2c4622 100644 --- a/helix-core/src/test/java/org/apache/helix/integration/messaging/TestBatchMessage.java +++ b/helix-core/src/test/java/org/apache/helix/integration/messaging/TestBatchMessage.java @@ -30,7 +30,7 @@ import org.apache.helix.TestHelper; import org.apache.helix.ZNRecord; import org.apache.helix.HelixProperty.HelixPropertyAttribute; import org.apache.helix.PropertyKey.Builder; -import org.apache.helix.integration.common.ZkIntegrationTestBase; +import org.apache.helix.common.ZkTestBase; import org.apache.helix.integration.manager.ClusterControllerManager; import org.apache.helix.integration.manager.MockParticipantManager; import org.apache.helix.manager.zk.ZKHelixDataAccessor; @@ -44,7 +44,7 @@ import org.apache.helix.tools.ClusterStateVerifier.BestPossAndExtViewZkVerifier; import org.testng.Assert; import org.testng.annotations.Test; -public class TestBatchMessage extends ZkIntegrationTestBase { +public class TestBatchMessage extends ZkTestBase { class TestZkChildListener implements IZkChildListener { int _maxNbOfChilds = 0; @@ -117,6 +117,7 @@ public class TestBatchMessage extends ZkIntegrationTestBase { for (int i = 0; i < n; i++) { participants[i].syncStop(); } + _gSetupTool.deleteCluster(clusterName); System.out.println("END " + clusterName + " at " + new Date(System.currentTimeMillis())); } @@ -199,6 +200,7 @@ public class TestBatchMessage extends ZkIntegrationTestBase { for (int i = 0; i < n; i++) { participants[i].syncStop(); } + _gSetupTool.deleteCluster(clusterName); System.out.println("END " + clusterName + " at " + new Date(System.currentTimeMillis())); } @@ -270,8 +272,14 @@ public class TestBatchMessage extends ZkIntegrationTestBase { // verify "TestDB0_0", masterOfPartition0 is in ERROR state TestHelper.verifyState(clusterName, ZK_ADDR, errorStateMap, "ERROR"); - System.out.println("END " + clusterName + " at " + new Date(System.currentTimeMillis())); + // clean up + controller.syncStop(); + for (int i = 0; i < 5; i++) { + participants[i].syncStop(); + } + _gSetupTool.deleteCluster(clusterName); + System.out.println("END " + clusterName + " at " + new Date(System.currentTimeMillis())); } @Test @@ -351,6 +359,7 @@ public class TestBatchMessage extends ZkIntegrationTestBase { for (int i = 0; i < n; i++) { participants[i].syncStop(); } + _gSetupTool.deleteCluster(clusterName); System.out.println("END " + clusterName + " at " + new Date(System.currentTimeMillis())); } http://git-wip-us.apache.org/repos/asf/helix/blob/c0d5792b/helix-core/src/test/java/org/apache/helix/integration/messaging/TestBatchMessageWrapper.java ---------------------------------------------------------------------- diff --git a/helix-core/src/test/java/org/apache/helix/integration/messaging/TestBatchMessageWrapper.java b/helix-core/src/test/java/org/apache/helix/integration/messaging/TestBatchMessageWrapper.java index 1a9b65a..f3f469e 100644 --- a/helix-core/src/test/java/org/apache/helix/integration/messaging/TestBatchMessageWrapper.java +++ b/helix-core/src/test/java/org/apache/helix/integration/messaging/TestBatchMessageWrapper.java @@ -135,6 +135,7 @@ public class TestBatchMessageWrapper extends ZkUnitTestBase { for (int i = 0; i < n; i++) { participants[i].syncStop(); } + TestHelper.dropCluster(clusterName, _gZkClient); System.out.println("END " + clusterName + " at " + new Date(System.currentTimeMillis())); } http://git-wip-us.apache.org/repos/asf/helix/blob/c0d5792b/helix-core/src/test/java/org/apache/helix/integration/messaging/TestMessageThrottle.java ---------------------------------------------------------------------- diff --git a/helix-core/src/test/java/org/apache/helix/integration/messaging/TestMessageThrottle.java b/helix-core/src/test/java/org/apache/helix/integration/messaging/TestMessageThrottle.java index 5f6c6b4..01fb0d8 100644 --- a/helix-core/src/test/java/org/apache/helix/integration/messaging/TestMessageThrottle.java +++ b/helix-core/src/test/java/org/apache/helix/integration/messaging/TestMessageThrottle.java @@ -28,7 +28,7 @@ import org.apache.helix.HelixAdmin; import org.apache.helix.PropertyPathBuilder; import org.apache.helix.TestHelper; import org.apache.helix.ZNRecord; -import org.apache.helix.integration.common.ZkIntegrationTestBase; +import org.apache.helix.common.ZkTestBase; import org.apache.helix.integration.manager.ClusterControllerManager; import org.apache.helix.integration.manager.MockParticipantManager; import org.apache.helix.manager.zk.ZKHelixAdmin; @@ -43,7 +43,7 @@ import org.apache.helix.tools.ClusterStateVerifier.MasterNbInExtViewVerifier; import org.testng.Assert; import org.testng.annotations.Test; -public class TestMessageThrottle extends ZkIntegrationTestBase { +public class TestMessageThrottle extends ZkTestBase { @Test() public void testMessageThrottle() throws Exception { // Logger.getRootLogger().setLevel(Level.INFO); http://git-wip-us.apache.org/repos/asf/helix/blob/c0d5792b/helix-core/src/test/java/org/apache/helix/integration/messaging/TestMessageThrottle2.java ---------------------------------------------------------------------- diff --git a/helix-core/src/test/java/org/apache/helix/integration/messaging/TestMessageThrottle2.java b/helix-core/src/test/java/org/apache/helix/integration/messaging/TestMessageThrottle2.java index d9edaf1..83ac0bc 100644 --- a/helix-core/src/test/java/org/apache/helix/integration/messaging/TestMessageThrottle2.java +++ b/helix-core/src/test/java/org/apache/helix/integration/messaging/TestMessageThrottle2.java @@ -41,7 +41,7 @@ import org.apache.helix.PropertyKey.Builder; import org.apache.helix.TestHelper; import org.apache.helix.ZNRecord; import org.apache.helix.controller.HelixControllerMain; -import org.apache.helix.integration.common.ZkIntegrationTestBase; +import org.apache.helix.common.ZkTestBase; import org.apache.helix.manager.zk.ZKHelixAdmin; import org.apache.helix.manager.zk.ZKHelixDataAccessor; import org.apache.helix.manager.zk.ZKHelixManager; @@ -67,7 +67,7 @@ import org.testng.Assert; import org.testng.annotations.Test; // test case from Ming Fang -public class TestMessageThrottle2 extends ZkIntegrationTestBase { +public class TestMessageThrottle2 extends ZkTestBase { final static String clusterName = "TestMessageThrottle2"; final static String resourceName = "MyResource"; http://git-wip-us.apache.org/repos/asf/helix/blob/c0d5792b/helix-core/src/test/java/org/apache/helix/integration/messaging/TestP2PMessageSemiAuto.java ---------------------------------------------------------------------- diff --git a/helix-core/src/test/java/org/apache/helix/integration/messaging/TestP2PMessageSemiAuto.java b/helix-core/src/test/java/org/apache/helix/integration/messaging/TestP2PMessageSemiAuto.java index 43fedad..d1fa2c0 100644 --- a/helix-core/src/test/java/org/apache/helix/integration/messaging/TestP2PMessageSemiAuto.java +++ b/helix-core/src/test/java/org/apache/helix/integration/messaging/TestP2PMessageSemiAuto.java @@ -28,7 +28,7 @@ import org.apache.helix.HelixDataAccessor; import org.apache.helix.api.config.HelixConfigProperty; import org.apache.helix.controller.stages.ClusterDataCache; import org.apache.helix.integration.DelayedTransitionBase; -import org.apache.helix.integration.common.ZkIntegrationTestBase; +import org.apache.helix.common.ZkTestBase; import org.apache.helix.integration.manager.ClusterControllerManager; import org.apache.helix.integration.manager.MockParticipantManager; import org.apache.helix.manager.zk.ZKHelixDataAccessor; @@ -41,10 +41,11 @@ import org.apache.helix.model.ResourceConfig; import org.apache.helix.tools.ClusterVerifiers.BestPossibleExternalViewVerifier; import org.apache.helix.tools.ClusterVerifiers.HelixClusterVerifier; import org.testng.Assert; +import org.testng.annotations.AfterClass; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; -public class TestP2PMessageSemiAuto extends ZkIntegrationTestBase { +public class TestP2PMessageSemiAuto extends ZkTestBase { final String CLASS_NAME = getShortClassName(); final String CLUSTER_NAME = CLUSTER_PREFIX + "_" + CLASS_NAME; @@ -57,7 +58,7 @@ public class TestP2PMessageSemiAuto extends ZkIntegrationTestBase { static final int PARTITION_NUMBER = 20; static final int REPLICA_NUMBER = 3; - List<MockParticipantManager> _participants = new ArrayList<MockParticipantManager>(); + List<MockParticipantManager> _participants = new ArrayList<>(); List<String> _instances = new ArrayList<>(); ClusterControllerManager _controller; @@ -106,6 +107,18 @@ public class TestP2PMessageSemiAuto extends ZkIntegrationTestBase { _accessor = new ZKHelixDataAccessor(CLUSTER_NAME, _baseAccessor); } + @AfterClass + public void afterClass() throws Exception { + _controller.syncStop(); + for (MockParticipantManager p : _participants) { + if (p.isConnected()) { + p.syncStop(); + } + } + _gSetupTool.deleteCluster(CLUSTER_NAME); + System.out.println("END " + CLASS_NAME + " at " + new Date(System.currentTimeMillis())); + } + @Test public void testP2PStateTransitionDisabled() { // disable the master instance http://git-wip-us.apache.org/repos/asf/helix/blob/c0d5792b/helix-core/src/test/java/org/apache/helix/integration/paticipant/TestInstanceAutoJoin.java ---------------------------------------------------------------------- diff --git a/helix-core/src/test/java/org/apache/helix/integration/paticipant/TestInstanceAutoJoin.java b/helix-core/src/test/java/org/apache/helix/integration/paticipant/TestInstanceAutoJoin.java index 007335d..f0ffc63 100644 --- a/helix-core/src/test/java/org/apache/helix/integration/paticipant/TestInstanceAutoJoin.java +++ b/helix-core/src/test/java/org/apache/helix/integration/paticipant/TestInstanceAutoJoin.java @@ -38,10 +38,10 @@ public class TestInstanceAutoJoin extends ZkStandAloneCMTestBase { HelixManager manager = _participants[0]; HelixDataAccessor accessor = manager.getHelixDataAccessor(); - _setupTool.addResourceToCluster(CLUSTER_NAME, db2, 60, "OnlineOffline", RebalanceMode.FULL_AUTO + _gSetupTool.addResourceToCluster(CLUSTER_NAME, db2, 60, "OnlineOffline", RebalanceMode.FULL_AUTO + ""); - _setupTool.rebalanceStorageCluster(CLUSTER_NAME, db2, 1); + _gSetupTool.rebalanceStorageCluster(CLUSTER_NAME, db2, 1); String instance2 = "localhost_279699"; // StartCMResult result = TestHelper.startDummyProcess(ZK_ADDR, CLUSTER_NAME, instance2); MockParticipantManager newParticipant = http://git-wip-us.apache.org/repos/asf/helix/blob/c0d5792b/helix-core/src/test/java/org/apache/helix/integration/paticipant/TestNonOfflineInitState.java ---------------------------------------------------------------------- diff --git a/helix-core/src/test/java/org/apache/helix/integration/paticipant/TestNonOfflineInitState.java b/helix-core/src/test/java/org/apache/helix/integration/paticipant/TestNonOfflineInitState.java index bd9e168..a937c41 100644 --- a/helix-core/src/test/java/org/apache/helix/integration/paticipant/TestNonOfflineInitState.java +++ b/helix-core/src/test/java/org/apache/helix/integration/paticipant/TestNonOfflineInitState.java @@ -22,12 +22,11 @@ package org.apache.helix.integration.paticipant; import java.util.Date; import org.apache.helix.TestHelper; -import org.apache.helix.integration.common.ZkIntegrationTestBase; +import org.apache.helix.common.ZkTestBase; import org.apache.helix.integration.manager.ClusterControllerManager; import org.apache.helix.integration.manager.MockParticipantManager; import org.apache.helix.mock.participant.MockBootstrapModelFactory; import org.apache.helix.participant.StateMachineEngine; -import org.apache.helix.tools.ClusterSetup; import org.apache.helix.tools.ClusterStateVerifier; import org.apache.helix.tools.ClusterStateVerifier.BestPossAndExtViewZkVerifier; import org.slf4j.Logger; @@ -35,7 +34,7 @@ import org.slf4j.LoggerFactory; import org.testng.Assert; import org.testng.annotations.Test; -public class TestNonOfflineInitState extends ZkIntegrationTestBase { +public class TestNonOfflineInitState extends ZkTestBase { private static Logger LOG = LoggerFactory.getLogger(TestNonOfflineInitState.class); @Test @@ -81,6 +80,7 @@ public class TestNonOfflineInitState extends ZkIntegrationTestBase { for (int i = 0; i < 5; i++) { participants[i].syncStop(); } + _gSetupTool.deleteCluster(clusterName); System.out.println("END testNonOfflineInitState at " + new Date(System.currentTimeMillis())); } @@ -88,26 +88,21 @@ public class TestNonOfflineInitState extends ZkIntegrationTestBase { private static void setupCluster(String clusterName, String ZkAddr, int startPort, String participantNamePrefix, String resourceNamePrefix, int resourceNb, int partitionNb, int nodesNb, int replica, String stateModelDef, boolean doRebalance) throws Exception { - if (_gZkClient.exists("/" + clusterName)) { - LOG.warn("Cluster already exists:" + clusterName + ". Deleting it"); - _gZkClient.deleteRecursively("/" + clusterName); - } - ClusterSetup setupTool = new ClusterSetup(ZkAddr); - setupTool.addCluster(clusterName, true); - setupTool.addStateModelDef(clusterName, "Bootstrap", + _gSetupTool.addCluster(clusterName, true); + _gSetupTool.addStateModelDef(clusterName, "Bootstrap", TestHelper.generateStateModelDefForBootstrap()); for (int i = 0; i < nodesNb; i++) { int port = startPort + i; - setupTool.addInstanceToCluster(clusterName, participantNamePrefix + "_" + port); + _gSetupTool.addInstanceToCluster(clusterName, participantNamePrefix + "_" + port); } for (int i = 0; i < resourceNb; i++) { String dbName = resourceNamePrefix + i; - setupTool.addResourceToCluster(clusterName, dbName, partitionNb, stateModelDef); + _gSetupTool.addResourceToCluster(clusterName, dbName, partitionNb, stateModelDef); if (doRebalance) { - setupTool.rebalanceStorageCluster(clusterName, dbName, replica); + _gSetupTool.rebalanceStorageCluster(clusterName, dbName, replica); } } } http://git-wip-us.apache.org/repos/asf/helix/blob/c0d5792b/helix-core/src/test/java/org/apache/helix/integration/paticipant/TestRestartParticipant.java ---------------------------------------------------------------------- diff --git a/helix-core/src/test/java/org/apache/helix/integration/paticipant/TestRestartParticipant.java b/helix-core/src/test/java/org/apache/helix/integration/paticipant/TestRestartParticipant.java index 1fe742e..cf9f240 100644 --- a/helix-core/src/test/java/org/apache/helix/integration/paticipant/TestRestartParticipant.java +++ b/helix-core/src/test/java/org/apache/helix/integration/paticipant/TestRestartParticipant.java @@ -24,7 +24,7 @@ import java.util.concurrent.atomic.AtomicReference; import org.apache.helix.NotificationContext; import org.apache.helix.TestHelper; -import org.apache.helix.integration.common.ZkIntegrationTestBase; +import org.apache.helix.common.ZkTestBase; import org.apache.helix.integration.manager.ClusterControllerManager; import org.apache.helix.integration.manager.MockParticipantManager; import org.apache.helix.mock.participant.MockTransition; @@ -34,7 +34,7 @@ import org.apache.helix.tools.ClusterStateVerifier.BestPossAndExtViewZkVerifier; import org.testng.Assert; import org.testng.annotations.Test; -public class TestRestartParticipant extends ZkIntegrationTestBase { +public class TestRestartParticipant extends ZkTestBase { public class KillOtherTransition extends MockTransition { final AtomicReference<MockParticipantManager> _other; @@ -111,6 +111,7 @@ public class TestRestartParticipant extends ZkIntegrationTestBase { participants[i].syncStop(); } participant.syncStop(); + _gSetupTool.deleteCluster(clusterName); System.out.println("START testRestartParticipant at " + new Date(System.currentTimeMillis())); http://git-wip-us.apache.org/repos/asf/helix/blob/c0d5792b/helix-core/src/test/java/org/apache/helix/integration/paticipant/TestStateTransitionTimeout.java ---------------------------------------------------------------------- diff --git a/helix-core/src/test/java/org/apache/helix/integration/paticipant/TestStateTransitionTimeout.java b/helix-core/src/test/java/org/apache/helix/integration/paticipant/TestStateTransitionTimeout.java index 438050d..83b97a5 100644 --- a/helix-core/src/test/java/org/apache/helix/integration/paticipant/TestStateTransitionTimeout.java +++ b/helix-core/src/test/java/org/apache/helix/integration/paticipant/TestStateTransitionTimeout.java @@ -60,25 +60,19 @@ public class TestStateTransitionTimeout extends ZkStandAloneCMTestBase { public void beforeClass() throws Exception { System.out.println("START " + CLASS_NAME + " at " + new Date(System.currentTimeMillis())); - String namespace = "/" + CLUSTER_NAME; - if (_gZkClient.exists(namespace)) { - _gZkClient.deleteRecursively(namespace); - } - _setupTool = new ClusterSetup(ZK_ADDR); - // setup storage cluster - _setupTool.addCluster(CLUSTER_NAME, true); - _setupTool.addResourceToCluster(CLUSTER_NAME, TEST_DB, _PARTITIONS, STATE_MODEL); + _gSetupTool.addCluster(CLUSTER_NAME, true); + _gSetupTool.addResourceToCluster(CLUSTER_NAME, TEST_DB, _PARTITIONS, STATE_MODEL); for (int i = 0; i < NODE_NR; i++) { String storageNodeName = PARTICIPANT_PREFIX + "_" + (START_PORT + i); - _setupTool.addInstanceToCluster(CLUSTER_NAME, storageNodeName); + _gSetupTool.addInstanceToCluster(CLUSTER_NAME, storageNodeName); } - _setupTool.rebalanceStorageCluster(CLUSTER_NAME, TEST_DB, 3); + _gSetupTool.rebalanceStorageCluster(CLUSTER_NAME, TEST_DB, 3); // Set the timeout values IdealState idealState = - _setupTool.getClusterManagementTool().getResourceIdealState(CLUSTER_NAME, TEST_DB); + _gSetupTool.getClusterManagementTool().getResourceIdealState(CLUSTER_NAME, TEST_DB); String stateTransition = "SLAVE" + "-" + "MASTER" + "_" + Message.Attributes.TIMEOUT; idealState.getRecord().setSimpleField(stateTransition, "300"); @@ -145,7 +139,7 @@ public class TestStateTransitionTimeout extends ZkStandAloneCMTestBase { public void testStateTransitionTimeOut() throws Exception { Map<String, SleepStateModelFactory> factories = new HashMap<String, SleepStateModelFactory>(); IdealState idealState = - _setupTool.getClusterManagementTool().getResourceIdealState(CLUSTER_NAME, TEST_DB); + _gSetupTool.getClusterManagementTool().getResourceIdealState(CLUSTER_NAME, TEST_DB); for (int i = 0; i < NODE_NR; i++) { String instanceName = PARTICIPANT_PREFIX + "_" + (START_PORT + i); SleepStateModelFactory factory = new SleepStateModelFactory(1000); http://git-wip-us.apache.org/repos/asf/helix/blob/c0d5792b/helix-core/src/test/java/org/apache/helix/integration/paticipant/TestStateTransitionTimeoutWithResource.java ---------------------------------------------------------------------- diff --git a/helix-core/src/test/java/org/apache/helix/integration/paticipant/TestStateTransitionTimeoutWithResource.java b/helix-core/src/test/java/org/apache/helix/integration/paticipant/TestStateTransitionTimeoutWithResource.java index b7491f2..2e9af04 100644 --- a/helix-core/src/test/java/org/apache/helix/integration/paticipant/TestStateTransitionTimeoutWithResource.java +++ b/helix-core/src/test/java/org/apache/helix/integration/paticipant/TestStateTransitionTimeoutWithResource.java @@ -70,18 +70,12 @@ public class TestStateTransitionTimeoutWithResource extends ZkStandAloneCMTestBa public void beforeClass() throws Exception { System.out.println("START " + CLASS_NAME + " at " + new Date(System.currentTimeMillis())); - String namespace = "/" + CLUSTER_NAME; - if (_gZkClient.exists(namespace)) { - _gZkClient.deleteRecursively(namespace); - } - _setupTool = new ClusterSetup(ZK_ADDR); - // setup storage cluster - _setupTool.addCluster(CLUSTER_NAME, true); + _gSetupTool.addCluster(CLUSTER_NAME, true); for (int i = 0; i < NODE_NR; i++) { String storageNodeName = PARTICIPANT_PREFIX + "_" + (START_PORT + i); - _setupTool.addInstanceToCluster(CLUSTER_NAME, storageNodeName); + _gSetupTool.addInstanceToCluster(CLUSTER_NAME, storageNodeName); } _manager = HelixManagerFactory @@ -155,9 +149,9 @@ public class TestStateTransitionTimeoutWithResource extends ZkStandAloneCMTestBa @Test public void testStateTransitionTimeOut() throws Exception { - _setupTool.addResourceToCluster(CLUSTER_NAME, TEST_DB, _PARTITIONS, STATE_MODEL); - _setupTool.getClusterManagementTool().enableResource(CLUSTER_NAME, TEST_DB, false); - _setupTool.rebalanceStorageCluster(CLUSTER_NAME, TEST_DB, 3); + _gSetupTool.addResourceToCluster(CLUSTER_NAME, TEST_DB, _PARTITIONS, STATE_MODEL); + _gSetupTool.getClusterManagementTool().enableResource(CLUSTER_NAME, TEST_DB, false); + _gSetupTool.rebalanceStorageCluster(CLUSTER_NAME, TEST_DB, 3); // Set the timeout values StateTransitionTimeoutConfig stateTransitionTimeoutConfig = @@ -171,7 +165,7 @@ public class TestStateTransitionTimeoutWithResource extends ZkStandAloneCMTestBa setParticipants(TEST_DB); - _setupTool.getClusterManagementTool().enableResource(CLUSTER_NAME, TEST_DB, true); + _gSetupTool.getClusterManagementTool().enableResource(CLUSTER_NAME, TEST_DB, true); boolean result = ClusterStateVerifier .verifyByZkCallback(new MasterNbInExtViewVerifier(ZK_ADDR, CLUSTER_NAME)); @@ -182,9 +176,9 @@ public class TestStateTransitionTimeoutWithResource extends ZkStandAloneCMTestBa @Test public void testStateTransitionTimeoutByClusterLevel() throws InterruptedException { - _setupTool.addResourceToCluster(CLUSTER_NAME, TEST_DB + 1, _PARTITIONS, STATE_MODEL); - _setupTool.getClusterManagementTool().enableResource(CLUSTER_NAME, TEST_DB + 1, false); - _setupTool.rebalanceStorageCluster(CLUSTER_NAME, TEST_DB + 1, 3); + _gSetupTool.addResourceToCluster(CLUSTER_NAME, TEST_DB + 1, _PARTITIONS, STATE_MODEL); + _gSetupTool.getClusterManagementTool().enableResource(CLUSTER_NAME, TEST_DB + 1, false); + _gSetupTool.rebalanceStorageCluster(CLUSTER_NAME, TEST_DB + 1, 3); StateTransitionTimeoutConfig stateTransitionTimeoutConfig = new StateTransitionTimeoutConfig(new ZNRecord(TEST_DB + 1)); @@ -195,7 +189,7 @@ public class TestStateTransitionTimeoutWithResource extends ZkStandAloneCMTestBa setParticipants(TEST_DB + 1); - _setupTool.getClusterManagementTool().enableResource(CLUSTER_NAME, TEST_DB + 1, true); + _gSetupTool.getClusterManagementTool().enableResource(CLUSTER_NAME, TEST_DB + 1, true); boolean result = ClusterStateVerifier .verifyByZkCallback(new MasterNbInExtViewVerifier(ZK_ADDR, CLUSTER_NAME)); @@ -205,7 +199,7 @@ public class TestStateTransitionTimeoutWithResource extends ZkStandAloneCMTestBa private void verify(String dbName) { IdealState idealState = - _setupTool.getClusterManagementTool().getResourceIdealState(CLUSTER_NAME, dbName); + _gSetupTool.getClusterManagementTool().getResourceIdealState(CLUSTER_NAME, dbName); HelixDataAccessor accessor = _manager.getHelixDataAccessor(); ExternalView ev = accessor.getProperty(accessor.keyBuilder().externalView(dbName)); for (String p : idealState.getPartitionSet()) { @@ -221,7 +215,7 @@ public class TestStateTransitionTimeoutWithResource extends ZkStandAloneCMTestBa private void setParticipants(String dbName) throws InterruptedException { _factories = new HashMap<>(); IdealState idealState = - _setupTool.getClusterManagementTool().getResourceIdealState(CLUSTER_NAME, dbName); + _gSetupTool.getClusterManagementTool().getResourceIdealState(CLUSTER_NAME, dbName); for (int i = 0; i < NODE_NR; i++) { if (_participants[i] != null) { _participants[i].syncStop(); http://git-wip-us.apache.org/repos/asf/helix/blob/c0d5792b/helix-core/src/test/java/org/apache/helix/integration/rebalancer/CrushRebalancers/TestCrushAutoRebalance.java ---------------------------------------------------------------------- diff --git a/helix-core/src/test/java/org/apache/helix/integration/rebalancer/CrushRebalancers/TestCrushAutoRebalance.java b/helix-core/src/test/java/org/apache/helix/integration/rebalancer/CrushRebalancers/TestCrushAutoRebalance.java index 0b90af6..05286a7 100644 --- a/helix-core/src/test/java/org/apache/helix/integration/rebalancer/CrushRebalancers/TestCrushAutoRebalance.java +++ b/helix-core/src/test/java/org/apache/helix/integration/rebalancer/CrushRebalancers/TestCrushAutoRebalance.java @@ -28,7 +28,7 @@ import java.util.Map; import java.util.Set; import org.apache.helix.controller.rebalancer.strategy.*; -import org.apache.helix.integration.common.ZkIntegrationTestBase; +import org.apache.helix.common.ZkTestBase; import org.apache.helix.integration.manager.ClusterControllerManager; import org.apache.helix.integration.manager.MockParticipantManager; import org.apache.helix.model.BuiltInStateModelDefinitions; @@ -36,7 +36,6 @@ import org.apache.helix.model.ExternalView; import org.apache.helix.model.IdealState; import org.apache.helix.model.IdealState.RebalanceMode; import org.apache.helix.model.InstanceConfig; -import org.apache.helix.tools.ClusterSetup; import org.apache.helix.tools.ClusterVerifiers.BestPossibleExternalViewVerifier; import org.apache.helix.tools.ClusterVerifiers.HelixClusterVerifier; import org.testng.Assert; @@ -46,7 +45,7 @@ import org.testng.annotations.BeforeClass; import org.testng.annotations.DataProvider; import org.testng.annotations.Test; -public class TestCrushAutoRebalance extends ZkIntegrationTestBase { +public class TestCrushAutoRebalance extends ZkTestBase { final int NUM_NODE = 6; protected static final int START_PORT = 12918; protected static final int _PARTITIONS = 20; @@ -55,12 +54,11 @@ public class TestCrushAutoRebalance extends ZkIntegrationTestBase { protected final String CLUSTER_NAME = CLUSTER_PREFIX + "_" + CLASS_NAME; protected ClusterControllerManager _controller; - protected ClusterSetup _setupTool = null; - List<MockParticipantManager> _participants = new ArrayList<MockParticipantManager>(); - Map<String, String> _nodeToZoneMap = new HashMap<String, String>(); - Map<String, String> _nodeToTagMap = new HashMap<String, String>(); - List<String> _nodes = new ArrayList<String>(); - Set<String> _allDBs = new HashSet<String>(); + List<MockParticipantManager> _participants = new ArrayList<>(); + Map<String, String> _nodeToZoneMap = new HashMap<>(); + Map<String, String> _nodeToTagMap = new HashMap<>(); + List<String> _nodes = new ArrayList<>(); + Set<String> _allDBs = new HashSet<>(); int _replica = 3; String[] _testModels = { BuiltInStateModelDefinitions.OnlineOffline.name(), @@ -72,20 +70,15 @@ public class TestCrushAutoRebalance extends ZkIntegrationTestBase { public void beforeClass() throws Exception { System.out.println("START " + CLASS_NAME + " at " + new Date(System.currentTimeMillis())); - String namespace = "/" + CLUSTER_NAME; - if (_gZkClient.exists(namespace)) { - _gZkClient.deleteRecursively(namespace); - } - _setupTool = new ClusterSetup(_gZkClient); - _setupTool.addCluster(CLUSTER_NAME, true); + _gSetupTool.addCluster(CLUSTER_NAME, true); for (int i = 0; i < NUM_NODE; i++) { String storageNodeName = PARTICIPANT_PREFIX + "_" + (START_PORT + i); - _setupTool.addInstanceToCluster(CLUSTER_NAME, storageNodeName); + _gSetupTool.addInstanceToCluster(CLUSTER_NAME, storageNodeName); String zone = "zone-" + i % 3; String tag = "tag-" + i % 2; - _setupTool.getClusterManagementTool().setInstanceZoneId(CLUSTER_NAME, storageNodeName, zone); - _setupTool.getClusterManagementTool().addInstanceTag(CLUSTER_NAME, storageNodeName, tag); + _gSetupTool.getClusterManagementTool().setInstanceZoneId(CLUSTER_NAME, storageNodeName, zone); + _gSetupTool.getClusterManagementTool().addInstanceTag(CLUSTER_NAME, storageNodeName, tag); _nodeToZoneMap.put(storageNodeName, zone); _nodeToTagMap.put(storageNodeName, tag); _nodes.add(storageNodeName); @@ -123,9 +116,9 @@ public class TestCrushAutoRebalance extends ZkIntegrationTestBase { int i = 0; for (String stateModel : _testModels) { String db = "Test-DB-" + rebalanceStrategyName + "-" + i++; - _setupTool.addResourceToCluster(CLUSTER_NAME, db, _PARTITIONS, stateModel, + _gSetupTool.addResourceToCluster(CLUSTER_NAME, db, _PARTITIONS, stateModel, RebalanceMode.FULL_AUTO + "", rebalanceStrategyClass); - _setupTool.rebalanceStorageCluster(CLUSTER_NAME, db, _replica); + _gSetupTool.rebalanceStorageCluster(CLUSTER_NAME, db, _replica); _allDBs.add(db); } Thread.sleep(300); @@ -136,9 +129,9 @@ public class TestCrushAutoRebalance extends ZkIntegrationTestBase { Assert.assertTrue(_clusterVerifier.verify()); for (String db : _allDBs) { - IdealState is = _setupTool.getClusterManagementTool().getResourceIdealState(CLUSTER_NAME, db); + IdealState is = _gSetupTool.getClusterManagementTool().getResourceIdealState(CLUSTER_NAME, db); ExternalView ev = - _setupTool.getClusterManagementTool().getResourceExternalView(CLUSTER_NAME, db); + _gSetupTool.getClusterManagementTool().getResourceExternalView(CLUSTER_NAME, db); validateZoneAndTagIsolation(is, ev, _replica); } } @@ -150,13 +143,13 @@ public class TestCrushAutoRebalance extends ZkIntegrationTestBase { int i = 0; for (String tag : tags) { String db = "Test-DB-Tag-" + rebalanceStrategyName + "-" + i++; - _setupTool.addResourceToCluster(CLUSTER_NAME, db, _PARTITIONS, + _gSetupTool.addResourceToCluster(CLUSTER_NAME, db, _PARTITIONS, BuiltInStateModelDefinitions.MasterSlave.name(), RebalanceMode.FULL_AUTO + "", rebalanceStrategyClass); - IdealState is = _setupTool.getClusterManagementTool().getResourceIdealState(CLUSTER_NAME, db); + IdealState is = _gSetupTool.getClusterManagementTool().getResourceIdealState(CLUSTER_NAME, db); is.setInstanceGroupTag(tag); - _setupTool.getClusterManagementTool().setResourceIdealState(CLUSTER_NAME, db, is); - _setupTool.rebalanceStorageCluster(CLUSTER_NAME, db, _replica); + _gSetupTool.getClusterManagementTool().setResourceIdealState(CLUSTER_NAME, db, is); + _gSetupTool.rebalanceStorageCluster(CLUSTER_NAME, db, _replica); _allDBs.add(db); } Thread.sleep(300); @@ -167,9 +160,9 @@ public class TestCrushAutoRebalance extends ZkIntegrationTestBase { Assert.assertTrue(_clusterVerifier.verify()); for (String db : _allDBs) { - IdealState is = _setupTool.getClusterManagementTool().getResourceIdealState(CLUSTER_NAME, db); + IdealState is = _gSetupTool.getClusterManagementTool().getResourceIdealState(CLUSTER_NAME, db); ExternalView ev = - _setupTool.getClusterManagementTool().getResourceExternalView(CLUSTER_NAME, db); + _gSetupTool.getClusterManagementTool().getResourceExternalView(CLUSTER_NAME, db); validateZoneAndTagIsolation(is, ev, _replica); } } @@ -191,9 +184,9 @@ public class TestCrushAutoRebalance extends ZkIntegrationTestBase { int i = 0; for (String stateModel : _testModels) { String db = "Test-DB-CrushRebalanceStrategy-" + i++; - _setupTool.addResourceToCluster(CLUSTER_NAME, db, _PARTITIONS, stateModel, + _gSetupTool.addResourceToCluster(CLUSTER_NAME, db, _PARTITIONS, stateModel, RebalanceMode.FULL_AUTO + "", CrushRebalanceStrategy.class.getName()); - _setupTool.rebalanceStorageCluster(CLUSTER_NAME, db, _replica); + _gSetupTool.rebalanceStorageCluster(CLUSTER_NAME, db, _replica); _allDBs.add(db); } Thread.sleep(300); @@ -204,9 +197,9 @@ public class TestCrushAutoRebalance extends ZkIntegrationTestBase { Assert.assertTrue(_clusterVerifier.verify()); for (String db : _allDBs) { - IdealState is = _setupTool.getClusterManagementTool().getResourceIdealState(CLUSTER_NAME, db); + IdealState is = _gSetupTool.getClusterManagementTool().getResourceIdealState(CLUSTER_NAME, db); ExternalView ev = - _setupTool.getClusterManagementTool().getResourceExternalView(CLUSTER_NAME, db); + _gSetupTool.getClusterManagementTool().getResourceExternalView(CLUSTER_NAME, db); validateZoneAndTagIsolation(is, ev, 2); } } @@ -222,19 +215,19 @@ public class TestCrushAutoRebalance extends ZkIntegrationTestBase { MockParticipantManager p = _participants.get(i); if (_nodeToZoneMap.get(p.getInstanceName()).equals(zone)){ p.syncStop(); - _setupTool.getClusterManagementTool() + _gSetupTool.getClusterManagementTool() .enableInstance(CLUSTER_NAME, p.getInstanceName(), false); Thread.sleep(50); - _setupTool.dropInstanceFromCluster(CLUSTER_NAME, p.getInstanceName()); + _gSetupTool.dropInstanceFromCluster(CLUSTER_NAME, p.getInstanceName()); } } int i = 0; for (String stateModel : _testModels) { String db = "Test-DB-CrushRebalanceStrategy-" + i++; - _setupTool.addResourceToCluster(CLUSTER_NAME, db, _PARTITIONS, stateModel, + _gSetupTool.addResourceToCluster(CLUSTER_NAME, db, _PARTITIONS, stateModel, RebalanceMode.FULL_AUTO + "", CrushRebalanceStrategy.class.getName()); - _setupTool.rebalanceStorageCluster(CLUSTER_NAME, db, _replica); + _gSetupTool.rebalanceStorageCluster(CLUSTER_NAME, db, _replica); _allDBs.add(db); } Thread.sleep(300); @@ -245,9 +238,9 @@ public class TestCrushAutoRebalance extends ZkIntegrationTestBase { Assert.assertTrue(_clusterVerifier.verify()); for (String db : _allDBs) { - IdealState is = _setupTool.getClusterManagementTool().getResourceIdealState(CLUSTER_NAME, db); + IdealState is = _gSetupTool.getClusterManagementTool().getResourceIdealState(CLUSTER_NAME, db); ExternalView ev = - _setupTool.getClusterManagementTool().getResourceExternalView(CLUSTER_NAME, db); + _gSetupTool.getClusterManagementTool().getResourceExternalView(CLUSTER_NAME, db); validateZoneAndTagIsolation(is, ev, 2); } } @@ -255,7 +248,7 @@ public class TestCrushAutoRebalance extends ZkIntegrationTestBase { @AfterMethod public void afterMethod() throws Exception { for (String db : _allDBs) { - _setupTool.dropResourceFromCluster(CLUSTER_NAME, db); + _gSetupTool.dropResourceFromCluster(CLUSTER_NAME, db); } _allDBs.clear(); // waiting for all DB be dropped. @@ -278,7 +271,7 @@ public class TestCrushAutoRebalance extends ZkIntegrationTestBase { assignedZones.add(_nodeToZoneMap.get(instance)); if (tag != null) { InstanceConfig config = - _setupTool.getClusterManagementTool().getInstanceConfig(CLUSTER_NAME, instance); + _gSetupTool.getClusterManagementTool().getInstanceConfig(CLUSTER_NAME, instance); Assert.assertTrue(config.containsTag(tag)); } } @@ -307,10 +300,12 @@ public class TestCrushAutoRebalance extends ZkIntegrationTestBase { * shutdown order: 1) disconnect the controller 2) disconnect participants */ _controller.syncStop(); - for (MockParticipantManager participant : _participants) { - participant.syncStop(); + for (MockParticipantManager p : _participants) { + if (p.isConnected()) { + p.syncStop(); + } } - _setupTool.deleteCluster(CLUSTER_NAME); + _gSetupTool.deleteCluster(CLUSTER_NAME); System.out.println("END " + CLASS_NAME + " at " + new Date(System.currentTimeMillis())); } } http://git-wip-us.apache.org/repos/asf/helix/blob/c0d5792b/helix-core/src/test/java/org/apache/helix/integration/rebalancer/CrushRebalancers/TestCrushAutoRebalanceNonRack.java ---------------------------------------------------------------------- diff --git a/helix-core/src/test/java/org/apache/helix/integration/rebalancer/CrushRebalancers/TestCrushAutoRebalanceNonRack.java b/helix-core/src/test/java/org/apache/helix/integration/rebalancer/CrushRebalancers/TestCrushAutoRebalanceNonRack.java index 1a41e08..5005858 100644 --- a/helix-core/src/test/java/org/apache/helix/integration/rebalancer/CrushRebalancers/TestCrushAutoRebalanceNonRack.java +++ b/helix-core/src/test/java/org/apache/helix/integration/rebalancer/CrushRebalancers/TestCrushAutoRebalanceNonRack.java @@ -31,6 +31,7 @@ import org.apache.helix.tools.ClusterSetup; import org.apache.helix.tools.ClusterVerifiers.HelixClusterVerifier; import org.apache.helix.tools.ClusterVerifiers.StrictMatchExternalViewVerifier; import org.testng.Assert; +import org.testng.annotations.AfterClass; import org.testng.annotations.AfterMethod; import org.testng.annotations.BeforeClass; import org.testng.annotations.DataProvider; @@ -47,10 +48,9 @@ public class TestCrushAutoRebalanceNonRack extends ZkStandAloneCMTestBase { protected final String CLUSTER_NAME = CLUSTER_PREFIX + "_" + CLASS_NAME; protected ClusterControllerManager _controller; - protected ClusterSetup _setupTool = null; List<MockParticipantManager> _participants = new ArrayList<MockParticipantManager>(); Map<String, String> _nodeToTagMap = new HashMap<String, String>(); - List<String> _nodes = new ArrayList<String>(); + List<String> _nodes = new ArrayList<>(); Set<String> _allDBs = new HashSet<>(); int _replica = 3; @@ -63,12 +63,7 @@ public class TestCrushAutoRebalanceNonRack extends ZkStandAloneCMTestBase { public void beforeClass() throws Exception { System.out.println("START " + CLASS_NAME + " at " + new Date(System.currentTimeMillis())); - String namespace = "/" + CLUSTER_NAME; - if (_gZkClient.exists(namespace)) { - _gZkClient.deleteRecursively(namespace); - } - _setupTool = new ClusterSetup(_gZkClient); - _setupTool.addCluster(CLUSTER_NAME, true); + _gSetupTool.addCluster(CLUSTER_NAME, true); ConfigAccessor configAccessor = new ConfigAccessor(_gZkClient); ClusterConfig clusterConfig = configAccessor.getClusterConfig(CLUSTER_NAME); @@ -78,10 +73,10 @@ public class TestCrushAutoRebalanceNonRack extends ZkStandAloneCMTestBase { for (int i = 0; i < NUM_NODE; i++) { String storageNodeName = PARTICIPANT_PREFIX + "_" + (START_PORT + i); - _setupTool.addInstanceToCluster(CLUSTER_NAME, storageNodeName); + _gSetupTool.addInstanceToCluster(CLUSTER_NAME, storageNodeName); _nodes.add(storageNodeName); String tag = "tag-" + i % 2; - _setupTool.getClusterManagementTool().addInstanceTag(CLUSTER_NAME, storageNodeName, tag); + _gSetupTool.getClusterManagementTool().addInstanceTag(CLUSTER_NAME, storageNodeName, tag); _nodeToTagMap.put(storageNodeName, tag); InstanceConfig instanceConfig = configAccessor.getInstanceConfig(CLUSTER_NAME, storageNodeName); @@ -105,6 +100,18 @@ public class TestCrushAutoRebalanceNonRack extends ZkStandAloneCMTestBase { //enableTopologyAwareRebalance(_gZkClient, CLUSTER_NAME, true); } + @AfterClass + public void afterClass() throws Exception { + _controller.syncStop(); + for (MockParticipantManager p : _participants) { + if (p.isConnected()) { + p.syncStop(); + } + } + _gSetupTool.deleteCluster(CLUSTER_NAME); + super.afterClass(); + } + @DataProvider(name = "rebalanceStrategies") public static String[][] rebalanceStrategies() { return new String[][] { { "CrushRebalanceStrategy", CrushRebalanceStrategy.class.getName() }, @@ -118,9 +125,9 @@ public class TestCrushAutoRebalanceNonRack extends ZkStandAloneCMTestBase { int i = 0; for (String stateModel : _testModels) { String db = "Test-DB-" + rebalanceStrategyName + "-" + i++; - _setupTool.addResourceToCluster(CLUSTER_NAME, db, _PARTITIONS, stateModel, + _gSetupTool.addResourceToCluster(CLUSTER_NAME, db, _PARTITIONS, stateModel, RebalanceMode.FULL_AUTO + "", rebalanceStrategyClass); - _setupTool.rebalanceStorageCluster(CLUSTER_NAME, db, _replica); + _gSetupTool.rebalanceStorageCluster(CLUSTER_NAME, db, _replica); _allDBs.add(db); } Thread.sleep(300); @@ -130,9 +137,9 @@ public class TestCrushAutoRebalanceNonRack extends ZkStandAloneCMTestBase { .setResources(_allDBs).build(); Assert.assertTrue(_clusterVerifier.verify(5000)); for (String db : _allDBs) { - IdealState is = _setupTool.getClusterManagementTool().getResourceIdealState(CLUSTER_NAME, db); + IdealState is = _gSetupTool.getClusterManagementTool().getResourceIdealState(CLUSTER_NAME, db); ExternalView ev = - _setupTool.getClusterManagementTool().getResourceExternalView(CLUSTER_NAME, db); + _gSetupTool.getClusterManagementTool().getResourceExternalView(CLUSTER_NAME, db); validateIsolation(is, ev, _replica); } } @@ -144,13 +151,13 @@ public class TestCrushAutoRebalanceNonRack extends ZkStandAloneCMTestBase { int i = 3; for (String tag : tags) { String db = "Test-DB-" + rebalanceStrategyName + "-" + i++; - _setupTool.addResourceToCluster(CLUSTER_NAME, db, _PARTITIONS, + _gSetupTool.addResourceToCluster(CLUSTER_NAME, db, _PARTITIONS, BuiltInStateModelDefinitions.MasterSlave.name(), RebalanceMode.FULL_AUTO + "", rebalanceStrategyClass); - IdealState is = _setupTool.getClusterManagementTool().getResourceIdealState(CLUSTER_NAME, db); + IdealState is = _gSetupTool.getClusterManagementTool().getResourceIdealState(CLUSTER_NAME, db); is.setInstanceGroupTag(tag); - _setupTool.getClusterManagementTool().setResourceIdealState(CLUSTER_NAME, db, is); - _setupTool.rebalanceStorageCluster(CLUSTER_NAME, db, _replica); + _gSetupTool.getClusterManagementTool().setResourceIdealState(CLUSTER_NAME, db, is); + _gSetupTool.rebalanceStorageCluster(CLUSTER_NAME, db, _replica); _allDBs.add(db); } Thread.sleep(300); @@ -160,9 +167,9 @@ public class TestCrushAutoRebalanceNonRack extends ZkStandAloneCMTestBase { .setResources(_allDBs).build(); Assert.assertTrue(_clusterVerifier.verify(5000)); for (String db : _allDBs) { - IdealState is = _setupTool.getClusterManagementTool().getResourceIdealState(CLUSTER_NAME, db); + IdealState is = _gSetupTool.getClusterManagementTool().getResourceIdealState(CLUSTER_NAME, db); ExternalView ev = - _setupTool.getClusterManagementTool().getResourceExternalView(CLUSTER_NAME, db); + _gSetupTool.getClusterManagementTool().getResourceExternalView(CLUSTER_NAME, db); validateIsolation(is, ev, _replica); } } @@ -183,9 +190,9 @@ public class TestCrushAutoRebalanceNonRack extends ZkStandAloneCMTestBase { int j = 0; for (String stateModel : _testModels) { String db = "Test-DB-" + rebalanceStrategyName + "-" + j++; - _setupTool.addResourceToCluster(CLUSTER_NAME, db, _PARTITIONS, stateModel, + _gSetupTool.addResourceToCluster(CLUSTER_NAME, db, _PARTITIONS, stateModel, RebalanceMode.FULL_AUTO + "", rebalanceStrategyClass); - _setupTool.rebalanceStorageCluster(CLUSTER_NAME, db, _replica); + _gSetupTool.rebalanceStorageCluster(CLUSTER_NAME, db, _replica); _allDBs.add(db); } Thread.sleep(300); @@ -195,9 +202,9 @@ public class TestCrushAutoRebalanceNonRack extends ZkStandAloneCMTestBase { .setResources(_allDBs).build(); Assert.assertTrue(_clusterVerifier.verify(5000)); for (String db : _allDBs) { - IdealState is = _setupTool.getClusterManagementTool().getResourceIdealState(CLUSTER_NAME, db); + IdealState is = _gSetupTool.getClusterManagementTool().getResourceIdealState(CLUSTER_NAME, db); ExternalView ev = - _setupTool.getClusterManagementTool().getResourceExternalView(CLUSTER_NAME, db); + _gSetupTool.getClusterManagementTool().getResourceExternalView(CLUSTER_NAME, db); validateIsolation(is, ev, 2); } @@ -218,18 +225,18 @@ public class TestCrushAutoRebalanceNonRack extends ZkStandAloneCMTestBase { for (int i = 2; i < _participants.size(); i++) { MockParticipantManager p = _participants.get(i); p.syncStop(); - _setupTool.getClusterManagementTool() + _gSetupTool.getClusterManagementTool() .enableInstance(CLUSTER_NAME, p.getInstanceName(), false); Thread.sleep(200); - _setupTool.dropInstanceFromCluster(CLUSTER_NAME, p.getInstanceName()); + _gSetupTool.dropInstanceFromCluster(CLUSTER_NAME, p.getInstanceName()); } int j = 0; for (String stateModel : _testModels) { String db = "Test-DB-" + rebalanceStrategyName + "-" + j++; - _setupTool.addResourceToCluster(CLUSTER_NAME, db, _PARTITIONS, stateModel, + _gSetupTool.addResourceToCluster(CLUSTER_NAME, db, _PARTITIONS, stateModel, RebalanceMode.FULL_AUTO + "", rebalanceStrategyClass); - _setupTool.rebalanceStorageCluster(CLUSTER_NAME, db, _replica); + _gSetupTool.rebalanceStorageCluster(CLUSTER_NAME, db, _replica); _allDBs.add(db); } Thread.sleep(300); @@ -238,9 +245,9 @@ public class TestCrushAutoRebalanceNonRack extends ZkStandAloneCMTestBase { .setResources(_allDBs).build(); Assert.assertTrue(_clusterVerifier.verify()); for (String db : _allDBs) { - IdealState is = _setupTool.getClusterManagementTool().getResourceIdealState(CLUSTER_NAME, db); + IdealState is = _gSetupTool.getClusterManagementTool().getResourceIdealState(CLUSTER_NAME, db); ExternalView ev = - _setupTool.getClusterManagementTool().getResourceExternalView(CLUSTER_NAME, db); + _gSetupTool.getClusterManagementTool().getResourceExternalView(CLUSTER_NAME, db); validateIsolation(is, ev, 2); } @@ -248,7 +255,7 @@ public class TestCrushAutoRebalanceNonRack extends ZkStandAloneCMTestBase { ConfigAccessor configAccessor = new ConfigAccessor(_gZkClient); for (int i = 2; i < _participants.size(); i++) { String storageNodeName = _participants.get(i).getInstanceName(); - _setupTool.addInstanceToCluster(CLUSTER_NAME, storageNodeName); + _gSetupTool.addInstanceToCluster(CLUSTER_NAME, storageNodeName); InstanceConfig instanceConfig = configAccessor.getInstanceConfig(CLUSTER_NAME, storageNodeName); @@ -274,7 +281,7 @@ public class TestCrushAutoRebalanceNonRack extends ZkStandAloneCMTestBase { for (String instance : instancesInEV) { if (tag != null) { InstanceConfig config = - _setupTool.getClusterManagementTool().getInstanceConfig(CLUSTER_NAME, instance); + _gSetupTool.getClusterManagementTool().getInstanceConfig(CLUSTER_NAME, instance); Assert.assertTrue(config.containsTag(tag)); } } @@ -284,7 +291,7 @@ public class TestCrushAutoRebalanceNonRack extends ZkStandAloneCMTestBase { @AfterMethod public void afterMethod() throws Exception { for (String db : _allDBs) { - _setupTool.dropResourceFromCluster(CLUSTER_NAME, db); + _gSetupTool.dropResourceFromCluster(CLUSTER_NAME, db); } _allDBs.clear(); // waiting for all DB be dropped. http://git-wip-us.apache.org/repos/asf/helix/blob/c0d5792b/helix-core/src/test/java/org/apache/helix/integration/rebalancer/CrushRebalancers/TestCrushAutoRebalanceTopoplogyAwareDisabled.java ---------------------------------------------------------------------- diff --git a/helix-core/src/test/java/org/apache/helix/integration/rebalancer/CrushRebalancers/TestCrushAutoRebalanceTopoplogyAwareDisabled.java b/helix-core/src/test/java/org/apache/helix/integration/rebalancer/CrushRebalancers/TestCrushAutoRebalanceTopoplogyAwareDisabled.java index c7d88e9..2b89164 100644 --- a/helix-core/src/test/java/org/apache/helix/integration/rebalancer/CrushRebalancers/TestCrushAutoRebalanceTopoplogyAwareDisabled.java +++ b/helix-core/src/test/java/org/apache/helix/integration/rebalancer/CrushRebalancers/TestCrushAutoRebalanceTopoplogyAwareDisabled.java @@ -20,10 +20,9 @@ package org.apache.helix.integration.rebalancer.CrushRebalancers; */ import java.util.Date; -import org.apache.helix.integration.common.ZkIntegrationTestBase; +import org.apache.helix.common.ZkTestBase; import org.apache.helix.integration.manager.ClusterControllerManager; import org.apache.helix.integration.manager.MockParticipantManager; -import org.apache.helix.tools.ClusterSetup; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; @@ -33,36 +32,31 @@ public class TestCrushAutoRebalanceTopoplogyAwareDisabled extends TestCrushAutoR public void beforeClass() throws Exception { System.out.println("START " + CLASS_NAME + " at " + new Date(System.currentTimeMillis())); - String namespace = "/" + CLUSTER_NAME; - if (ZkIntegrationTestBase._gZkClient.exists(namespace)) { - ZkIntegrationTestBase._gZkClient.deleteRecursively(namespace); - } - _setupTool = new ClusterSetup(ZkIntegrationTestBase._gZkClient); - _setupTool.addCluster(CLUSTER_NAME, true); + _gSetupTool.addCluster(CLUSTER_NAME, true); for (int i = 0; i < NUM_NODE; i++) { String storageNodeName = PARTICIPANT_PREFIX + "_" + (TestCrushAutoRebalanceNonRack.START_PORT + i); - _setupTool.addInstanceToCluster(CLUSTER_NAME, storageNodeName); + _gSetupTool.addInstanceToCluster(CLUSTER_NAME, storageNodeName); _nodes.add(storageNodeName); String tag = "tag-" + i % 2; - _setupTool.getClusterManagementTool().addInstanceTag(CLUSTER_NAME, storageNodeName, tag); + _gSetupTool.getClusterManagementTool().addInstanceTag(CLUSTER_NAME, storageNodeName, tag); _nodeToTagMap.put(storageNodeName, tag); } // start dummy participants for (String node : _nodes) { MockParticipantManager participant = - new MockParticipantManager(ZkIntegrationTestBase.ZK_ADDR, CLUSTER_NAME, node); + new MockParticipantManager(ZkTestBase.ZK_ADDR, CLUSTER_NAME, node); participant.syncStart(); _participants.add(participant); } // start controller String controllerName = CONTROLLER_PREFIX + "_0"; - _controller = new ClusterControllerManager(ZkIntegrationTestBase.ZK_ADDR, CLUSTER_NAME, controllerName); + _controller = new ClusterControllerManager(ZkTestBase.ZK_ADDR, CLUSTER_NAME, controllerName); _controller.syncStart(); - enablePersistBestPossibleAssignment(ZkIntegrationTestBase._gZkClient, CLUSTER_NAME, true); + enablePersistBestPossibleAssignment(ZkTestBase._gZkClient, CLUSTER_NAME, true); } @Test(dataProvider = "rebalanceStrategies")
