You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@helix.apache.org by ka...@apache.org on 2013/10/17 23:43:20 UTC

svn commit: r1533269 [24/27] - in /incubator/helix/site-content: ./ apidocs/assets/ apidocs/reference/ apidocs/reference/org/apache/helix/ apidocs/reference/org/apache/helix/agent/ apidocs/reference/org/apache/helix/alerts/ apidocs/reference/org/apache...

Modified: incubator/helix/site-content/xref/org/apache/helix/manager/zk/ZKHelixAdmin.html
URL: http://svn.apache.org/viewvc/incubator/helix/site-content/xref/org/apache/helix/manager/zk/ZKHelixAdmin.html?rev=1533269&r1=1533268&r2=1533269&view=diff
==============================================================================
--- incubator/helix/site-content/xref/org/apache/helix/manager/zk/ZKHelixAdmin.html (original)
+++ incubator/helix/site-content/xref/org/apache/helix/manager/zk/ZKHelixAdmin.html Thu Oct 17 21:43:06 2013
@@ -625,628 +625,624 @@
 <a class="jxr_linenumber" name="615" href="#615">615</a>       <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/helix/HelixException.html">HelixException</a>(<span class="jxr_string">"cluster "</span> + clusterName + <span class="jxr_string">" is not setup yet"</span>);
 <a class="jxr_linenumber" name="616" href="#616">616</a>     }
 <a class="jxr_linenumber" name="617" href="#617">617</a> 
