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));

Reply via email to