You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@helix.apache.org by lx...@apache.org on 2016/08/17 04:27:22 UTC
[26/33] helix git commit: Refactor redundant code
TestTaskRebalancerRetryLimit
Refactor redundant code TestTaskRebalancerRetryLimit
RB=715304
G=nuage-reviewers
R=lxia,cji
A=lxia
Project: http://git-wip-us.apache.org/repos/asf/helix/repo
Commit: http://git-wip-us.apache.org/repos/asf/helix/commit/2f62cd1f
Tree: http://git-wip-us.apache.org/repos/asf/helix/tree/2f62cd1f
Diff: http://git-wip-us.apache.org/repos/asf/helix/diff/2f62cd1f
Branch: refs/heads/helix-0.6.x
Commit: 2f62cd1fc60eab43a2250224576b28742f023a73
Parents: e8ecdf3
Author: Junkai Xue <jx...@linkedin.com>
Authored: Thu Apr 28 15:24:03 2016 -0700
Committer: Lei Xia <lx...@linkedin.com>
Committed: Tue Jul 5 16:18:03 2016 -0700
----------------------------------------------------------------------
.../task/TestTaskRebalancerRetryLimit.java | 88 ++------------------
1 file changed, 5 insertions(+), 83 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/helix/blob/2f62cd1f/helix-core/src/test/java/org/apache/helix/integration/task/TestTaskRebalancerRetryLimit.java
----------------------------------------------------------------------
diff --git a/helix-core/src/test/java/org/apache/helix/integration/task/TestTaskRebalancerRetryLimit.java b/helix-core/src/test/java/org/apache/helix/integration/task/TestTaskRebalancerRetryLimit.java
index a277358..d677920 100644
--- a/helix-core/src/test/java/org/apache/helix/integration/task/TestTaskRebalancerRetryLimit.java
+++ b/helix-core/src/test/java/org/apache/helix/integration/task/TestTaskRebalancerRetryLimit.java
@@ -19,97 +19,33 @@ package org.apache.helix.integration.task;
* under the License.
*/
-import java.util.HashMap;
-import java.util.Map;
-
-import org.apache.helix.HelixManagerFactory;
-import org.apache.helix.InstanceType;
import org.apache.helix.TestHelper;
-import org.apache.helix.integration.manager.ClusterControllerManager;
-import org.apache.helix.integration.manager.MockParticipantManager;
-import org.apache.helix.participant.StateMachineEngine;
import org.apache.helix.task.JobConfig;
import org.apache.helix.task.JobContext;
import org.apache.helix.task.Task;
-import org.apache.helix.task.TaskCallbackContext;
-import org.apache.helix.task.TaskDriver;
-import org.apache.helix.task.TaskFactory;
import org.apache.helix.task.TaskPartitionState;
import org.apache.helix.task.TaskResult;
import org.apache.helix.task.TaskState;
-import org.apache.helix.task.TaskStateModelFactory;
import org.apache.helix.task.TaskUtil;
import org.apache.helix.task.Workflow;
-import org.apache.helix.tools.ClusterSetup;
-import org.apache.helix.tools.ClusterStateVerifier;
import org.testng.Assert;
-import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
+import com.google.common.collect.ImmutableMap;
+
/**
* Test task will be retried up to MaxAttemptsPerTask {@see HELIX-562}
*/
public class TestTaskRebalancerRetryLimit extends TaskTestBase {
- @BeforeClass
- public void beforeClass() throws Exception {
- ClusterSetup setup = new ClusterSetup(_gZkClient);
- setup.addCluster(CLUSTER_NAME, true);
- for (int i = 0; i < _numNodes; i++) {
- String instanceName = "localhost_" + (12918 + i);
- setup.addInstanceToCluster(CLUSTER_NAME, instanceName);
- }
-
- // Set up target db
- setup.addResourceToCluster(CLUSTER_NAME, WorkflowGenerator.DEFAULT_TGT_DB, _numParitions, "MasterSlave");
- setup.rebalanceStorageCluster(CLUSTER_NAME, WorkflowGenerator.DEFAULT_TGT_DB, _numReplicas);
-
- Map<String, TaskFactory> taskFactoryReg = new HashMap<String, TaskFactory>();
- taskFactoryReg.put("ErrorTask", new TaskFactory() {
- @Override
- public Task createNewTask(TaskCallbackContext context) {
- return new ErrorTask();
- }
- });
-
- // start dummy participants
- for (int i = 0; i < _numNodes; i++) {
- String instanceName = "localhost_" + (12918 + i);
- _participants[i] = new MockParticipantManager(ZK_ADDR, CLUSTER_NAME, instanceName);
-
- // Register a Task state model factory.
- StateMachineEngine stateMachine = _participants[i].getStateMachineEngine();
- stateMachine.registerStateModelFactory("Task", new TaskStateModelFactory(_participants[i],
- taskFactoryReg));
- _participants[i].syncStart();
- }
-
- // start controller
- String controllerName = "controller";
- _controller = new ClusterControllerManager(ZK_ADDR, CLUSTER_NAME, controllerName);
- _controller.syncStart();
-
- // create cluster manager
- _manager =
- HelixManagerFactory.getZKHelixManager(CLUSTER_NAME, "Admin", InstanceType.ADMINISTRATOR,
- ZK_ADDR);
- _manager.connect();
- _driver = new TaskDriver(_manager);
-
- boolean result =
- ClusterStateVerifier
- .verifyByZkCallback(new ClusterStateVerifier.BestPossAndExtViewZkVerifier(ZK_ADDR,
- CLUSTER_NAME));
- Assert.assertTrue(result);
- }
-
-
@Test public void test() throws Exception {
String jobResource = TestHelper.getTestMethodName();
JobConfig.Builder jobBuilder = JobConfig.Builder.fromMap(WorkflowGenerator.DEFAULT_JOB_CONFIG);
jobBuilder.setJobCommandConfigMap(WorkflowGenerator.DEFAULT_COMMAND_CONFIG)
- .setMaxAttemptsPerTask(2).setCommand("ErrorTask").setFailureThreshold(Integer.MAX_VALUE);
+ .setMaxAttemptsPerTask(2).setCommand(MockTask.TASK_COMMAND)
+ .setFailureThreshold(Integer.MAX_VALUE)
+ .setJobCommandConfigMap(ImmutableMap.of(MockTask.THROW_EXCEPTION, "true"));
Workflow flow =
WorkflowGenerator.generateSingleJobWorkflowBuilder(jobResource, jobBuilder).build();
@@ -128,18 +64,4 @@ public class TestTaskRebalancerRetryLimit extends TaskTestBase {
}
}
}
-
- private static class ErrorTask implements Task {
- public ErrorTask() {
- }
-
- @Override
- public TaskResult run() {
- throw new RuntimeException("IGNORABLE exception: test throw exception from task");
- }
-
- @Override
- public void cancel() {
- }
- }
}