-<a class="jxr_linenumber" name="618" href="#618">618</a>     <a href="../../../../../org/apache/helix/model/IdealState.html">RebalanceMode</a> mode = RebalanceMode.SEMI_AUTO;
-<a class="jxr_linenumber" name="619" href="#619">619</a>     <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="620" href="#620">620</a>       mode = RebalanceMode.valueOf(rebalancerMode);
-<a class="jxr_linenumber" name="621" href="#621">621</a>     } <strong class="jxr_keyword">catch</strong> (Exception e) {
-<a class="jxr_linenumber" name="622" href="#622">622</a>       logger.error(<span class="jxr_string">""</span>, e);
-<a class="jxr_linenumber" name="623" href="#623">623</a>     }
-<a class="jxr_linenumber" name="624" href="#624">624</a>     <a href="../../../../../org/apache/helix/model/IdealState.html">IdealState</a> idealState = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/helix/model/IdealState.html">IdealState</a>(resourceName);
-<a class="jxr_linenumber" name="625" href="#625">625</a>     idealState.setNumPartitions(partitions);
-<a class="jxr_linenumber" name="626" href="#626">626</a>     idealState.setStateModelDefRef(stateModelRef);
-<a class="jxr_linenumber" name="627" href="#627">627</a>     idealState.setRebalanceMode(mode);
-<a class="jxr_linenumber" name="628" href="#628">628</a>     idealState.setReplicas(<span class="jxr_string">""</span> + 0);
-<a class="jxr_linenumber" name="629" href="#629">629</a>     idealState.setStateModelFactoryName(HelixConstants.DEFAULT_STATE_MODEL_FACTORY);
-<a class="jxr_linenumber" name="630" href="#630">630</a>     <strong class="jxr_keyword">if</strong> (maxPartitionsPerInstance &gt; 0 &amp;&amp; maxPartitionsPerInstance &lt; Integer.MAX_VALUE) {
-<a class="jxr_linenumber" name="631" href="#631">631</a>       idealState.setMaxPartitionsPerInstance(maxPartitionsPerInstance);
-<a class="jxr_linenumber" name="632" href="#632">632</a>     }
-<a class="jxr_linenumber" name="633" href="#633">633</a>     <strong class="jxr_keyword">if</strong> (bucketSize &gt; 0) {
-<a class="jxr_linenumber" name="634" href="#634">634</a>       idealState.setBucketSize(bucketSize);
-<a class="jxr_linenumber" name="635" href="#635">635</a>     }
-<a class="jxr_linenumber" name="636" href="#636">636</a>     addResource(clusterName, resourceName, idealState);
-<a class="jxr_linenumber" name="637" href="#637">637</a>   }
-<a class="jxr_linenumber" name="638" href="#638">638</a> 
-<a class="jxr_linenumber" name="639" href="#639">639</a>   @Override
-<a class="jxr_linenumber" name="640" href="#640">640</a>   <strong class="jxr_keyword">public</strong> List&lt;String&gt; getClusters() {
-<a class="jxr_linenumber" name="641" href="#641">641</a>     List&lt;String&gt; zkToplevelPathes = _zkClient.getChildren(<span class="jxr_string">"/"</span>);
-<a class="jxr_linenumber" name="642" href="#642">642</a>     List&lt;String&gt; result = <strong class="jxr_keyword">new</strong> ArrayList&lt;String&gt;();
-<a class="jxr_linenumber" name="643" href="#643">643</a>     <strong class="jxr_keyword">for</strong> (String pathName : zkToplevelPathes) {
-<a class="jxr_linenumber" name="644" href="#644">644</a>       <strong class="jxr_keyword">if</strong> (ZKUtil.isClusterSetup(pathName, _zkClient)) {
-<a class="jxr_linenumber" name="645" href="#645">645</a>         result.add(pathName);
-<a class="jxr_linenumber" name="646" href="#646">646</a>       }
-<a class="jxr_linenumber" name="647" href="#647">647</a>     }
-<a class="jxr_linenumber" name="648" href="#648">648</a>     <strong class="jxr_keyword">return</strong> result;
-<a class="jxr_linenumber" name="649" href="#649">649</a>   }
-<a class="jxr_linenumber" name="650" href="#650">650</a> 
-<a class="jxr_linenumber" name="651" href="#651">651</a>   @Override
-<a class="jxr_linenumber" name="652" href="#652">652</a>   <strong class="jxr_keyword">public</strong> List&lt;String&gt; getResourcesInCluster(String clusterName) {
-<a class="jxr_linenumber" name="653" href="#653">653</a>     <strong class="jxr_keyword">return</strong> _zkClient.getChildren(HelixUtil.getIdealStatePath(clusterName));
-<a class="jxr_linenumber" name="654" href="#654">654</a>   }
-<a class="jxr_linenumber" name="655" href="#655">655</a> 
-<a class="jxr_linenumber" name="656" href="#656">656</a>   @Override
-<a class="jxr_linenumber" name="657" href="#657">657</a>   <strong class="jxr_keyword">public</strong> <a href="../../../../../org/apache/helix/model/IdealState.html">IdealState</a> getResourceIdealState(String clusterName, String resourceName) {
-<a class="jxr_linenumber" name="658" href="#658">658</a>     <a href="../../../../../org/apache/helix/manager/zk/ZKHelixDataAccessor.html">ZKHelixDataAccessor</a> accessor =
-<a class="jxr_linenumber" name="659" href="#659">659</a>         <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/helix/manager/zk/ZKHelixDataAccessor.html">ZKHelixDataAccessor</a>(clusterName, <strong class="jxr_keyword">new</strong> ZkBaseDataAccessor&lt;ZNRecord&gt;(_zkClient));
-<a class="jxr_linenumber" name="660" href="#660">660</a>     <a href="../../../../../org/apache/helix/PropertyKey.html">Builder</a> keyBuilder = accessor.keyBuilder();
-<a class="jxr_linenumber" name="661" href="#661">661</a> 
-<a class="jxr_linenumber" name="662" href="#662">662</a>     <strong class="jxr_keyword">return</strong> accessor.getProperty(keyBuilder.idealStates(resourceName));
-<a class="jxr_linenumber" name="663" href="#663">663</a>   }
-<a class="jxr_linenumber" name="664" href="#664">664</a> 
-<a class="jxr_linenumber" name="665" href="#665">665</a>   @Override
-<a class="jxr_linenumber" name="666" href="#666">666</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setResourceIdealState(String clusterName, String resourceName, <a href="../../../../../org/apache/helix/model/IdealState.html">IdealState</a> idealState) {
-<a class="jxr_linenumber" name="667" href="#667">667</a>     <a href="../../../../../org/apache/helix/manager/zk/ZKHelixDataAccessor.html">ZKHelixDataAccessor</a> accessor =
-<a class="jxr_linenumber" name="668" href="#668">668</a>         <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/helix/manager/zk/ZKHelixDataAccessor.html">ZKHelixDataAccessor</a>(clusterName, <strong class="jxr_keyword">new</strong> ZkBaseDataAccessor&lt;ZNRecord&gt;(_zkClient));
-<a class="jxr_linenumber" name="669" href="#669">669</a>     <a href="../../../../../org/apache/helix/PropertyKey.html">Builder</a> keyBuilder = accessor.keyBuilder();
-<a class="jxr_linenumber" name="670" href="#670">670</a> 
-<a class="jxr_linenumber" name="671" href="#671">671</a>     accessor.setProperty(keyBuilder.idealStates(resourceName), idealState);
-<a class="jxr_linenumber" name="672" href="#672">672</a>   }
-<a class="jxr_linenumber" name="673" href="#673">673</a> 
-<a class="jxr_linenumber" name="674" href="#674">674</a>   @Override
-<a class="jxr_linenumber" name="675" href="#675">675</a>   <strong class="jxr_keyword">public</strong> <a href="../../../../../org/apache/helix/model/ExternalView.html">ExternalView</a> getResourceExternalView(String clusterName, String resourceName) {
-<a class="jxr_linenumber" name="676" href="#676">676</a>     <a href="../../../../../org/apache/helix/manager/zk/ZKHelixDataAccessor.html">ZKHelixDataAccessor</a> accessor =
-<a class="jxr_linenumber" name="677" href="#677">677</a>         <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/helix/manager/zk/ZKHelixDataAccessor.html">ZKHelixDataAccessor</a>(clusterName, <strong class="jxr_keyword">new</strong> ZkBaseDataAccessor&lt;ZNRecord&gt;(_zkClient));
-<a class="jxr_linenumber" name="678" href="#678">678</a>     <a href="../../../../../org/apache/helix/PropertyKey.html">Builder</a> keyBuilder = accessor.keyBuilder();
-<a class="jxr_linenumber" name="679" href="#679">679</a>     <strong class="jxr_keyword">return</strong> accessor.getProperty(keyBuilder.externalView(resourceName));
-<a class="jxr_linenumber" name="680" href="#680">680</a>   }
-<a class="jxr_linenumber" name="681" href="#681">681</a> 
-<a class="jxr_linenumber" name="682" href="#682">682</a>   @Override
-<a class="jxr_linenumber" name="683" href="#683">683</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> addStateModelDef(String clusterName, String stateModelDef,
-<a class="jxr_linenumber" name="684" href="#684">684</a>       <a href="../../../../../org/apache/helix/model/StateModelDefinition.html">StateModelDefinition</a> stateModel) {
-<a class="jxr_linenumber" name="685" href="#685">685</a>     <strong class="jxr_keyword">if</strong> (!ZKUtil.isClusterSetup(clusterName, _zkClient)) {
-<a class="jxr_linenumber" name="686" href="#686">686</a>       <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/helix/HelixException.html">HelixException</a>(<span class="jxr_string">"cluster "</span> + clusterName + <span class="jxr_string">" is not setup yet"</span>);
-<a class="jxr_linenumber" name="687" href="#687">687</a>     }
-<a class="jxr_linenumber" name="688" href="#688">688</a>     String stateModelDefPath = HelixUtil.getStateModelDefinitionPath(clusterName);
-<a class="jxr_linenumber" name="689" href="#689">689</a>     String stateModelPath = stateModelDefPath + <span class="jxr_string">"/"</span> + stateModelDef;
-<a class="jxr_linenumber" name="690" href="#690">690</a>     <strong class="jxr_keyword">if</strong> (_zkClient.exists(stateModelPath)) {
-<a class="jxr_linenumber" name="691" href="#691">691</a>       logger.warn(<span class="jxr_string">"Skip the operation.State Model directory exists:"</span> + stateModelPath);
-<a class="jxr_linenumber" name="692" href="#692">692</a>       <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/helix/HelixException.html">HelixException</a>(<span class="jxr_string">"State model path "</span> + stateModelPath + <span class="jxr_string">" already exists."</span>);
-<a class="jxr_linenumber" name="693" href="#693">693</a>     }
-<a class="jxr_linenumber" name="694" href="#694">694</a> 
-<a class="jxr_linenumber" name="695" href="#695">695</a>     <a href="../../../../../org/apache/helix/manager/zk/ZKHelixDataAccessor.html">ZKHelixDataAccessor</a> accessor =
-<a class="jxr_linenumber" name="696" href="#696">696</a>         <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/helix/manager/zk/ZKHelixDataAccessor.html">ZKHelixDataAccessor</a>(clusterName, <strong class="jxr_keyword">new</strong> ZkBaseDataAccessor&lt;ZNRecord&gt;(_zkClient));
-<a class="jxr_linenumber" name="697" href="#697">697</a>     <a href="../../../../../org/apache/helix/PropertyKey.html">Builder</a> keyBuilder = accessor.keyBuilder();
-<a class="jxr_linenumber" name="698" href="#698">698</a>     accessor.setProperty(keyBuilder.stateModelDef(stateModel.getId()), stateModel);
-<a class="jxr_linenumber" name="699" href="#699">699</a>   }
-<a class="jxr_linenumber" name="700" href="#700">700</a> 
-<a class="jxr_linenumber" name="701" href="#701">701</a>   @Override
-<a class="jxr_linenumber" name="702" href="#702">702</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> dropResource(String clusterName, String resourceName) {
-<a class="jxr_linenumber" name="703" href="#703">703</a>     <a href="../../../../../org/apache/helix/manager/zk/ZKHelixDataAccessor.html">ZKHelixDataAccessor</a> accessor =
-<a class="jxr_linenumber" name="704" href="#704">704</a>         <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/helix/manager/zk/ZKHelixDataAccessor.html">ZKHelixDataAccessor</a>(clusterName, <strong class="jxr_keyword">new</strong> ZkBaseDataAccessor&lt;ZNRecord&gt;(_zkClient));
-<a class="jxr_linenumber" name="705" href="#705">705</a>     <a href="../../../../../org/apache/helix/PropertyKey.html">Builder</a> keyBuilder = accessor.keyBuilder();
+<a class="jxr_linenumber" name="618" href="#618">618</a>     <a href="../../../../../org/apache/helix/model/IdealState.html">IdealState</a> idealState = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/helix/model/IdealState.html">IdealState</a>(resourceName);
+<a class="jxr_linenumber" name="619" href="#619">619</a>     idealState.setNumPartitions(partitions);
+<a class="jxr_linenumber" name="620" href="#620">620</a>     idealState.setStateModelDefRef(stateModelRef);
+<a class="jxr_linenumber" name="621" href="#621">621</a>     <a href="../../../../../org/apache/helix/model/IdealState.html">RebalanceMode</a> mode =
+<a class="jxr_linenumber" name="622" href="#622">622</a>         idealState.rebalanceModeFromString(rebalancerMode, RebalanceMode.SEMI_AUTO);
+<a class="jxr_linenumber" name="623" href="#623">623</a>     idealState.setRebalanceMode(mode);
+<a class="jxr_linenumber" name="624" href="#624">624</a>     idealState.setReplicas(<span class="jxr_string">""</span> + 0);
+<a class="jxr_linenumber" name="625" href="#625">625</a>     idealState.setStateModelFactoryName(HelixConstants.DEFAULT_STATE_MODEL_FACTORY);
+<a class="jxr_linenumber" name="626" href="#626">626</a>     <strong class="jxr_keyword">if</strong> (maxPartitionsPerInstance &gt; 0 &amp;&amp; maxPartitionsPerInstance &lt; Integer.MAX_VALUE) {
+<a class="jxr_linenumber" name="627" href="#627">627</a>       idealState.setMaxPartitionsPerInstance(maxPartitionsPerInstance);
+<a class="jxr_linenumber" name="628" href="#628">628</a>     }
+<a class="jxr_linenumber" name="629" href="#629">629</a>     <strong class="jxr_keyword">if</strong> (bucketSize &gt; 0) {
+<a class="jxr_linenumber" name="630" href="#630">630</a>       idealState.setBucketSize(bucketSize);
+<a class="jxr_linenumber" name="631" href="#631">631</a>     }
+<a class="jxr_linenumber" name="632" href="#632">632</a>     addResource(clusterName, resourceName, idealState);
+<a class="jxr_linenumber" name="633" href="#633">633</a>   }
+<a class="jxr_linenumber" name="634" href="#634">634</a> 
+<a class="jxr_linenumber" name="635" href="#635">635</a>   @Override
+<a class="jxr_linenumber" name="636" href="#636">636</a>   <strong class="jxr_keyword">public</strong> List&lt;String&gt; getClusters() {
+<a class="jxr_linenumber" name="637" href="#637">637</a>     List&lt;String&gt; zkToplevelPathes = _zkClient.getChildren(<span class="jxr_string">"/"</span>);
+<a class="jxr_linenumber" name="638" href="#638">638</a>     List&lt;String&gt; result = <strong class="jxr_keyword">new</strong> ArrayList&lt;String&gt;();
+<a class="jxr_linenumber" name="639" href="#639">639</a>     <strong class="jxr_keyword">for</strong> (String pathName : zkToplevelPathes) {
+<a class="jxr_linenumber" name="640" href="#640">640</a>       <strong class="jxr_keyword">if</strong> (ZKUtil.isClusterSetup(pathName, _zkClient)) {
+<a class="jxr_linenumber" name="641" href="#641">641</a>         result.add(pathName);
+<a class="jxr_linenumber" name="642" href="#642">642</a>       }
+<a class="jxr_linenumber" name="643" href="#643">643</a>     }
+<a class="jxr_linenumber" name="644" href="#644">644</a>     <strong class="jxr_keyword">return</strong> result;
+<a class="jxr_linenumber" name="645" href="#645">645</a>   }
+<a class="jxr_linenumber" name="646" href="#646">646</a> 
+<a class="jxr_linenumber" name="647" href="#647">647</a>   @Override
+<a class="jxr_linenumber" name="648" href="#648">648</a>   <strong class="jxr_keyword">public</strong> List&lt;String&gt; getResourcesInCluster(String clusterName) {
+<a class="jxr_linenumber" name="649" href="#649">649</a>     <strong class="jxr_keyword">return</strong> _zkClient.getChildren(HelixUtil.getIdealStatePath(clusterName));
+<a class="jxr_linenumber" name="650" href="#650">650</a>   }
+<a class="jxr_linenumber" name="651" href="#651">651</a> 
+<a class="jxr_linenumber" name="652" href="#652">652</a>   @Override
+<a class="jxr_linenumber" name="653" href="#653">653</a>   <strong class="jxr_keyword">public</strong> <a href="../../../../../org/apache/helix/model/IdealState.html">IdealState</a> getResourceIdealState(String clusterName, String resourceName) {
+<a class="jxr_linenumber" name="654" href="#654">654</a>     <a href="../../../../../org/apache/helix/manager/zk/ZKHelixDataAccessor.html">ZKHelixDataAccessor</a> accessor =
+<a class="jxr_linenumber" name="655" href="#655">655</a>         <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/helix/manager/zk/ZKHelixDataAccessor.html">ZKHelixDataAccessor</a>(clusterName, <strong class="jxr_keyword">new</strong> ZkBaseDataAccessor&lt;ZNRecord&gt;(_zkClient));
+<a class="jxr_linenumber" name="656" href="#656">656</a>     <a href="../../../../../org/apache/helix/PropertyKey.html">Builder</a> keyBuilder = accessor.keyBuilder();
+<a class="jxr_linenumber" name="657" href="#657">657</a> 
+<a class="jxr_linenumber" name="658" href="#658">658</a>     <strong class="jxr_keyword">return</strong> accessor.getProperty(keyBuilder.idealStates(resourceName));
+<a class="jxr_linenumber" name="659" href="#659">659</a>   }
+<a class="jxr_linenumber" name="660" href="#660">660</a> 
+<a class="jxr_linenumber" name="661" href="#661">661</a>   @Override
+<a class="jxr_linenumber" name="662" href="#662">662</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setResourceIdealState(String clusterName, String resourceName, <a href="../../../../../org/apache/helix/model/IdealState.html">IdealState</a> idealState) {
+<a class="jxr_linenumber" name="663" href="#663">663</a>     <a href="../../../../../org/apache/helix/manager/zk/ZKHelixDataAccessor.html">ZKHelixDataAccessor</a> accessor =
+<a class="jxr_linenumber" name="664" href="#664">664</a>         <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/helix/manager/zk/ZKHelixDataAccessor.html">ZKHelixDataAccessor</a>(clusterName, <strong class="jxr_keyword">new</strong> ZkBaseDataAccessor&lt;ZNRecord&gt;(_zkClient));
+<a class="jxr_linenumber" name="665" href="#665">665</a>     <a href="../../../../../org/apache/helix/PropertyKey.html">Builder</a> keyBuilder = accessor.keyBuilder();
+<a class="jxr_linenumber" name="666" href="#666">666</a> 
+<a class="jxr_linenumber" name="667" href="#667">667</a>     accessor.setProperty(keyBuilder.idealStates(resourceName), idealState);
+<a class="jxr_linenumber" name="668" href="#668">668</a>   }
+<a class="jxr_linenumber" name="669" href="#669">669</a> 
+<a class="jxr_linenumber" name="670" href="#670">670</a>   @Override
+<a class="jxr_linenumber" name="671" href="#671">671</a>   <strong class="jxr_keyword">public</strong> <a href="../../../../../org/apache/helix/model/ExternalView.html">ExternalView</a> getResourceExternalView(String clusterName, String resourceName) {
+<a class="jxr_linenumber" name="672" href="#672">672</a>     <a href="../../../../../org/apache/helix/manager/zk/ZKHelixDataAccessor.html">ZKHelixDataAccessor</a> accessor =
+<a class="jxr_linenumber" name="673" href="#673">673</a>         <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/helix/manager/zk/ZKHelixDataAccessor.html">ZKHelixDataAccessor</a>(clusterName, <strong class="jxr_keyword">new</strong> ZkBaseDataAccessor&lt;ZNRecord&gt;(_zkClient));
+<a class="jxr_linenumber" name="674" href="#674">674</a>     <a href="../../../../../org/apache/helix/PropertyKey.html">Builder</a> keyBuilder = accessor.keyBuilder();
+<a class="jxr_linenumber" name="675" href="#675">675</a>     <strong class="jxr_keyword">return</strong> accessor.getProperty(keyBuilder.externalView(resourceName));
+<a class="jxr_linenumber" name="676" href="#676">676</a>   }
+<a class="jxr_linenumber" name="677" href="#677">677</a> 
+<a class="jxr_linenumber" name="678" href="#678">678</a>   @Override
+<a class="jxr_linenumber" name="679" href="#679">679</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> addStateModelDef(String clusterName, String stateModelDef,
+<a class="jxr_linenumber" name="680" href="#680">680</a>       <a href="../../../../../org/apache/helix/model/StateModelDefinition.html">StateModelDefinition</a> stateModel) {
+<a class="jxr_linenumber" name="681" href="#681">681</a>     <strong class="jxr_keyword">if</strong> (!ZKUtil.isClusterSetup(clusterName, _zkClient)) {
+<a class="jxr_linenumber" name="682" href="#682">682</a>       <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/helix/HelixException.html">HelixException</a>(<span class="jxr_string">"cluster "</span> + clusterName + <span class="jxr_string">" is not setup yet"</span>);
+<a class="jxr_linenumber" name="683" href="#683">683</a>     }
+<a class="jxr_linenumber" name="684" href="#684">684</a>     String stateModelDefPath = HelixUtil.getStateModelDefinitionPath(clusterName);
+<a class="jxr_linenumber" name="685" href="#685">685</a>     String stateModelPath = stateModelDefPath + <span class="jxr_string">"/"</span> + stateModelDef;
+<a class="jxr_linenumber" name="686" href="#686">686</a>     <strong class="jxr_keyword">if</strong> (_zkClient.exists(stateModelPath)) {
+<a class="jxr_linenumber" name="687" href="#687">687</a>       logger.warn(<span class="jxr_string">"Skip the operation.State Model directory exists:"</span> + stateModelPath);
+<a class="jxr_linenumber" name="688" href="#688">688</a>       <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/helix/HelixException.html">HelixException</a>(<span class="jxr_string">"State model path "</span> + stateModelPath + <span class="jxr_string">" already exists."</span>);
+<a class="jxr_linenumber" name="689" href="#689">689</a>     }
+<a class="jxr_linenumber" name="690" href="#690">690</a> 
+<a class="jxr_linenumber" name="691" href="#691">691</a>     <a href="../../../../../org/apache/helix/manager/zk/ZKHelixDataAccessor.html">ZKHelixDataAccessor</a> accessor =
+<a class="jxr_linenumber" name="692" href="#692">692</a>         <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/helix/manager/zk/ZKHelixDataAccessor.html">ZKHelixDataAccessor</a>(clusterName, <strong class="jxr_keyword">new</strong> ZkBaseDataAccessor&lt;ZNRecord&gt;(_zkClient));
+<a class="jxr_linenumber" name="693" href="#693">693</a>     <a href="../../../../../org/apache/helix/PropertyKey.html">Builder</a> keyBuilder = accessor.keyBuilder();
+<a class="jxr_linenumber" name="694" href="#694">694</a>     accessor.setProperty(keyBuilder.stateModelDef(stateModel.getId()), stateModel);
+<a class="jxr_linenumber" name="695" href="#695">695</a>   }
+<a class="jxr_linenumber" name="696" href="#696">696</a> 
+<a class="jxr_linenumber" name="697" href="#697">697</a>   @Override
+<a class="jxr_linenumber" name="698" href="#698">698</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> dropResource(String clusterName, String resourceName) {
+<a class="jxr_linenumber" name="699" href="#699">699</a>     <a href="../../../../../org/apache/helix/manager/zk/ZKHelixDataAccessor.html">ZKHelixDataAccessor</a> accessor =
+<a class="jxr_linenumber" name="700" href="#700">700</a>         <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/helix/manager/zk/ZKHelixDataAccessor.html">ZKHelixDataAccessor</a>(clusterName, <strong class="jxr_keyword">new</strong> ZkBaseDataAccessor&lt;ZNRecord&gt;(_zkClient));
+<a class="jxr_linenumber" name="701" href="#701">701</a>     <a href="../../../../../org/apache/helix/PropertyKey.html">Builder</a> keyBuilder = accessor.keyBuilder();
+<a class="jxr_linenumber" name="702" href="#702">702</a> 
+<a class="jxr_linenumber" name="703" href="#703">703</a>     accessor.removeProperty(keyBuilder.idealStates(resourceName));
+<a class="jxr_linenumber" name="704" href="#704">704</a>     accessor.removeProperty(keyBuilder.resourceConfig(resourceName));
+<a class="jxr_linenumber" name="705" href="#705">705</a>   }
 <a class="jxr_linenumber" name="706" href="#706">706</a> 
