[ 
https://issues.apache.org/jira/browse/HELIX-592?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14539227#comment-14539227
 ] 

ASF GitHub Bot commented on HELIX-592:
--------------------------------------

Github user kanakb commented on a diff in the pull request:

    https://github.com/apache/helix/pull/27#discussion_r30104417
  
    --- Diff: 
helix-core/src/main/java/org/apache/helix/manager/zk/ZKHelixAdmin.java ---
    @@ -715,14 +715,26 @@ public ExternalView getResourceExternalView(String 
clusterName, String resourceN
       @Override
       public void addStateModelDef(String clusterName, String stateModelDef,
           StateModelDefinition stateModel) {
    +    addStateModelDef(clusterName, stateModelDef, stateModel, false);
    +  }
    +
    +  @Override
    +  public void addStateModelDef(String clusterName, String stateModelDef,
    +      StateModelDefinition stateModel, boolean recreateIfExists) {
         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 exists:" + 
stateModelPath);
    -      throw new HelixException("State model path " + stateModelPath + " 
already exists.");
    +      if (recreateIfExists) {
    +        logger.warn("Operation.State Model directory exists:" + 
stateModelPath +
    +            ", remove and recreate.");
    +        _zkClient.deleteRecursive(stateModelPath);
    +      } else {
    +        logger.warn("Skip the operation.State Model directory exists:" + 
stateModelPath);
    +        return;
    --- End diff --
    
    Why was this changed to no longer throw an exception? It's better to fail 
loudly in methods that return `void`.


> addCluster should respect overwriteExisitng when adding stateModelDefinations
> -----------------------------------------------------------------------------
>
>                 Key: HELIX-592
>                 URL: https://issues.apache.org/jira/browse/HELIX-592
>             Project: Apache Helix
>          Issue Type: Bug
>            Reporter: Congrui Ji
>
> Currently addCluster in clusterSetup.java ignores the overwriteExisitng 
> parameter while adding stateModelDefinations. This causes exception 
> -StateModelDef already exist. please help fix this



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to