Repository: helix Updated Branches: refs/heads/master 9ddbefcac -> acd902e24
[HELIX-597] Added dropStateModelDef method to HelixAdmin Project: http://git-wip-us.apache.org/repos/asf/helix/repo Commit: http://git-wip-us.apache.org/repos/asf/helix/commit/acd902e2 Tree: http://git-wip-us.apache.org/repos/asf/helix/tree/acd902e2 Diff: http://git-wip-us.apache.org/repos/asf/helix/diff/acd902e2 Branch: refs/heads/master Commit: acd902e2433f65e9864ccf49fcd1a04c36b1f206 Parents: 9ddbefc Author: Vinayak Borkar <[email protected]> Authored: Wed May 20 20:52:18 2015 -0700 Committer: Vinayak Borkar <[email protected]> Committed: Thu May 21 22:05:41 2015 -0700 ---------------------------------------------------------------------- .../main/java/org/apache/helix/HelixAdmin.java | 7 +++++++ .../org/apache/helix/manager/zk/ZKHelixAdmin.java | 18 ++++++++++++++++++ 2 files changed, 25 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/helix/blob/acd902e2/helix-core/src/main/java/org/apache/helix/HelixAdmin.java ---------------------------------------------------------------------- diff --git a/helix-core/src/main/java/org/apache/helix/HelixAdmin.java b/helix-core/src/main/java/org/apache/helix/HelixAdmin.java index 5337cdd..2a8d291 100644 --- a/helix-core/src/main/java/org/apache/helix/HelixAdmin.java +++ b/helix-core/src/main/java/org/apache/helix/HelixAdmin.java @@ -236,6 +236,13 @@ public interface HelixAdmin { void addStateModelDef(String clusterName, String stateModelDef, StateModelDefinition record); /** + * Drop a state model definition + * @param clusterName + * @param stateModelDef + */ + void dropStateModelDef(String clusterName, String stateModelDef); + + /** * Drop a resource from a cluster * @param clusterName * @param resourceName http://git-wip-us.apache.org/repos/asf/helix/blob/acd902e2/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 dee343f..ae84830 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 @@ -721,6 +721,24 @@ public class ZKHelixAdmin implements HelixAdmin { } @Override + public void dropStateModelDef(String clusterName, String stateModelDef) { + if (!ZKUtil.isClusterSetup(clusterName, _zkClient)) { + throw new HelixException("cluster " + clusterName + " is not setup yet"); + } + String stateModelDefPath = HelixUtil.getStateModelDefinitionPath(clusterName); + String stateModelPath = stateModelDefPath + "/" + stateModelDef; + if (!_zkClient.exists(stateModelPath)) { + logger.warn("Skip the operation.State Model directory does not exist:" + stateModelPath); + return; + } + _zkClient.deleteRecursive(stateModelPath); + if (_zkClient.exists(stateModelPath)) { + logger.warn("Unable to delete State Model directory:" + stateModelPath); + throw new HelixException("State model path " + stateModelPath + " not deleted"); + } + } + + @Override public void dropResource(String clusterName, String resourceName) { HelixDataAccessor accessor = new ZKHelixDataAccessor(clusterName, new ZkBaseDataAccessor<ZNRecord>(_zkClient));