-<a class="jxr_linenumber" name="707" href="#707">707</a>     accessor.removeProperty(keyBuilder.idealStates(resourceName));
-<a class="jxr_linenumber" name="708" href="#708">708</a>     accessor.removeProperty(keyBuilder.resourceConfig(resourceName));
-<a class="jxr_linenumber" name="709" href="#709">709</a>   }
-<a class="jxr_linenumber" name="710" href="#710">710</a> 
-<a class="jxr_linenumber" name="711" href="#711">711</a>   @Override
-<a class="jxr_linenumber" name="712" href="#712">712</a>   <strong class="jxr_keyword">public</strong> List&lt;String&gt; getStateModelDefs(String clusterName) {
-<a class="jxr_linenumber" name="713" href="#713">713</a>     <strong class="jxr_keyword">return</strong> _zkClient.getChildren(HelixUtil.getStateModelDefinitionPath(clusterName));
-<a class="jxr_linenumber" name="714" href="#714">714</a>   }
-<a class="jxr_linenumber" name="715" href="#715">715</a> 
-<a class="jxr_linenumber" name="716" href="#716">716</a>   @Override
-<a class="jxr_linenumber" name="717" href="#717">717</a>   <strong class="jxr_keyword">public</strong> <a href="../../../../../org/apache/helix/model/StateModelDefinition.html">StateModelDefinition</a> getStateModelDef(String clusterName, String stateModelName) {
-<a class="jxr_linenumber" name="718" href="#718">718</a>     <a href="../../../../../org/apache/helix/manager/zk/ZKHelixDataAccessor.html">ZKHelixDataAccessor</a> accessor =
-<a class="jxr_linenumber" name="719" href="#719">719</a>         <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/helix/manager/zk/ZKHelixDataAccessor.html">ZKHelixDataAccessor</a>(clusterName, <strong class="jxr_keyword">new</strong> ZkBaseDataAccessor&lt;ZNRecord&gt;(_zkClient));
-<a class="jxr_linenumber" name="720" href="#720">720</a>     <a href="../../../../../org/apache/helix/PropertyKey.html">Builder</a> keyBuilder = accessor.keyBuilder();
-<a class="jxr_linenumber" name="721" href="#721">721</a> 
-<a class="jxr_linenumber" name="722" href="#722">722</a>     <strong class="jxr_keyword">return</strong> accessor.getProperty(keyBuilder.stateModelDef(stateModelName));
-<a class="jxr_linenumber" name="723" href="#723">723</a>   }
-<a class="jxr_linenumber" name="724" href="#724">724</a> 
-<a class="jxr_linenumber" name="725" href="#725">725</a>   @Override
-<a class="jxr_linenumber" name="726" href="#726">726</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> addStat(String clusterName, <strong class="jxr_keyword">final</strong> String statName) {
-<a class="jxr_linenumber" name="727" href="#727">727</a>     <strong class="jxr_keyword">if</strong> (!ZKUtil.isClusterSetup(clusterName, _zkClient)) {
-<a class="jxr_linenumber" name="728" href="#728">728</a>       <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/helix/HelixException.html">HelixException</a>(<span class="jxr_string">"cluster "</span> + clusterName + <span class="jxr_string">" is not setup yet"</span>);
-<a class="jxr_linenumber" name="729" href="#729">729</a>     }
+<a class="jxr_linenumber" name="707" href="#707">707</a>   @Override
+<a class="jxr_linenumber" name="708" href="#708">708</a>   <strong class="jxr_keyword">public</strong> List&lt;String&gt; getStateModelDefs(String clusterName) {
+<a class="jxr_linenumber" name="709" href="#709">709</a>     <strong class="jxr_keyword">return</strong> _zkClient.getChildren(HelixUtil.getStateModelDefinitionPath(clusterName));
+<a class="jxr_linenumber" name="710" href="#710">710</a>   }
+<a class="jxr_linenumber" name="711" href="#711">711</a> 
+<a class="jxr_linenumber" name="712" href="#712">712</a>   @Override
+<a class="jxr_linenumber" name="713" href="#713">713</a>   <strong class="jxr_keyword">public</strong> <a href="../../../../../org/apache/helix/model/StateModelDefinition.html">StateModelDefinition</a> getStateModelDef(String clusterName, String stateModelName) {
+<a class="jxr_linenumber" name="714" href="#714">714</a>     <a href="../../../../../org/apache/helix/manager/zk/ZKHelixDataAccessor.html">ZKHelixDataAccessor</a> accessor =
+<a class="jxr_linenumber" name="715" href="#715">715</a>         <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/helix/manager/zk/ZKHelixDataAccessor.html">ZKHelixDataAccessor</a>(clusterName, <strong class="jxr_keyword">new</strong> ZkBaseDataAccessor&lt;ZNRecord&gt;(_zkClient));
+<a class="jxr_linenumber" name="716" href="#716">716</a>     <a href="../../../../../org/apache/helix/PropertyKey.html">Builder</a> keyBuilder = accessor.keyBuilder();
+<a class="jxr_linenumber" name="717" href="#717">717</a> 
+<a class="jxr_linenumber" name="718" href="#718">718</a>     <strong class="jxr_keyword">return</strong> accessor.getProperty(keyBuilder.stateModelDef(stateModelName));
+<a class="jxr_linenumber" name="719" href="#719">719</a>   }
+<a class="jxr_linenumber" name="720" href="#720">720</a> 
+<a class="jxr_linenumber" name="721" href="#721">721</a>   @Override
+<a class="jxr_linenumber" name="722" href="#722">722</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> addStat(String clusterName, <strong class="jxr_keyword">final</strong> String statName) {
+<a class="jxr_linenumber" name="723" href="#723">723</a>     <strong class="jxr_keyword">if</strong> (!ZKUtil.isClusterSetup(clusterName, _zkClient)) {
+<a class="jxr_linenumber" name="724" href="#724">724</a>       <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/helix/HelixException.html">HelixException</a>(<span class="jxr_string">"cluster "</span> + clusterName + <span class="jxr_string">" is not setup yet"</span>);
+<a class="jxr_linenumber" name="725" href="#725">725</a>     }
+<a class="jxr_linenumber" name="726" href="#726">726</a> 
+<a class="jxr_linenumber" name="727" href="#727">727</a>     String persistentStatsPath =
+<a class="jxr_linenumber" name="728" href="#728">728</a>         PropertyPathConfig.getPath(PropertyType.PERSISTENTSTATS, clusterName);
+<a class="jxr_linenumber" name="729" href="#729">729</a>     ZkBaseDataAccessor&lt;ZNRecord&gt; baseAccessor = <strong class="jxr_keyword">new</strong> ZkBaseDataAccessor&lt;ZNRecord&gt;(_zkClient);
 <a class="jxr_linenumber" name="730" href="#730">730</a> 
-<a class="jxr_linenumber" name="731" href="#731">731</a>     String persistentStatsPath =
-<a class="jxr_linenumber" name="732" href="#732">732</a>         PropertyPathConfig.getPath(PropertyType.PERSISTENTSTATS, clusterName);
-<a class="jxr_linenumber" name="733" href="#733">733</a>     ZkBaseDataAccessor&lt;ZNRecord&gt; baseAccessor = <strong class="jxr_keyword">new</strong> ZkBaseDataAccessor&lt;ZNRecord&gt;(_zkClient);
-<a class="jxr_linenumber" name="734" href="#734">734</a> 
-<a class="jxr_linenumber" name="735" href="#735">735</a>     baseAccessor.update(persistentStatsPath, <strong class="jxr_keyword">new</strong> DataUpdater&lt;ZNRecord&gt;() {
-<a class="jxr_linenumber" name="736" href="#736">736</a> 
-<a class="jxr_linenumber" name="737" href="#737">737</a>       @Override
-<a class="jxr_linenumber" name="738" href="#738">738</a>       <strong class="jxr_keyword">public</strong> <a href="../../../../../org/apache/helix/ZNRecord.html">ZNRecord</a> update(<a href="../../../../../org/apache/helix/ZNRecord.html">ZNRecord</a> statsRec) {
-<a class="jxr_linenumber" name="739" href="#739">739</a>         <strong class="jxr_keyword">if</strong> (statsRec == <strong class="jxr_keyword">null</strong>) {
-<a class="jxr_linenumber" name="740" href="#740">740</a>           <em class="jxr_comment">// TODO: fix naming of this record, if it matters</em>
-<a class="jxr_linenumber" name="741" href="#741">741</a>           statsRec = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/helix/ZNRecord.html">ZNRecord</a>(PersistentStats.nodeName);
-<a class="jxr_linenumber" name="742" href="#742">742</a>         }
-<a class="jxr_linenumber" name="743" href="#743">743</a> 
-<a class="jxr_linenumber" name="744" href="#744">744</a>         Map&lt;String, Map&lt;String, String&gt;&gt; currStatMap = statsRec.getMapFields();
-<a class="jxr_linenumber" name="745" href="#745">745</a>         Map&lt;String, Map&lt;String, String&gt;&gt; newStatMap = StatsHolder.parseStat(statName);
-<a class="jxr_linenumber" name="746" href="#746">746</a>         <strong class="jxr_keyword">for</strong> (String newStat : newStatMap.keySet()) {
-<a class="jxr_linenumber" name="747" href="#747">747</a>           <strong class="jxr_keyword">if</strong> (!currStatMap.containsKey(newStat)) {
-<a class="jxr_linenumber" name="748" href="#748">748</a>             currStatMap.put(newStat, newStatMap.get(newStat));
-<a class="jxr_linenumber" name="749" href="#749">749</a>           }
-<a class="jxr_linenumber" name="750" href="#750">750</a>         }
-<a class="jxr_linenumber" name="751" href="#751">751</a>         statsRec.setMapFields(currStatMap);
-<a class="jxr_linenumber" name="752" href="#752">752</a> 
-<a class="jxr_linenumber" name="753" href="#753">753</a>         <strong class="jxr_keyword">return</strong> statsRec;
-<a class="jxr_linenumber" name="754" href="#754">754</a>       }
-<a class="jxr_linenumber" name="755" href="#755">755</a>     }, AccessOption.PERSISTENT);
-<a class="jxr_linenumber" name="756" href="#756">756</a>   }
-<a class="jxr_linenumber" name="757" href="#757">757</a> 
-<a class="jxr_linenumber" name="758" href="#758">758</a>   @Override
-<a class="jxr_linenumber" name="759" href="#759">759</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> addAlert(<strong class="jxr_keyword">final</strong> String clusterName, <strong class="jxr_keyword">final</strong> String alertName) {
-<a class="jxr_linenumber" name="760" href="#760">760</a>     <strong class="jxr_keyword">if</strong> (!ZKUtil.isClusterSetup(clusterName, _zkClient)) {
-<a class="jxr_linenumber" name="761" href="#761">761</a>       <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/helix/HelixException.html">HelixException</a>(<span class="jxr_string">"cluster "</span> + clusterName + <span class="jxr_string">" is not setup yet"</span>);
-<a class="jxr_linenumber" name="762" href="#762">762</a>     }
+<a class="jxr_linenumber" name="731" href="#731">731</a>     baseAccessor.update(persistentStatsPath, <strong class="jxr_keyword">new</strong> DataUpdater&lt;ZNRecord&gt;() {
+<a class="jxr_linenumber" name="732" href="#732">732</a> 
+<a class="jxr_linenumber" name="733" href="#733">733</a>       @Override
+<a class="jxr_linenumber" name="734" href="#734">734</a>       <strong class="jxr_keyword">public</strong> <a href="../../../../../org/apache/helix/ZNRecord.html">ZNRecord</a> update(<a href="../../../../../org/apache/helix/ZNRecord.html">ZNRecord</a> statsRec) {
+<a class="jxr_linenumber" name="735" href="#735">735</a>         <strong class="jxr_keyword">if</strong> (statsRec == <strong class="jxr_keyword">null</strong>) {
+<a class="jxr_linenumber" name="736" href="#736">736</a>           <em class="jxr_comment">// TODO: fix naming of this record, if it matters</em>
+<a class="jxr_linenumber" name="737" href="#737">737</a>           statsRec = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/helix/ZNRecord.html">ZNRecord</a>(PersistentStats.nodeName);
+<a class="jxr_linenumber" name="738" href="#738">738</a>         }
+<a class="jxr_linenumber" name="739" href="#739">739</a> 
+<a class="jxr_linenumber" name="740" href="#740">740</a>         Map&lt;String, Map&lt;String, String&gt;&gt; currStatMap = statsRec.getMapFields();
+<a class="jxr_linenumber" name="741" href="#741">741</a>         Map&lt;String, Map&lt;String, String&gt;&gt; newStatMap = StatsHolder.parseStat(statName);
+<a class="jxr_linenumber" name="742" href="#742">742</a>         <strong class="jxr_keyword">for</strong> (String newStat : newStatMap.keySet()) {
+<a class="jxr_linenumber" name="743" href="#743">743</a>           <strong class="jxr_keyword">if</strong> (!currStatMap.containsKey(newStat)) {
+<a class="jxr_linenumber" name="744" href="#744">744</a>             currStatMap.put(newStat, newStatMap.get(newStat));
+<a class="jxr_linenumber" name="745" href="#745">745</a>           }
+<a class="jxr_linenumber" name="746" href="#746">746</a>         }
+<a class="jxr_linenumber" name="747" href="#747">747</a>         statsRec.setMapFields(currStatMap);
+<a class="jxr_linenumber" name="748" href="#748">748</a> 
+<a class="jxr_linenumber" name="749" href="#749">749</a>         <strong class="jxr_keyword">return</strong> statsRec;
+<a class="jxr_linenumber" name="750" href="#750">750</a>       }
+<a class="jxr_linenumber" name="751" href="#751">751</a>     }, AccessOption.PERSISTENT);
+<a class="jxr_linenumber" name="752" href="#752">752</a>   }
+<a class="jxr_linenumber" name="753" href="#753">753</a> 
+<a class="jxr_linenumber" name="754" href="#754">754</a>   @Override
+<a class="jxr_linenumber" name="755" href="#755">755</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> addAlert(<strong class="jxr_keyword">final</strong> String clusterName, <strong class="jxr_keyword">final</strong> String alertName) {
+<a class="jxr_linenumber" name="756" href="#756">756</a>     <strong class="jxr_keyword">if</strong> (!ZKUtil.isClusterSetup(clusterName, _zkClient)) {
+<a class="jxr_linenumber" name="757" href="#757">757</a>       <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/helix/HelixException.html">HelixException</a>(<span class="jxr_string">"cluster "</span> + clusterName + <span class="jxr_string">" is not setup yet"</span>);
+<a class="jxr_linenumber" name="758" href="#758">758</a>     }
+<a class="jxr_linenumber" name="759" href="#759">759</a> 
+<a class="jxr_linenumber" name="760" href="#760">760</a>     ZkBaseDataAccessor&lt;ZNRecord&gt; baseAccessor = <strong class="jxr_keyword">new</strong> ZkBaseDataAccessor&lt;ZNRecord&gt;(_zkClient);
+<a class="jxr_linenumber" name="761" href="#761">761</a> 
+<a class="jxr_linenumber" name="762" href="#762">762</a>     String alertsPath = PropertyPathConfig.getPath(PropertyType.ALERTS, clusterName);
 <a class="jxr_linenumber" name="763" href="#763">763</a> 
-<a class="jxr_linenumber" name="764" href="#764">764</a>     ZkBaseDataAccessor&lt;ZNRecord&gt; baseAccessor = <strong class="jxr_keyword">new</strong> ZkBaseDataAccessor&lt;ZNRecord&gt;(_zkClient);
+<a class="jxr_linenumber" name="764" href="#764">764</a>     baseAccessor.update(alertsPath, <strong class="jxr_keyword">new</strong> DataUpdater&lt;ZNRecord&gt;() {
 <a class="jxr_linenumber" name="765" href="#765">765</a> 
-<a class="jxr_linenumber" name="766" href="#766">766</a>     String alertsPath = PropertyPathConfig.getPath(PropertyType.ALERTS, clusterName);
-<a class="jxr_linenumber" name="767" href="#767">767</a> 
-<a class="jxr_linenumber" name="768" href="#768">768</a>     baseAccessor.update(alertsPath, <strong class="jxr_keyword">new</strong> DataUpdater&lt;ZNRecord&gt;() {
-<a class="jxr_linenumber" name="769" href="#769">769</a> 
-<a class="jxr_linenumber" name="770" href="#770">770</a>       @Override
-<a class="jxr_linenumber" name="771" href="#771">771</a>       <strong class="jxr_keyword">public</strong> <a href="../../../../../org/apache/helix/ZNRecord.html">ZNRecord</a> update(<a href="../../../../../org/apache/helix/ZNRecord.html">ZNRecord</a> alertsRec) {
-<a class="jxr_linenumber" name="772" href="#772">772</a>         <strong class="jxr_keyword">if</strong> (alertsRec == <strong class="jxr_keyword">null</strong>) {
-<a class="jxr_linenumber" name="773" href="#773">773</a>           <em class="jxr_comment">// TODO: fix naming of this record, if it matters</em>
-<a class="jxr_linenumber" name="774" href="#774">774</a>           alertsRec = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/helix/ZNRecord.html">ZNRecord</a>(Alerts.nodeName);
-<a class="jxr_linenumber" name="775" href="#775">775</a> 
-<a class="jxr_linenumber" name="776" href="#776">776</a>         }
+<a class="jxr_linenumber" name="766" href="#766">766</a>       @Override
+<a class="jxr_linenumber" name="767" href="#767">767</a>       <strong class="jxr_keyword">public</strong> <a href="../../../../../org/apache/helix/ZNRecord.html">ZNRecord</a> update(<a href="../../../../../org/apache/helix/ZNRecord.html">ZNRecord</a> alertsRec) {
+<a class="jxr_linenumber" name="768" href="#768">768</a>         <strong class="jxr_keyword">if</strong> (alertsRec == <strong class="jxr_keyword">null</strong>) {
+<a class="jxr_linenumber" name="769" href="#769">769</a>           <em class="jxr_comment">// TODO: fix naming of this record, if it matters</em>
+<a class="jxr_linenumber" name="770" href="#770">770</a>           alertsRec = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/helix/ZNRecord.html">ZNRecord</a>(Alerts.nodeName);
+<a class="jxr_linenumber" name="771" href="#771">771</a> 
+<a class="jxr_linenumber" name="772" href="#772">772</a>         }
+<a class="jxr_linenumber" name="773" href="#773">773</a> 
+<a class="jxr_linenumber" name="774" href="#774">774</a>         Map&lt;String, Map&lt;String, String&gt;&gt; currAlertMap = alertsRec.getMapFields();
+<a class="jxr_linenumber" name="775" href="#775">775</a>         StringBuilder newStatName = <strong class="jxr_keyword">new</strong> StringBuilder();
+<a class="jxr_linenumber" name="776" href="#776">776</a>         Map&lt;String, String&gt; newAlertMap = <strong class="jxr_keyword">new</strong> HashMap&lt;String, String&gt;();
 <a class="jxr_linenumber" name="777" href="#777">777</a> 
-<a class="jxr_linenumber" name="778" href="#778">778</a>         Map&lt;String, Map&lt;String, String&gt;&gt; currAlertMap = alertsRec.getMapFields();
-<a class="jxr_linenumber" name="779" href="#779">779</a>         StringBuilder newStatName = <strong class="jxr_keyword">new</strong> StringBuilder();
-<a class="jxr_linenumber" name="780" href="#780">780</a>         Map&lt;String, String&gt; newAlertMap = <strong class="jxr_keyword">new</strong> HashMap&lt;String, String&gt;();
-<a class="jxr_linenumber" name="781" href="#781">781</a> 
-<a class="jxr_linenumber" name="782" href="#782">782</a>         <em class="jxr_comment">// use AlertsHolder to get map of new stats and map for this alert</em>
-<a class="jxr_linenumber" name="783" href="#783">783</a>         AlertsHolder.parseAlert(alertName, newStatName, newAlertMap);
-<a class="jxr_linenumber" name="784" href="#784">784</a> 
-<a class="jxr_linenumber" name="785" href="#785">785</a>         <em class="jxr_comment">// add stat</em>
-<a class="jxr_linenumber" name="786" href="#786">786</a>         addStat(clusterName, newStatName.toString());
-<a class="jxr_linenumber" name="787" href="#787">787</a> 
-<a class="jxr_linenumber" name="788" href="#788">788</a>         <em class="jxr_comment">// add alert</em>
-<a class="jxr_linenumber" name="789" href="#789">789</a>         currAlertMap.put(alertName, newAlertMap);
-<a class="jxr_linenumber" name="790" href="#790">790</a> 
-<a class="jxr_linenumber" name="791" href="#791">791</a>         alertsRec.setMapFields(currAlertMap);
-<a class="jxr_linenumber" name="792" href="#792">792</a> 
-<a class="jxr_linenumber" name="793" href="#793">793</a>         <strong class="jxr_keyword">return</strong> alertsRec;
-<a class="jxr_linenumber" name="794" href="#794">794</a>       }
-<a class="jxr_linenumber" name="795" href="#795">795</a>     }, AccessOption.PERSISTENT);
-<a class="jxr_linenumber" name="796" href="#796">796</a>   }
-<a class="jxr_linenumber" name="797" href="#797">797</a> 
-<a class="jxr_linenumber" name="798" href="#798">798</a>   @Override
-<a class="jxr_linenumber" name="799" href="#799">799</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> dropCluster(String clusterName) {
-<a class="jxr_linenumber" name="800" href="#800">800</a>     logger.info(<span class="jxr_string">"Deleting cluster "</span> + clusterName);
-<a class="jxr_linenumber" name="801" href="#801">801</a>     <a href="../../../../../org/apache/helix/manager/zk/ZKHelixDataAccessor.html">ZKHelixDataAccessor</a> accessor =
-<a class="jxr_linenumber" name="802" href="#802">802</a>         <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/helix/manager/zk/ZKHelixDataAccessor.html">ZKHelixDataAccessor</a>(clusterName, <strong class="jxr_keyword">new</strong> ZkBaseDataAccessor&lt;ZNRecord&gt;(_zkClient));
-<a class="jxr_linenumber" name="803" href="#803">803</a>     <a href="../../../../../org/apache/helix/PropertyKey.html">Builder</a> keyBuilder = accessor.keyBuilder();
-<a class="jxr_linenumber" name="804" href="#804">804</a> 
-<a class="jxr_linenumber" name="805" href="#805">805</a>     String root = <span class="jxr_string">"/"</span> + clusterName;
-<a class="jxr_linenumber" name="806" href="#806">806</a>     <strong class="jxr_keyword">if</strong> (accessor.getChildNames(keyBuilder.liveInstances()).size() &gt; 0) {
-<a class="jxr_linenumber" name="807" href="#807">807</a>       <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/helix/HelixException.html">HelixException</a>(
-<a class="jxr_linenumber" name="808" href="#808">808</a>           <span class="jxr_string">"There are still live instances in the cluster, shut them down first."</span>);
+<a class="jxr_linenumber" name="778" href="#778">778</a>         <em class="jxr_comment">// use AlertsHolder to get map of new stats and map for this alert</em>
+<a class="jxr_linenumber" name="779" href="#779">779</a>         AlertsHolder.parseAlert(alertName, newStatName, newAlertMap);
+<a class="jxr_linenumber" name="780" href="#780">780</a> 
+<a class="jxr_linenumber" name="781" href="#781">781</a>         <em class="jxr_comment">// add stat</em>
+<a class="jxr_linenumber" name="782" href="#782">782</a>         addStat(clusterName, newStatName.toString());
+<a class="jxr_linenumber" name="783" href="#783">783</a> 
+<a class="jxr_linenumber" name="784" href="#784">784</a>         <em class="jxr_comment">// add alert</em>
+<a class="jxr_linenumber" name="785" href="#785">785</a>         currAlertMap.put(alertName, newAlertMap);
+<a class="jxr_linenumber" name="786" href="#786">786</a> 
+<a class="jxr_linenumber" name="787" href="#787">787</a>         alertsRec.setMapFields(currAlertMap);
+<a class="jxr_linenumber" name="788" href="#788">788</a> 
+<a class="jxr_linenumber" name="789" href="#789">789</a>         <strong class="jxr_keyword">return</strong> alertsRec;
+<a class="jxr_linenumber" name="790" href="#790">790</a>       }
+<a class="jxr_linenumber" name="791" href="#791">791</a>     }, AccessOption.PERSISTENT);
+<a class="jxr_linenumber" name="792" href="#792">792</a>   }
+<a class="jxr_linenumber" name="793" href="#793">793</a> 
+<a class="jxr_linenumber" name="794" href="#794">794</a>   @Override
+<a class="jxr_linenumber" name="795" href="#795">795</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> dropCluster(String clusterName) {
+<a class="jxr_linenumber" name="796" href="#796">796</a>     logger.info(<span class="jxr_string">"Deleting cluster "</span> + clusterName);
+<a class="jxr_linenumber" name="797" href="#797">797</a>     <a href="../../../../../org/apache/helix/manager/zk/ZKHelixDataAccessor.html">ZKHelixDataAccessor</a> accessor =
+<a class="jxr_linenumber" name="798" href="#798">798</a>         <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/helix/manager/zk/ZKHelixDataAccessor.html">ZKHelixDataAccessor</a>(clusterName, <strong class="jxr_keyword">new</strong> ZkBaseDataAccessor&lt;ZNRecord&gt;(_zkClient));
+<a class="jxr_linenumber" name="799" href="#799">799</a>     <a href="../../../../../org/apache/helix/PropertyKey.html">Builder</a> keyBuilder = accessor.keyBuilder();
+<a class="jxr_linenumber" name="800" href="#800">800</a> 
+<a class="jxr_linenumber" name="801" href="#801">801</a>     String root = <span class="jxr_string">"/"</span> + clusterName;
+<a class="jxr_linenumber" name="802" href="#802">802</a>     <strong class="jxr_keyword">if</strong> (accessor.getChildNames(keyBuilder.liveInstances()).size() &gt; 0) {
+<a class="jxr_linenumber" name="803" href="#803">803</a>       <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/helix/HelixException.html">HelixException</a>(
+<a class="jxr_linenumber" name="804" href="#804">804</a>           <span class="jxr_string">"There are still live instances in the cluster, shut them down first."</span>);
+<a class="jxr_linenumber" name="805" href="#805">805</a>     }
+<a class="jxr_linenumber" name="806" href="#806">806</a> 
+<a class="jxr_linenumber" name="807" href="#807">807</a>     <strong class="jxr_keyword">if</strong> (accessor.getProperty(keyBuilder.controllerLeader()) != <strong class="jxr_keyword">null</strong>) {
+<a class="jxr_linenumber" name="808" href="#808">808</a>       <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/helix/HelixException.html">HelixException</a>(<span class="jxr_string">"There are still LEADER in the cluster, shut them down first."</span>);
 <a class="jxr_linenumber" name="809" href="#809">809</a>     }
 <a class="jxr_linenumber" name="810" href="#810">810</a> 
-<a class="jxr_linenumber" name="811" href="#811">811</a>     <strong class="jxr_keyword">if</strong> (accessor.getProperty(keyBuilder.controllerLeader()) != <strong class="jxr_keyword">null</strong>) {
-<a class="jxr_linenumber" name="812" href="#812">812</a>       <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/helix/HelixException.html">HelixException</a>(<span class="jxr_string">"There are still LEADER in the cluster, shut them down first."</span>);
-<a class="jxr_linenumber" name="813" href="#813">813</a>     }
-<a class="jxr_linenumber" name="814" href="#814">814</a> 
-<a class="jxr_linenumber" name="815" href="#815">815</a>     _zkClient.deleteRecursive(root);
-<a class="jxr_linenumber" name="816" href="#816">816</a>   }
-<a class="jxr_linenumber" name="817" href="#817">817</a> 
-<a class="jxr_linenumber" name="818" href="#818">818</a>   @Override
-<a class="jxr_linenumber" name="819" href="#819">819</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> dropStat(String clusterName, <strong class="jxr_keyword">final</strong> String statName) {
-<a class="jxr_linenumber" name="820" href="#820">820</a>     <strong class="jxr_keyword">if</strong> (!ZKUtil.isClusterSetup(clusterName, _zkClient)) {
-<a class="jxr_linenumber" name="821" href="#821">821</a>       <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/helix/HelixException.html">HelixException</a>(<span class="jxr_string">"cluster "</span> + clusterName + <span class="jxr_string">" is not setup yet"</span>);
-<a class="jxr_linenumber" name="822" href="#822">822</a>     }
+<a class="jxr_linenumber" name="811" href="#811">811</a>     _zkClient.deleteRecursive(root);
+<a class="jxr_linenumber" name="812" href="#812">812</a>   }
+<a class="jxr_linenumber" name="813" href="#813">813</a> 
+<a class="jxr_linenumber" name="814" href="#814">814</a>   @Override
+<a class="jxr_linenumber" name="815" href="#815">815</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> dropStat(String clusterName, <strong class="jxr_keyword">final</strong> String statName) {
+<a class="jxr_linenumber" name="816" href="#816">816</a>     <strong class="jxr_keyword">if</strong> (!ZKUtil.isClusterSetup(clusterName, _zkClient)) {
+<a class="jxr_linenumber" name="817" href="#817">817</a>       <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/helix/HelixException.html">HelixException</a>(<span class="jxr_string">"cluster "</span> + clusterName + <span class="jxr_string">" is not setup yet"</span>);
+<a class="jxr_linenumber" name="818" href="#818">818</a>     }
+<a class="jxr_linenumber" name="819" href="#819">819</a> 
+<a class="jxr_linenumber" name="820" href="#820">820</a>     String persistentStatsPath =
+<a class="jxr_linenumber" name="821" href="#821">821</a>         PropertyPathConfig.getPath(PropertyType.PERSISTENTSTATS, clusterName);
+<a class="jxr_linenumber" name="822" href="#822">822</a>     ZkBaseDataAccessor&lt;ZNRecord&gt; baseAccessor = <strong class="jxr_keyword">new</strong> ZkBaseDataAccessor&lt;ZNRecord&gt;(_zkClient);
 <a class="jxr_linenumber" name="823" href="#823">823</a> 
-<a class="jxr_linenumber" name="824" href="#824">824</a>     String persistentStatsPath =
-<a class="jxr_linenumber" name="825" href="#825">825</a>         PropertyPathConfig.getPath(PropertyType.PERSISTENTSTATS, clusterName);
-<a class="jxr_linenumber" name="826" href="#826">826</a>     ZkBaseDataAccessor&lt;ZNRecord&gt; baseAccessor = <strong class="jxr_keyword">new</strong> ZkBaseDataAccessor&lt;ZNRecord&gt;(_zkClient);
-<a class="jxr_linenumber" name="827" href="#827">827</a> 
-<a class="jxr_linenumber" name="828" href="#828">828</a>     baseAccessor.update(persistentStatsPath, <strong class="jxr_keyword">new</strong> DataUpdater&lt;ZNRecord&gt;() {
-<a class="jxr_linenumber" name="829" href="#829">829</a> 
-<a class="jxr_linenumber" name="830" href="#830">830</a>       @Override
-<a class="jxr_linenumber" name="831" href="#831">831</a>       <strong class="jxr_keyword">public</strong> <a href="../../../../../org/apache/helix/ZNRecord.html">ZNRecord</a> update(<a href="../../../../../org/apache/helix/ZNRecord.html">ZNRecord</a> statsRec) {
-<a class="jxr_linenumber" name="832" href="#832">832</a>         <strong class="jxr_keyword">if</strong> (statsRec == <strong class="jxr_keyword">null</strong>) {
-<a class="jxr_linenumber" name="833" href="#833">833</a>           <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/helix/HelixException.html">HelixException</a>(<span class="jxr_string">"No stats record in ZK, nothing to drop"</span>);
-<a class="jxr_linenumber" name="834" href="#834">834</a>         }
-<a class="jxr_linenumber" name="835" href="#835">835</a> 
-<a class="jxr_linenumber" name="836" href="#836">836</a>         Map&lt;String, Map&lt;String, String&gt;&gt; currStatMap = statsRec.getMapFields();
-<a class="jxr_linenumber" name="837" href="#837">837</a>         Map&lt;String, Map&lt;String, String&gt;&gt; newStatMap = StatsHolder.parseStat(statName);
-<a class="jxr_linenumber" name="838" href="#838">838</a> 
-<a class="jxr_linenumber" name="839" href="#839">839</a>         <em class="jxr_comment">// delete each stat from stat map</em>
-<a class="jxr_linenumber" name="840" href="#840">840</a>         <strong class="jxr_keyword">for</strong> (String newStat : newStatMap.keySet()) {
-<a class="jxr_linenumber" name="841" href="#841">841</a>           <strong class="jxr_keyword">if</strong> (currStatMap.containsKey(newStat)) {
-<a class="jxr_linenumber" name="842" href="#842">842</a>             currStatMap.remove(newStat);
-<a class="jxr_linenumber" name="843" href="#843">843</a>           }
-<a class="jxr_linenumber" name="844" href="#844">844</a>         }
-<a class="jxr_linenumber" name="845" href="#845">845</a>         statsRec.setMapFields(currStatMap);
-<a class="jxr_linenumber" name="846" href="#846">846</a> 
-<a class="jxr_linenumber" name="847" href="#847">847</a>         <strong class="jxr_keyword">return</strong> statsRec;
-<a class="jxr_linenumber" name="848" href="#848">848</a>       }
-<a class="jxr_linenumber" name="849" href="#849">849</a>     }, AccessOption.PERSISTENT);
-<a class="jxr_linenumber" name="850" href="#850">850</a>   }
-<a class="jxr_linenumber" name="851" href="#851">851</a> 
-<a class="jxr_linenumber" name="852" href="#852">852</a>   @Override
-<a class="jxr_linenumber" name="853" href="#853">853</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> dropAlert(String clusterName, <strong class="jxr_keyword">final</strong> String alertName) {
-<a class="jxr_linenumber" name="854" href="#854">854</a>     <strong class="jxr_keyword">if</strong> (!ZKUtil.isClusterSetup(clusterName, _zkClient)) {
-<a class="jxr_linenumber" name="855" href="#855">855</a>       <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/helix/HelixException.html">HelixException</a>(<span class="jxr_string">"cluster "</span> + clusterName + <span class="jxr_string">" is not setup yet"</span>);
-<a class="jxr_linenumber" name="856" href="#856">856</a>     }
+<a class="jxr_linenumber" name="824" href="#824">824</a>     baseAccessor.update(persistentStatsPath, <strong class="jxr_keyword">new</strong> DataUpdater&lt;ZNRecord&gt;() {
+<a class="jxr_linenumber" name="825" href="#825">825</a> 
+<a class="jxr_linenumber" name="826" href="#826">826</a>       @Override
+<a class="jxr_linenumber" name="827" href="#827">827</a>       <strong class="jxr_keyword">public</strong> <a href="../../../../../org/apache/helix/ZNRecord.html">ZNRecord</a> update(<a href="../../../../../org/apache/helix/ZNRecord.html">ZNRecord</a> statsRec) {
+<a class="jxr_linenumber" name="828" href="#828">828</a>         <strong class="jxr_keyword">if</strong> (statsRec == <strong class="jxr_keyword">null</strong>) {
+<a class="jxr_linenumber" name="829" href="#829">829</a>           <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/helix/HelixException.html">HelixException</a>(<span class="jxr_string">"No stats record in ZK, nothing to drop"</span>);
+<a class="jxr_linenumber" name="830" href="#830">830</a>         }
+<a class="jxr_linenumber" name="831" href="#831">831</a> 
+<a class="jxr_linenumber" name="832" href="#832">832</a>         Map&lt;String, Map&lt;String, String&gt;&gt; currStatMap = statsRec.getMapFields();
+<a class="jxr_linenumber" name="833" href="#833">833</a>         Map&lt;String, Map&lt;String, String&gt;&gt; newStatMap = StatsHolder.parseStat(statName);
+<a class="jxr_linenumber" name="834" href="#834">834</a> 
+<a class="jxr_linenumber" name="835" href="#835">835</a>         <em class="jxr_comment">// delete each stat from stat map</em>
+<a class="jxr_linenumber" name="836" href="#836">836</a>         <strong class="jxr_keyword">for</strong> (String newStat : newStatMap.keySet()) {
+<a class="jxr_linenumber" name="837" href="#837">837</a>           <strong class="jxr_keyword">if</strong> (currStatMap.containsKey(newStat)) {
+<a class="jxr_linenumber" name="838" href="#838">838</a>             currStatMap.remove(newStat);
+<a class="jxr_linenumber" name="839" href="#839">839</a>           }
+<a class="jxr_linenumber" name="840" href="#840">840</a>         }
+<a class="jxr_linenumber" name="841" href="#841">841</a>         statsRec.setMapFields(currStatMap);
+<a class="jxr_linenumber" name="842" href="#842">842</a> 
+<a class="jxr_linenumber" name="843" href="#843">843</a>         <strong class="jxr_keyword">return</strong> statsRec;
+<a class="jxr_linenumber" name="844" href="#844">844</a>       }
+<a class="jxr_linenumber" name="845" href="#845">845</a>     }, AccessOption.PERSISTENT);
+<a class="jxr_linenumber" name="846" href="#846">846</a>   }
+<a class="jxr_linenumber" name="847" href="#847">847</a> 
+<a class="jxr_linenumber" name="848" href="#848">848</a>   @Override
+<a class="jxr_linenumber" name="849" href="#849">849</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> dropAlert(String clusterName, <strong class="jxr_keyword">final</strong> String alertName) {
+<a class="jxr_linenumber" name="850" href="#850">850</a>     <strong class="jxr_keyword">if</strong> (!ZKUtil.isClusterSetup(clusterName, _zkClient)) {
+<a class="jxr_linenumber" name="851" href="#851">851</a>       <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/helix/HelixException.html">HelixException</a>(<span class="jxr_string">"cluster "</span> + clusterName + <span class="jxr_string">" is not setup yet"</span>);
+<a class="jxr_linenumber" name="852" href="#852">852</a>     }
+<a class="jxr_linenumber" name="853" href="#853">853</a> 
+<a class="jxr_linenumber" name="854" href="#854">854</a>     String alertsPath = PropertyPathConfig.getPath(PropertyType.ALERTS, clusterName);
+<a class="jxr_linenumber" name="855" href="#855">855</a> 
+<a class="jxr_linenumber" name="856" href="#856">856</a>     ZkBaseDataAccessor&lt;ZNRecord&gt; baseAccessor = <strong class="jxr_keyword">new</strong> ZkBaseDataAccessor&lt;ZNRecord&gt;(_zkClient);
 <a class="jxr_linenumber" name="857" href="#857">857</a> 
-<a class="jxr_linenumber" name="858" href="#858">858</a>     String alertsPath = PropertyPathConfig.getPath(PropertyType.ALERTS, clusterName);
-<a class="jxr_linenumber" name="859" href="#859">859</a> 
-<a class="jxr_linenumber" name="860" href="#860">860</a>     ZkBaseDataAccessor&lt;ZNRecord&gt; baseAccessor = <strong class="jxr_keyword">new</strong> ZkBaseDataAccessor&lt;ZNRecord&gt;(_zkClient);
+<a class="jxr_linenumber" name="858" href="#858">858</a>     <strong class="jxr_keyword">if</strong> (!baseAccessor.exists(alertsPath, 0)) {
+<a class="jxr_linenumber" name="859" href="#859">859</a>       <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/helix/HelixException.html">HelixException</a>(<span class="jxr_string">"No alerts node in ZK, nothing to drop"</span>);
+<a class="jxr_linenumber" name="860" href="#860">860</a>     }
 <a class="jxr_linenumber" name="861" href="#861">861</a> 
-<a class="jxr_linenumber" name="862" href="#862">862</a>     <strong class="jxr_keyword">if</strong> (!baseAccessor.exists(alertsPath, 0)) {
-<a class="jxr_linenumber" name="863" href="#863">863</a>       <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/helix/HelixException.html">HelixException</a>(<span class="jxr_string">"No alerts node in ZK, nothing to drop"</span>);
-<a class="jxr_linenumber" name="864" href="#864">864</a>     }
-<a class="jxr_linenumber" name="865" href="#865">865</a> 
-<a class="jxr_linenumber" name="866" href="#866">866</a>     baseAccessor.update(alertsPath, <strong class="jxr_keyword">new</strong> DataUpdater&lt;ZNRecord&gt;() {
-<a class="jxr_linenumber" name="867" href="#867">867</a>       @Override
-<a class="jxr_linenumber" name="868" href="#868">868</a>       <strong class="jxr_keyword">public</strong> <a href="../../../../../org/apache/helix/ZNRecord.html">ZNRecord</a> update(<a href="../../../../../org/apache/helix/ZNRecord.html">ZNRecord</a> alertsRec) {
-<a class="jxr_linenumber" name="869" href="#869">869</a>         <strong class="jxr_keyword">if</strong> (alertsRec == <strong class="jxr_keyword">null</strong>) {
-<a class="jxr_linenumber" name="870" href="#870">870</a>           <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/helix/HelixException.html">HelixException</a>(<span class="jxr_string">"No alerts record in ZK, nothing to drop"</span>);
-<a class="jxr_linenumber" name="871" href="#871">871</a>         }
+<a class="jxr_linenumber" name="862" href="#862">862</a>     baseAccessor.update(alertsPath, <strong class="jxr_keyword">new</strong> DataUpdater&lt;ZNRecord&gt;() {
+<a class="jxr_linenumber" name="863" href="#863">863</a>       @Override
+<a class="jxr_linenumber" name="864" href="#864">864</a>       <strong class="jxr_keyword">public</strong> <a href="../../../../../org/apache/helix/ZNRecord.html">ZNRecord</a> update(<a href="../../../../../org/apache/helix/ZNRecord.html">ZNRecord</a> alertsRec) {
+<a class="jxr_linenumber" name="865" href="#865">865</a>         <strong class="jxr_keyword">if</strong> (alertsRec == <strong class="jxr_keyword">null</strong>) {
+<a class="jxr_linenumber" name="866" href="#866">866</a>           <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/helix/HelixException.html">HelixException</a>(<span class="jxr_string">"No alerts record in ZK, nothing to drop"</span>);
+<a class="jxr_linenumber" name="867" href="#867">867</a>         }
+<a class="jxr_linenumber" name="868" href="#868">868</a> 
+<a class="jxr_linenumber" name="869" href="#869">869</a>         Map&lt;String, Map&lt;String, String&gt;&gt; currAlertMap = alertsRec.getMapFields();
+<a class="jxr_linenumber" name="870" href="#870">870</a>         currAlertMap.remove(alertName);
+<a class="jxr_linenumber" name="871" href="#871">871</a>         alertsRec.setMapFields(currAlertMap);
 <a class="jxr_linenumber" name="872" href="#872">872</a> 
-<a class="jxr_linenumber" name="873" href="#873">873</a>         Map&lt;String, Map&lt;String, String&gt;&gt; currAlertMap = alertsRec.getMapFields();
-<a class="jxr_linenumber" name="874" href="#874">874</a>         currAlertMap.remove(alertName);
-<a class="jxr_linenumber" name="875" href="#875">875</a>         alertsRec.setMapFields(currAlertMap);
-<a class="jxr_linenumber" name="876" href="#876">876</a> 
-<a class="jxr_linenumber" name="877" href="#877">877</a>         <strong class="jxr_keyword">return</strong> alertsRec;
-<a class="jxr_linenumber" name="878" href="#878">878</a>       }
-<a class="jxr_linenumber" name="879" href="#879">879</a>     }, AccessOption.PERSISTENT);
-<a class="jxr_linenumber" name="880" href="#880">880</a>   }
-<a class="jxr_linenumber" name="881" href="#881">881</a> 
-<a class="jxr_linenumber" name="882" href="#882">882</a>   @Override
-<a class="jxr_linenumber" name="883" href="#883">883</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> addClusterToGrandCluster(String clusterName, String grandCluster) {
-<a class="jxr_linenumber" name="884" href="#884">884</a>     <strong class="jxr_keyword">if</strong> (!ZKUtil.isClusterSetup(grandCluster, _zkClient)) {
-<a class="jxr_linenumber" name="885" href="#885">885</a>       <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/helix/HelixException.html">HelixException</a>(<span class="jxr_string">"Grand cluster "</span> + grandCluster + <span class="jxr_string">" is not setup yet"</span>);
+<a class="jxr_linenumber" name="873" href="#873">873</a>         <strong class="jxr_keyword">return</strong> alertsRec;
+<a class="jxr_linenumber" name="874" href="#874">874</a>       }
+<a class="jxr_linenumber" name="875" href="#875">875</a>     }, AccessOption.PERSISTENT);
+<a class="jxr_linenumber" name="876" href="#876">876</a>   }
+<a class="jxr_linenumber" name="877" href="#877">877</a> 
+<a class="jxr_linenumber" name="878" href="#878">878</a>   @Override
+<a class="jxr_linenumber" name="879" href="#879">879</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> addClusterToGrandCluster(String clusterName, String grandCluster) {
+<a class="jxr_linenumber" name="880" href="#880">880</a>     <strong class="jxr_keyword">if</strong> (!ZKUtil.isClusterSetup(grandCluster, _zkClient)) {
+<a class="jxr_linenumber" name="881" href="#881">881</a>       <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/helix/HelixException.html">HelixException</a>(<span class="jxr_string">"Grand cluster "</span> + grandCluster + <span class="jxr_string">" is not setup yet"</span>);
+<a class="jxr_linenumber" name="882" href="#882">882</a>     }
+<a class="jxr_linenumber" name="883" href="#883">883</a> 
+<a class="jxr_linenumber" name="884" href="#884">884</a>     <strong class="jxr_keyword">if</strong> (!ZKUtil.isClusterSetup(clusterName, _zkClient)) {
+<a class="jxr_linenumber" name="885" href="#885">885</a>       <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/helix/HelixException.html">HelixException</a>(<span class="jxr_string">"Cluster "</span> + clusterName + <span class="jxr_string">" is not setup yet"</span>);
 <a class="jxr_linenumber" name="886" href="#886">886</a>     }
 <a class="jxr_linenumber" name="887" href="#887">887</a> 
-<a class="jxr_linenumber" name="888" href="#888">888</a>     <strong class="jxr_keyword">if</strong> (!ZKUtil.isClusterSetup(clusterName, _zkClient)) {
-<a class="jxr_linenumber" name="889" href="#889">889</a>       <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/helix/HelixException.html">HelixException</a>(<span class="jxr_string">"Cluster "</span> + clusterName + <span class="jxr_string">" is not setup yet"</span>);
-<a class="jxr_linenumber" name="890" href="#890">890</a>     }
-<a class="jxr_linenumber" name="891" href="#891">891</a> 
-<a class="jxr_linenumber" name="892" href="#892">892</a>     <a href="../../../../../org/apache/helix/model/IdealState.html">IdealState</a> idealState = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/helix/model/IdealState.html">IdealState</a>(clusterName);
-<a class="jxr_linenumber" name="893" href="#893">893</a> 
-<a class="jxr_linenumber" name="894" href="#894">894</a>     idealState.setNumPartitions(1);
-<a class="jxr_linenumber" name="895" href="#895">895</a>     idealState.setStateModelDefRef(<span class="jxr_string">"LeaderStandby"</span>);
-<a class="jxr_linenumber" name="896" href="#896">896</a> 
-<a class="jxr_linenumber" name="897" href="#897">897</a>     List&lt;String&gt; controllers = getInstancesInCluster(grandCluster);
-<a class="jxr_linenumber" name="898" href="#898">898</a>     <strong class="jxr_keyword">if</strong> (controllers.size() == 0) {
-<a class="jxr_linenumber" name="899" href="#899">899</a>       <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/helix/HelixException.html">HelixException</a>(<span class="jxr_string">"Grand cluster "</span> + grandCluster + <span class="jxr_string">" has no instances"</span>);
-<a class="jxr_linenumber" name="900" href="#900">900</a>     }
-<a class="jxr_linenumber" name="901" href="#901">901</a>     idealState.setReplicas(Integer.toString(controllers.size()));
-<a class="jxr_linenumber" name="902" href="#902">902</a>     Collections.shuffle(controllers);
-<a class="jxr_linenumber" name="903" href="#903">903</a>     idealState.getRecord().setListField(clusterName, controllers);
-<a class="jxr_linenumber" name="904" href="#904">904</a>     idealState.setPartitionState(clusterName, controllers.get(0), <span class="jxr_string">"LEADER"</span>);
-<a class="jxr_linenumber" name="905" href="#905">905</a>     <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 1; i &lt; controllers.size(); i++) {
-<a class="jxr_linenumber" name="906" href="#906">906</a>       idealState.setPartitionState(clusterName, controllers.get(i), <span class="jxr_string">"STANDBY"</span>);
-<a class="jxr_linenumber" name="907" href="#907">907</a>     }
+<a class="jxr_linenumber" name="888" href="#888">888</a>     <a href="../../../../../org/apache/helix/model/IdealState.html">IdealState</a> idealState = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/helix/model/IdealState.html">IdealState</a>(clusterName);
+<a class="jxr_linenumber" name="889" href="#889">889</a> 
+<a class="jxr_linenumber" name="890" href="#890">890</a>     idealState.setNumPartitions(1);
+<a class="jxr_linenumber" name="891" href="#891">891</a>     idealState.setStateModelDefRef(<span class="jxr_string">"LeaderStandby"</span>);
+<a class="jxr_linenumber" name="892" href="#892">892</a> 
+<a class="jxr_linenumber" name="893" href="#893">893</a>     List&lt;String&gt; controllers = getInstancesInCluster(grandCluster);
+<a class="jxr_linenumber" name="894" href="#894">894</a>     <strong class="jxr_keyword">if</strong> (controllers.size() == 0) {
+<a class="jxr_linenumber" name="895" href="#895">895</a>       <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/helix/HelixException.html">HelixException</a>(<span class="jxr_string">"Grand cluster "</span> + grandCluster + <span class="jxr_string">" has no instances"</span>);
+<a class="jxr_linenumber" name="896" href="#896">896</a>     }
+<a class="jxr_linenumber" name="897" href="#897">897</a>     idealState.setReplicas(Integer.toString(controllers.size()));
+<a class="jxr_linenumber" name="898" href="#898">898</a>     Collections.shuffle(controllers);
+<a class="jxr_linenumber" name="899" href="#899">899</a>     idealState.getRecord().setListField(clusterName, controllers);
+<a class="jxr_linenumber" name="900" href="#900">900</a>     idealState.setPartitionState(clusterName, controllers.get(0), <span class="jxr_string">"LEADER"</span>);
+<a class="jxr_linenumber" name="901" href="#901">901</a>     <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 1; i &lt; controllers.size(); i++) {
+<a class="jxr_linenumber" name="902" href="#902">902</a>       idealState.setPartitionState(clusterName, controllers.get(i), <span class="jxr_string">"STANDBY"</span>);
+<a class="jxr_linenumber" name="903" href="#903">903</a>     }
+<a class="jxr_linenumber" name="904" href="#904">904</a> 
+<a class="jxr_linenumber" name="905" href="#905">905</a>     <a href="../../../../../org/apache/helix/manager/zk/ZKHelixDataAccessor.html">ZKHelixDataAccessor</a> accessor =
+<a class="jxr_linenumber" name="906" href="#906">906</a>         <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/helix/manager/zk/ZKHelixDataAccessor.html">ZKHelixDataAccessor</a>(grandCluster, <strong class="jxr_keyword">new</strong> ZkBaseDataAccessor&lt;ZNRecord&gt;(_zkClient));
+<a class="jxr_linenumber" name="907" href="#907">907</a>     <a href="../../../../../org/apache/helix/PropertyKey.html">Builder</a> keyBuilder = accessor.keyBuilder();
 <a class="jxr_linenumber" name="908" href="#908">908</a> 
