You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@helix.apache.org by zz...@apache.org on 2013/03/20 02:45:34 UTC
git commit: HELIX-47: when drop resource,
remove resource-level config also
Updated Branches:
refs/heads/master 62239a519 -> 34efecb24
HELIX-47: when drop resource, remove resource-level config also
Project: http://git-wip-us.apache.org/repos/asf/incubator-helix/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-helix/commit/34efecb2
Tree: http://git-wip-us.apache.org/repos/asf/incubator-helix/tree/34efecb2
Diff: http://git-wip-us.apache.org/repos/asf/incubator-helix/diff/34efecb2
Branch: refs/heads/master
Commit: 34efecb24ca3bbaa184068ce86c52c7079ac18c8
Parents: 62239a5
Author: zzhang <zz...@uci.edu>
Authored: Tue Mar 19 18:45:27 2013 -0700
Committer: zzhang <zz...@uci.edu>
Committed: Tue Mar 19 18:45:27 2013 -0700
----------------------------------------------------------------------
.../org/apache/helix/manager/zk/ZKHelixAdmin.java | 1 +
.../helix/tools/StateModelConfigGenerator.java | 10 ++--
.../apache/helix/manager/zk/TestZkHelixAdmin.java | 39 ++++++++++++---
.../org/apache/helix/model/TestIdealState.java | 2 -
4 files changed, 38 insertions(+), 14 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/34efecb2/helix-core/src/main/java/org/apache/helix/manager/zk/ZKHelixAdmin.java
----------------------------------------------------------------------
diff --git a/helix-core/src/main/java/org/apache/helix/manager/zk/ZKHelixAdmin.java b/helix-core/src/main/java/org/apache/helix/manager/zk/ZKHelixAdmin.java
index 3af4fbb..73e6045 100644
--- a/helix-core/src/main/java/org/apache/helix/manager/zk/ZKHelixAdmin.java
+++ b/helix-core/src/main/java/org/apache/helix/manager/zk/ZKHelixAdmin.java
@@ -812,6 +812,7 @@ public class ZKHelixAdmin implements HelixAdmin
Builder keyBuilder = accessor.keyBuilder();
accessor.removeProperty(keyBuilder.idealStates(resourceName));
+ accessor.removeProperty(keyBuilder.resourceConfig(resourceName));
}
@Override
http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/34efecb2/helix-core/src/main/java/org/apache/helix/tools/StateModelConfigGenerator.java
----------------------------------------------------------------------
diff --git a/helix-core/src/main/java/org/apache/helix/tools/StateModelConfigGenerator.java b/helix-core/src/main/java/org/apache/helix/tools/StateModelConfigGenerator.java
index dada08a..02b843f 100644
--- a/helix-core/src/main/java/org/apache/helix/tools/StateModelConfigGenerator.java
+++ b/helix-core/src/main/java/org/apache/helix/tools/StateModelConfigGenerator.java
@@ -49,7 +49,7 @@ public class StateModelConfigGenerator
* to last state
*/
- public ZNRecord generateConfigForStorageSchemata()
+ public static ZNRecord generateConfigForStorageSchemata()
{
ZNRecord record = new ZNRecord("STORAGE_DEFAULT_SM_SCHEMATA");
record.setSimpleField(StateModelDefinitionProperty.INITIAL_STATE.toString(),
@@ -118,7 +118,7 @@ public class StateModelConfigGenerator
return record;
}
- public ZNRecord generateConfigForMasterSlave()
+ public static ZNRecord generateConfigForMasterSlave()
{
ZNRecord record = new ZNRecord("MasterSlave");
record.setSimpleField(StateModelDefinitionProperty.INITIAL_STATE.toString(),
@@ -208,7 +208,7 @@ public class StateModelConfigGenerator
// System.out.println(new String(serializer.serialize(record)));
}
- public ZNRecord generateConfigForLeaderStandby()
+ public static ZNRecord generateConfigForLeaderStandby()
{
ZNRecord record = new ZNRecord("LeaderStandby");
record.setSimpleField(StateModelDefinitionProperty.INITIAL_STATE.toString(),
@@ -290,7 +290,7 @@ public class StateModelConfigGenerator
// System.out.println(new String(serializer.serialize(record)));
}
- public ZNRecord generateConfigForOnlineOffline()
+ public static ZNRecord generateConfigForOnlineOffline()
{
ZNRecord record = new ZNRecord("OnlineOffline");
record.setSimpleField(StateModelDefinitionProperty.INITIAL_STATE.toString(),
@@ -352,7 +352,7 @@ public class StateModelConfigGenerator
// System.out.println(new String(serializer.serialize(record)));
}
- public ZNRecord generateConfigForScheduledTaskQueue()
+ public static ZNRecord generateConfigForScheduledTaskQueue()
{
ZNRecord record = new ZNRecord(DefaultSchedulerMessageHandlerFactory.SCHEDULER_TASK_QUEUE);
record.setSimpleField(StateModelDefinitionProperty.INITIAL_STATE.toString(),
http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/34efecb2/helix-core/src/test/java/org/apache/helix/manager/zk/TestZkHelixAdmin.java
----------------------------------------------------------------------
diff --git a/helix-core/src/test/java/org/apache/helix/manager/zk/TestZkHelixAdmin.java b/helix-core/src/test/java/org/apache/helix/manager/zk/TestZkHelixAdmin.java
index 0c5ecaf..d5118c9 100644
--- a/helix-core/src/test/java/org/apache/helix/manager/zk/TestZkHelixAdmin.java
+++ b/helix-core/src/test/java/org/apache/helix/manager/zk/TestZkHelixAdmin.java
@@ -24,18 +24,13 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import org.apache.helix.ConfigScope;
-import org.apache.helix.ConfigScopeBuilder;
-import org.apache.helix.HelixException;
-import org.apache.helix.PropertyPathConfig;
-import org.apache.helix.PropertyType;
-import org.apache.helix.ZNRecord;
-import org.apache.helix.ZkUnitTestBase;
+import org.apache.helix.*;
import org.apache.helix.manager.zk.ZKHelixAdmin;
import org.apache.helix.manager.zk.ZKUtil;
import org.apache.helix.model.ExternalView;
import org.apache.helix.model.InstanceConfig;
import org.apache.helix.model.StateModelDefinition;
+import org.apache.helix.tools.StateModelConfigGenerator;
import org.testng.Assert;
import org.testng.AssertJUnit;
import org.testng.annotations.Test;
@@ -199,4 +194,34 @@ public class TestZkHelixAdmin extends ZkUnitTestBase
System.out.println("END testZkHelixAdmin at " + new Date(System.currentTimeMillis()));
}
+ @Test
+ public void testDropResource() {
+ String className = TestHelper.getTestClassName();
+ String methodName = TestHelper.getTestMethodName();
+ String clusterName = className + "_" + methodName;
+
+ System.out.println("START " + clusterName + " at "
+ + new Date(System.currentTimeMillis()));
+
+ ZKHelixAdmin tool = new ZKHelixAdmin(_gZkClient);
+ tool.addCluster(clusterName, true);
+ Assert.assertTrue(ZKUtil.isClusterSetup(clusterName, _gZkClient), "Cluster should be setup");
+
+ tool.addStateModelDef(clusterName, "MasterSlave", new StateModelDefinition(StateModelConfigGenerator.generateConfigForMasterSlave()));
+ tool.addResource(clusterName, "test-db", 4, "MasterSlave");
+ Map<String, String> resourceConfig = new HashMap<String, String>();
+ resourceConfig.put("key1", "value1");
+ tool.setConfig(new ConfigScopeBuilder().forCluster(clusterName).forResource("test-db").build(), resourceConfig);
+
+ PropertyKey.Builder keyBuilder = new PropertyKey.Builder(clusterName);
+ Assert.assertTrue(_gZkClient.exists(keyBuilder.idealStates("test-db").getPath()), "test-db ideal-state should exist");
+ Assert.assertTrue(_gZkClient.exists(keyBuilder.resourceConfig("test-db").getPath()), "test-db resource config should exist");
+
+ tool.dropResource(clusterName, "test-db");
+ Assert.assertFalse(_gZkClient.exists(keyBuilder.idealStates("test-db").getPath()), "test-db ideal-state should be dropped");
+ Assert.assertFalse(_gZkClient.exists(keyBuilder.resourceConfig("test-db").getPath()), "test-db resource config should be dropped");
+
+ System.out.println("END " + clusterName + " at "
+ + new Date(System.currentTimeMillis()));
+ }
}
http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/34efecb2/helix-core/src/test/java/org/apache/helix/model/TestIdealState.java
----------------------------------------------------------------------
diff --git a/helix-core/src/test/java/org/apache/helix/model/TestIdealState.java b/helix-core/src/test/java/org/apache/helix/model/TestIdealState.java
index 7b9688d..89b02ad 100644
--- a/helix-core/src/test/java/org/apache/helix/model/TestIdealState.java
+++ b/helix-core/src/test/java/org/apache/helix/model/TestIdealState.java
@@ -22,7 +22,6 @@ package org.apache.helix.model;
import java.util.*;
import org.apache.helix.TestHelper;
-import org.apache.helix.model.IdealState;
import org.apache.helix.model.IdealState.IdealStateModeProperty;
import org.testng.Assert;
import org.testng.annotations.Test;
@@ -91,6 +90,5 @@ public class TestIdealState
idealState.getRecord().setListField("test-db_0", preferenceList);
Assert.assertTrue(idealState.isValid(), "should pass since replicas equals to preference-list size");
-
}
}