-<a class="jxr_linenumber" name="909" href="#909">909</a>     <a href="../../../../../org/apache/helix/manager/zk/ZKHelixDataAccessor.html">ZKHelixDataAccessor</a> accessor =
-<a class="jxr_linenumber" name="910" href="#910">910</a>         <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/helix/manager/zk/ZKHelixDataAccessor.html">ZKHelixDataAccessor</a>(grandCluster, <strong class="jxr_keyword">new</strong> ZkBaseDataAccessor&lt;ZNRecord&gt;(_zkClient));
-<a class="jxr_linenumber" name="911" href="#911">911</a>     <a href="../../../../../org/apache/helix/PropertyKey.html">Builder</a> keyBuilder = accessor.keyBuilder();
-<a class="jxr_linenumber" name="912" href="#912">912</a> 
-<a class="jxr_linenumber" name="913" href="#913">913</a>     accessor.setProperty(keyBuilder.idealStates(idealState.getResourceName()), idealState);
-<a class="jxr_linenumber" name="914" href="#914">914</a>   }
-<a class="jxr_linenumber" name="915" href="#915">915</a> 
-<a class="jxr_linenumber" name="916" href="#916">916</a>   @Override
-<a class="jxr_linenumber" name="917" href="#917">917</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setConfig(<a href="../../../../../org/apache/helix/model/HelixConfigScope.html">HelixConfigScope</a> scope, Map&lt;String, String&gt; properties) {
-<a class="jxr_linenumber" name="918" href="#918">918</a>     _configAccessor.set(scope, properties);
-<a class="jxr_linenumber" name="919" href="#919">919</a>   }
-<a class="jxr_linenumber" name="920" href="#920">920</a> 
-<a class="jxr_linenumber" name="921" href="#921">921</a>   @Override
-<a class="jxr_linenumber" name="922" href="#922">922</a>   <strong class="jxr_keyword">public</strong> Map&lt;String, String&gt; getConfig(<a href="../../../../../org/apache/helix/model/HelixConfigScope.html">HelixConfigScope</a> scope, List&lt;String&gt; keys) {
-<a class="jxr_linenumber" name="923" href="#923">923</a>     <strong class="jxr_keyword">return</strong> _configAccessor.get(scope, keys);
-<a class="jxr_linenumber" name="924" href="#924">924</a>   }
-<a class="jxr_linenumber" name="925" href="#925">925</a> 
-<a class="jxr_linenumber" name="926" href="#926">926</a>   @Override
-<a class="jxr_linenumber" name="927" href="#927">927</a>   <strong class="jxr_keyword">public</strong> List&lt;String&gt; getConfigKeys(<a href="../../../../../org/apache/helix/model/HelixConfigScope.html">HelixConfigScope</a> scope) {
-<a class="jxr_linenumber" name="928" href="#928">928</a>     <strong class="jxr_keyword">return</strong> _configAccessor.getKeys(scope);
-<a class="jxr_linenumber" name="929" href="#929">929</a>   }
-<a class="jxr_linenumber" name="930" href="#930">930</a> 
-<a class="jxr_linenumber" name="931" href="#931">931</a>   @Override
-<a class="jxr_linenumber" name="932" href="#932">932</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> removeConfig(<a href="../../../../../org/apache/helix/model/HelixConfigScope.html">HelixConfigScope</a> scope, List&lt;String&gt; keys) {
-<a class="jxr_linenumber" name="933" href="#933">933</a>     _configAccessor.remove(scope, keys);
-<a class="jxr_linenumber" name="934" href="#934">934</a>   }
-<a class="jxr_linenumber" name="935" href="#935">935</a> 
-<a class="jxr_linenumber" name="936" href="#936">936</a>   @Override
-<a class="jxr_linenumber" name="937" href="#937">937</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> rebalance(String clusterName, String resourceName, <strong class="jxr_keyword">int</strong> replica) {
-<a class="jxr_linenumber" name="938" href="#938">938</a>     rebalance(clusterName, resourceName, replica, resourceName, <span class="jxr_string">""</span>);
-<a class="jxr_linenumber" name="939" href="#939">939</a>   }
-<a class="jxr_linenumber" name="940" href="#940">940</a> 
-<a class="jxr_linenumber" name="941" href="#941">941</a>   @Override
-<a class="jxr_linenumber" name="942" href="#942">942</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> rebalance(String clusterName, String resourceName, <strong class="jxr_keyword">int</strong> replica, String keyPrefix,
-<a class="jxr_linenumber" name="943" href="#943">943</a>       String group) {
-<a class="jxr_linenumber" name="944" href="#944">944</a>     List&lt;String&gt; instanceNames = <strong class="jxr_keyword">new</strong> LinkedList&lt;String&gt;();
-<a class="jxr_linenumber" name="945" href="#945">945</a>     <strong class="jxr_keyword">if</strong> (keyPrefix == <strong class="jxr_keyword">null</strong> || keyPrefix.length() == 0) {
-<a class="jxr_linenumber" name="946" href="#946">946</a>       keyPrefix = resourceName;
-<a class="jxr_linenumber" name="947" href="#947">947</a>     }
-<a class="jxr_linenumber" name="948" href="#948">948</a>     <strong class="jxr_keyword">if</strong> (group != <strong class="jxr_keyword">null</strong> &amp;&amp; group.length() &gt; 0) {
-<a class="jxr_linenumber" name="949" href="#949">949</a>       instanceNames = getInstancesInClusterWithTag(clusterName, group);
-<a class="jxr_linenumber" name="950" href="#950">950</a>     }
-<a class="jxr_linenumber" name="951" href="#951">951</a>     <strong class="jxr_keyword">if</strong> (instanceNames.size() == 0) {
-<a class="jxr_linenumber" name="952" href="#952">952</a>       logger.info(<span class="jxr_string">"No tags found for resource "</span> + resourceName + <span class="jxr_string">", use all instances"</span>);
-<a class="jxr_linenumber" name="953" href="#953">953</a>       instanceNames = getInstancesInCluster(clusterName);
-<a class="jxr_linenumber" name="954" href="#954">954</a>       group = <span class="jxr_string">""</span>;
-<a class="jxr_linenumber" name="955" href="#955">955</a>     } <strong class="jxr_keyword">else</strong> {
-<a class="jxr_linenumber" name="956" href="#956">956</a>       logger.info(<span class="jxr_string">"Found instances with tag for "</span> + resourceName + <span class="jxr_string">" "</span> + instanceNames);
-<a class="jxr_linenumber" name="957" href="#957">957</a>     }
-<a class="jxr_linenumber" name="958" href="#958">958</a>     rebalance(clusterName, resourceName, replica, keyPrefix, instanceNames, group);
-<a class="jxr_linenumber" name="959" href="#959">959</a>   }
-<a class="jxr_linenumber" name="960" href="#960">960</a> 
-<a class="jxr_linenumber" name="961" href="#961">961</a>   @Override
-<a class="jxr_linenumber" name="962" href="#962">962</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> rebalance(String clusterName, String resourceName, <strong class="jxr_keyword">int</strong> replica, List&lt;String&gt; instances) {
-<a class="jxr_linenumber" name="963" href="#963">963</a>     rebalance(clusterName, resourceName, replica, resourceName, instances, <span class="jxr_string">""</span>);
-<a class="jxr_linenumber" name="964" href="#964">964</a>   }
-<a class="jxr_linenumber" name="965" href="#965">965</a> 
-<a class="jxr_linenumber" name="966" href="#966">966</a>   <strong class="jxr_keyword">void</strong> rebalance(String clusterName, String resourceName, <strong class="jxr_keyword">int</strong> replica, String keyPrefix,
-<a class="jxr_linenumber" name="967" href="#967">967</a>       List&lt;String&gt; instanceNames, String groupId) {
-<a class="jxr_linenumber" name="968" href="#968">968</a>     <em class="jxr_comment">// ensure we get the same idealState with the same set of instances</em>
-<a class="jxr_linenumber" name="969" href="#969">969</a>     Collections.sort(instanceNames);
-<a class="jxr_linenumber" name="970" href="#970">970</a> 
-<a class="jxr_linenumber" name="971" href="#971">971</a>     <a href="../../../../../org/apache/helix/model/IdealState.html">IdealState</a> idealState = getResourceIdealState(clusterName, resourceName);
-<a class="jxr_linenumber" name="972" href="#972">972</a>     <strong class="jxr_keyword">if</strong> (idealState == <strong class="jxr_keyword">null</strong>) {
-<a class="jxr_linenumber" name="973" href="#973">973</a>       <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/helix/HelixException.html">HelixException</a>(<span class="jxr_string">"Resource: "</span> + resourceName + <span class="jxr_string">" has NOT been added yet"</span>);
+<a class="jxr_linenumber" name="909" href="#909">909</a>     accessor.setProperty(keyBuilder.idealStates(idealState.getResourceName()), idealState);
+<a class="jxr_linenumber" name="910" href="#910">910</a>   }
+<a class="jxr_linenumber" name="911" href="#911">911</a> 
+<a class="jxr_linenumber" name="912" href="#912">912</a>   @Override
+<a class="jxr_linenumber" name="913" href="#913">913</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setConfig(<a href="../../../../../org/apache/helix/model/HelixConfigScope.html">HelixConfigScope</a> scope, Map&lt;String, String&gt; properties) {
+<a class="jxr_linenumber" name="914" href="#914">914</a>     _configAccessor.set(scope, properties);
+<a class="jxr_linenumber" name="915" href="#915">915</a>   }
+<a class="jxr_linenumber" name="916" href="#916">916</a> 
+<a class="jxr_linenumber" name="917" href="#917">917</a>   @Override
+<a class="jxr_linenumber" name="918" href="#918">918</a>   <strong class="jxr_keyword">public</strong> Map&lt;String, String&gt; getConfig(<a href="../../../../../org/apache/helix/model/HelixConfigScope.html">HelixConfigScope</a> scope, List&lt;String&gt; keys) {
+<a class="jxr_linenumber" name="919" href="#919">919</a>     <strong class="jxr_keyword">return</strong> _configAccessor.get(scope, keys);
+<a class="jxr_linenumber" name="920" href="#920">920</a>   }
+<a class="jxr_linenumber" name="921" href="#921">921</a> 
+<a class="jxr_linenumber" name="922" href="#922">922</a>   @Override
+<a class="jxr_linenumber" name="923" href="#923">923</a>   <strong class="jxr_keyword">public</strong> List&lt;String&gt; getConfigKeys(<a href="../../../../../org/apache/helix/model/HelixConfigScope.html">HelixConfigScope</a> scope) {
+<a class="jxr_linenumber" name="924" href="#924">924</a>     <strong class="jxr_keyword">return</strong> _configAccessor.getKeys(scope);
+<a class="jxr_linenumber" name="925" href="#925">925</a>   }
+<a class="jxr_linenumber" name="926" href="#926">926</a> 
+<a class="jxr_linenumber" name="927" href="#927">927</a>   @Override
+<a class="jxr_linenumber" name="928" href="#928">928</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> removeConfig(<a href="../../../../../org/apache/helix/model/HelixConfigScope.html">HelixConfigScope</a> scope, List&lt;String&gt; keys) {
+<a class="jxr_linenumber" name="929" href="#929">929</a>     _configAccessor.remove(scope, keys);
+<a class="jxr_linenumber" name="930" href="#930">930</a>   }
+<a class="jxr_linenumber" name="931" href="#931">931</a> 
+<a class="jxr_linenumber" name="932" href="#932">932</a>   @Override
+<a class="jxr_linenumber" name="933" href="#933">933</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> rebalance(String clusterName, String resourceName, <strong class="jxr_keyword">int</strong> replica) {
+<a class="jxr_linenumber" name="934" href="#934">934</a>     rebalance(clusterName, resourceName, replica, resourceName, <span class="jxr_string">""</span>);
+<a class="jxr_linenumber" name="935" href="#935">935</a>   }
+<a class="jxr_linenumber" name="936" href="#936">936</a> 
+<a class="jxr_linenumber" name="937" href="#937">937</a>   @Override
+<a class="jxr_linenumber" name="938" href="#938">938</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> rebalance(String clusterName, String resourceName, <strong class="jxr_keyword">int</strong> replica, String keyPrefix,
+<a class="jxr_linenumber" name="939" href="#939">939</a>       String group) {
+<a class="jxr_linenumber" name="940" href="#940">940</a>     List&lt;String&gt; instanceNames = <strong class="jxr_keyword">new</strong> LinkedList&lt;String&gt;();
+<a class="jxr_linenumber" name="941" href="#941">941</a>     <strong class="jxr_keyword">if</strong> (keyPrefix == <strong class="jxr_keyword">null</strong> || keyPrefix.length() == 0) {
+<a class="jxr_linenumber" name="942" href="#942">942</a>       keyPrefix = resourceName;
+<a class="jxr_linenumber" name="943" href="#943">943</a>     }
+<a class="jxr_linenumber" name="944" href="#944">944</a>     <strong class="jxr_keyword">if</strong> (group != <strong class="jxr_keyword">null</strong> &amp;&amp; group.length() &gt; 0) {
+<a class="jxr_linenumber" name="945" href="#945">945</a>       instanceNames = getInstancesInClusterWithTag(clusterName, group);
+<a class="jxr_linenumber" name="946" href="#946">946</a>     }
+<a class="jxr_linenumber" name="947" href="#947">947</a>     <strong class="jxr_keyword">if</strong> (instanceNames.size() == 0) {
+<a class="jxr_linenumber" name="948" href="#948">948</a>       logger.info(<span class="jxr_string">"No tags found for resource "</span> + resourceName + <span class="jxr_string">", use all instances"</span>);
+<a class="jxr_linenumber" name="949" href="#949">949</a>       instanceNames = getInstancesInCluster(clusterName);
+<a class="jxr_linenumber" name="950" href="#950">950</a>       group = <span class="jxr_string">""</span>;
+<a class="jxr_linenumber" name="951" href="#951">951</a>     } <strong class="jxr_keyword">else</strong> {

[... 550 lines stripped ...]