You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@helix.apache.org by ki...@apache.org on 2012/10/25 00:26:40 UTC

[5/47] Refactoring from com.linkedin.helix to org.apache.helix

http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/3cb7a1c9/helix-admin-webapp/src/main/java/com/linkedin/helix/webapp/resources/StateModelResource.java
----------------------------------------------------------------------
diff --git a/helix-admin-webapp/src/main/java/com/linkedin/helix/webapp/resources/StateModelResource.java b/helix-admin-webapp/src/main/java/com/linkedin/helix/webapp/resources/StateModelResource.java
deleted file mode 100644
index 7b5929d..0000000
--- a/helix-admin-webapp/src/main/java/com/linkedin/helix/webapp/resources/StateModelResource.java
+++ /dev/null
@@ -1,157 +0,0 @@
-/**
- * Copyright (C) 2012 LinkedIn Inc <op...@linkedin.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *         http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.linkedin.helix.webapp.resources;
-
-import java.io.IOException;
-
-import org.apache.log4j.Logger;
-import org.codehaus.jackson.JsonGenerationException;
-import org.codehaus.jackson.map.JsonMappingException;
-import org.restlet.Context;
-import org.restlet.data.MediaType;
-import org.restlet.data.Request;
-import org.restlet.data.Response;
-import org.restlet.data.Status;
-import org.restlet.resource.Representation;
-import org.restlet.resource.Resource;
-import org.restlet.resource.StringRepresentation;
-import org.restlet.resource.Variant;
-
-import com.linkedin.helix.HelixDataAccessor;
-import com.linkedin.helix.HelixException;
-import com.linkedin.helix.PropertyKey;
-import com.linkedin.helix.PropertyKey.Builder;
-import com.linkedin.helix.ZNRecord;
-import com.linkedin.helix.manager.zk.ZkClient;
-import com.linkedin.helix.model.StateModelDefinition;
-import com.linkedin.helix.tools.ClusterSetup;
-import com.linkedin.helix.webapp.RestAdminApplication;
-
-public class StateModelResource extends Resource
-{
-  private final static Logger LOG = Logger.getLogger(StateModelResource.class);
-
-  public StateModelResource(Context context, Request request, Response response)
-  {
-    super(context, request, response);
-    getVariants().add(new Variant(MediaType.TEXT_PLAIN));
-    getVariants().add(new Variant(MediaType.APPLICATION_JSON));
-  }
-
-  @Override
-  public boolean allowGet()
-  {
-    return true;
-  }
-
-  @Override
-  public boolean allowPost()
-  {
-    return true;
-  }
-
-  @Override
-  public boolean allowPut()
-  {
-    return false;
-  }
-
-  @Override
-  public boolean allowDelete()
-  {
-    return false;
-  }
-
-  @Override
-  public Representation represent(Variant variant)
-  {
-    StringRepresentation presentation = null;
-    try
-    {
-      String clusterName = (String) getRequest().getAttributes().get("clusterName");
-      String modelName = (String) getRequest().getAttributes().get("modelName");
-      presentation = getStateModelRepresentation(clusterName, modelName);
-    }
-
-    catch (Exception e)
-    {
-      String error = ClusterRepresentationUtil.getErrorAsJsonStringFromException(e);
-      presentation = new StringRepresentation(error, MediaType.APPLICATION_JSON);
-
-      LOG.error("", e);
-    }
-    return presentation;
-  }
-
-  StringRepresentation getStateModelRepresentation(String clusterName, String modelName) throws JsonGenerationException,
-      JsonMappingException,
-      IOException
-  {
-    Builder keyBuilder = new PropertyKey.Builder(clusterName);
-    ZkClient zkClient =
-        (ZkClient) getContext().getAttributes().get(RestAdminApplication.ZKCLIENT);
-
-    String message =
-        ClusterRepresentationUtil.getClusterPropertyAsString(zkClient,
-                                                             clusterName,
-                                                             keyBuilder.stateModelDef(modelName),
-                                                             MediaType.APPLICATION_JSON);
-
-    StringRepresentation representation =
-        new StringRepresentation(message, MediaType.APPLICATION_JSON);
-
-    return representation;
-  }
-
-  @Override
-  public void acceptRepresentation(Representation entity)
-  {
-    try
-    {
-      String clusterName = (String) getRequest().getAttributes().get("clusterName");
-      String modelName = (String) getRequest().getAttributes().get("modelName");
-      ZkClient zkClient =
-          (ZkClient) getContext().getAttributes().get(RestAdminApplication.ZKCLIENT);
-
-      JsonParameters jsonParameters = new JsonParameters(entity);
-      String command = jsonParameters.getCommand();
-
-      if (command.equalsIgnoreCase(ClusterSetup.addStateModelDef))
-      {
-        ZNRecord newStateModel = jsonParameters.getExtraParameter(JsonParameters.NEW_STATE_MODEL_DEF);
-        HelixDataAccessor accessor =
-            ClusterRepresentationUtil.getClusterDataAccessor(zkClient, clusterName);
-
-        accessor.setProperty(accessor.keyBuilder().stateModelDef(newStateModel.getId()),
-                             new StateModelDefinition(newStateModel));
-      }
-      else
-      {
-        throw new HelixException("Unsupported command: " + command
-            + ". Should be one of [" + ClusterSetup.addStateModelDef + "]");
-      }
-      getResponse().setEntity(getStateModelRepresentation(clusterName, modelName));
-      getResponse().setStatus(Status.SUCCESS_OK);
-    }
-    catch (Exception e)
-    {
-      getResponse().setEntity(ClusterRepresentationUtil.getErrorAsJsonStringFromException(e),
-                              MediaType.APPLICATION_JSON);
-      getResponse().setStatus(Status.SUCCESS_OK);
-      LOG.error("Error in posting " + entity, e);
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/3cb7a1c9/helix-admin-webapp/src/main/java/com/linkedin/helix/webapp/resources/StateModelsResource.java
----------------------------------------------------------------------
diff --git a/helix-admin-webapp/src/main/java/com/linkedin/helix/webapp/resources/StateModelsResource.java b/helix-admin-webapp/src/main/java/com/linkedin/helix/webapp/resources/StateModelsResource.java
deleted file mode 100644
index 3e1a53a..0000000
--- a/helix-admin-webapp/src/main/java/com/linkedin/helix/webapp/resources/StateModelsResource.java
+++ /dev/null
@@ -1,150 +0,0 @@
-/**
- * Copyright (C) 2012 LinkedIn Inc <op...@linkedin.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *         http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.linkedin.helix.webapp.resources;
-
-import java.io.IOException;
-import java.util.List;
-
-import org.apache.log4j.Logger;
-import org.codehaus.jackson.JsonGenerationException;
-import org.codehaus.jackson.map.JsonMappingException;
-import org.restlet.Context;
-import org.restlet.data.MediaType;
-import org.restlet.data.Request;
-import org.restlet.data.Response;
-import org.restlet.data.Status;
-import org.restlet.resource.Representation;
-import org.restlet.resource.Resource;
-import org.restlet.resource.StringRepresentation;
-import org.restlet.resource.Variant;
-
-import com.linkedin.helix.HelixDataAccessor;
-import com.linkedin.helix.HelixException;
-import com.linkedin.helix.ZNRecord;
-import com.linkedin.helix.manager.zk.ZkClient;
-import com.linkedin.helix.model.StateModelDefinition;
-import com.linkedin.helix.tools.ClusterSetup;
-import com.linkedin.helix.webapp.RestAdminApplication;
-
-public class StateModelsResource extends Resource
-{
-  private final static Logger LOG = Logger.getLogger(StateModelsResource.class);
-
-  public StateModelsResource(Context context,
-      Request request,
-      Response response) 
-  {
-    super(context, request, response);
-    getVariants().add(new Variant(MediaType.TEXT_PLAIN));
-    getVariants().add(new Variant(MediaType.APPLICATION_JSON));
-  }
-
-  @Override
-  public boolean allowGet()
-  {
-    return true;
-  }
-  
-  @Override
-  public boolean allowPost()
-  {
-    return true;
-  }
-  
-  @Override
-  public boolean allowPut()
-  {
-    return false;
-  }
-  
-  @Override
-  public boolean allowDelete()
-  {
-    return false;
-  }
-  
-  @Override
-  public Representation represent(Variant variant)
-  {
-    StringRepresentation presentation = null;
-    try
-    {
-      presentation = getStateModelsRepresentation();
-    }
-    
-    catch(Exception e)
-    {
-      String error = ClusterRepresentationUtil.getErrorAsJsonStringFromException(e);
-      presentation = new StringRepresentation(error, MediaType.APPLICATION_JSON);
-
-      LOG.error("", e);
-    }
-    return presentation;
-  }
-  
-  StringRepresentation getStateModelsRepresentation() throws JsonGenerationException, JsonMappingException, IOException
-  {
-    String clusterName = (String)getRequest().getAttributes().get("clusterName");
-    ZkClient zkClient = (ZkClient)getContext().getAttributes().get(RestAdminApplication.ZKCLIENT);
-    ClusterSetup setupTool = new ClusterSetup(zkClient);
-    
-    List<String> models = setupTool.getClusterManagementTool().getStateModelDefs(clusterName);
-    
-    ZNRecord modelDefinitions = new ZNRecord("modelDefinitions");
-    modelDefinitions.setListField("models", models);
-    
-    StringRepresentation representation = new StringRepresentation(ClusterRepresentationUtil.ZNRecordToJson(modelDefinitions), MediaType.APPLICATION_JSON);
-    
-    return representation;
-  }
-  
-  @Override
-  public void acceptRepresentation(Representation entity)
-  {
-    try
-    {
-      String clusterName = (String)getRequest().getAttributes().get("clusterName");
-      ZkClient zkClient = (ZkClient)getContext().getAttributes().get(RestAdminApplication.ZKCLIENT);;
-      
-      JsonParameters jsonParameters = new JsonParameters(entity);
-      String command = jsonParameters.getCommand();
-
-        
-      if(command.equalsIgnoreCase(ClusterSetup.addStateModelDef))
-      {
-        ZNRecord newStateModel = jsonParameters.getExtraParameter(JsonParameters.NEW_STATE_MODEL_DEF);
-        HelixDataAccessor accessor = ClusterRepresentationUtil.getClusterDataAccessor(zkClient, clusterName);
-         
-        accessor.setProperty(accessor.keyBuilder().stateModelDef(newStateModel.getId()), new StateModelDefinition(newStateModel) );
-        getResponse().setEntity(getStateModelsRepresentation());
-      }
-      else
-      {
-          throw new HelixException("Unsupported command: " + command
-                                   + ". Should be one of [" + ClusterSetup.addStateModelDef + "]");
-      }
-      
-      getResponse().setStatus(Status.SUCCESS_OK);
-    }
-    catch(Exception e)
-    {
-      getResponse().setEntity(ClusterRepresentationUtil.getErrorAsJsonStringFromException(e),
-          MediaType.APPLICATION_JSON);
-      getResponse().setStatus(Status.SUCCESS_OK);
-      LOG.error("Error in posting " + entity, e);
-    }  
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/3cb7a1c9/helix-admin-webapp/src/main/java/com/linkedin/helix/webapp/resources/StatusUpdateResource.java
----------------------------------------------------------------------
diff --git a/helix-admin-webapp/src/main/java/com/linkedin/helix/webapp/resources/StatusUpdateResource.java b/helix-admin-webapp/src/main/java/com/linkedin/helix/webapp/resources/StatusUpdateResource.java
deleted file mode 100644
index b81cb2b..0000000
--- a/helix-admin-webapp/src/main/java/com/linkedin/helix/webapp/resources/StatusUpdateResource.java
+++ /dev/null
@@ -1,127 +0,0 @@
-/**
- * Copyright (C) 2012 LinkedIn Inc <op...@linkedin.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *         http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.linkedin.helix.webapp.resources;
-
-import java.io.IOException;
-
-import org.apache.log4j.Logger;
-import org.codehaus.jackson.JsonGenerationException;
-import org.codehaus.jackson.map.JsonMappingException;
-import org.restlet.Context;
-import org.restlet.data.MediaType;
-import org.restlet.data.Request;
-import org.restlet.data.Response;
-import org.restlet.resource.Representation;
-import org.restlet.resource.Resource;
-import org.restlet.resource.StringRepresentation;
-import org.restlet.resource.Variant;
-
-import com.linkedin.helix.PropertyKey;
-import com.linkedin.helix.PropertyKey.Builder;
-import com.linkedin.helix.manager.zk.ZkClient;
-import com.linkedin.helix.webapp.RestAdminApplication;
-
-public class StatusUpdateResource extends Resource
-{
-  private final static Logger LOG = Logger.getLogger(StatusUpdateResource.class);
-
-  public StatusUpdateResource(Context context, Request request, Response response)
-  {
-    super(context, request, response);
-    getVariants().add(new Variant(MediaType.TEXT_PLAIN));
-    getVariants().add(new Variant(MediaType.APPLICATION_JSON));
-  }
-
-  @Override
-  public boolean allowGet()
-  {
-    return true;
-  }
-
-  @Override
-  public boolean allowPost()
-  {
-    return false;
-  }
-
-  @Override
-  public boolean allowPut()
-  {
-    return false;
-  }
-
-  @Override
-  public boolean allowDelete()
-  {
-    return false;
-  }
-
-  @Override
-  public Representation represent(Variant variant)
-  {
-    StringRepresentation presentation = null;
-    try
-    {
-      String clusterName = (String) getRequest().getAttributes().get("clusterName");
-      String instanceName = (String) getRequest().getAttributes().get("instanceName");
-      String resourceGroup = (String) getRequest().getAttributes().get("resourceName");
-
-      presentation =
-          getInstanceStatusUpdateRepresentation(
-                                                clusterName,
-                                                instanceName,
-                                                resourceGroup);
-    }
-    catch (Exception e)
-    {
-      String error = ClusterRepresentationUtil.getErrorAsJsonStringFromException(e);
-      presentation = new StringRepresentation(error, MediaType.APPLICATION_JSON);
-
-      LOG.error("", e);
-    }
-    return presentation;
-  }
-
-  StringRepresentation getInstanceStatusUpdateRepresentation(
-                                                             String clusterName,
-                                                             String instanceName,
-                                                             String resourceGroup) throws JsonGenerationException,
-      JsonMappingException,
-      IOException
-  {
-    ZkClient zkClient = (ZkClient)getContext().getAttributes().get(RestAdminApplication.ZKCLIENT);
-  
-    String instanceSessionId =
-        ClusterRepresentationUtil.getInstanceSessionId(zkClient,
-                                                       clusterName,
-                                                       instanceName);
-
-    Builder keyBuilder = new PropertyKey.Builder(clusterName);
-    String message =
-        ClusterRepresentationUtil.getInstancePropertiesAsString(zkClient,
-                                                                  clusterName,
-                                                                  keyBuilder.stateTransitionStatus(instanceName,
-                                                                                                   instanceSessionId,
-                                                                                                   resourceGroup),
-                                                                  // instanceSessionId
-                                                                  // + "__"
-                                                                  // + resourceGroup,
-                                                                  MediaType.APPLICATION_JSON);
-    StringRepresentation representation =
-        new StringRepresentation(message, MediaType.APPLICATION_JSON);
-    return representation;
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/3cb7a1c9/helix-admin-webapp/src/main/java/com/linkedin/helix/webapp/resources/StatusUpdatesResource.java
----------------------------------------------------------------------
diff --git a/helix-admin-webapp/src/main/java/com/linkedin/helix/webapp/resources/StatusUpdatesResource.java b/helix-admin-webapp/src/main/java/com/linkedin/helix/webapp/resources/StatusUpdatesResource.java
deleted file mode 100644
index c0932e8..0000000
--- a/helix-admin-webapp/src/main/java/com/linkedin/helix/webapp/resources/StatusUpdatesResource.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/**
- * Copyright (C) 2012 LinkedIn Inc <op...@linkedin.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *         http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.linkedin.helix.webapp.resources;
-
-import java.io.IOException;
-
-import org.apache.log4j.Logger;
-import org.codehaus.jackson.JsonGenerationException;
-import org.codehaus.jackson.map.JsonMappingException;
-import org.restlet.Context;
-import org.restlet.data.MediaType;
-import org.restlet.data.Request;
-import org.restlet.data.Response;
-import org.restlet.resource.Representation;
-import org.restlet.resource.Resource;
-import org.restlet.resource.StringRepresentation;
-import org.restlet.resource.Variant;
-
-import com.linkedin.helix.PropertyType;
-import com.linkedin.helix.manager.zk.ZkClient;
-import com.linkedin.helix.webapp.RestAdminApplication;
-
-public class StatusUpdatesResource extends Resource
-{
-  private final static Logger LOG = Logger.getLogger(StatusUpdatesResource.class);
-
-  public StatusUpdatesResource(Context context, Request request, Response response)
-  {
-    super(context, request, response);
-    getVariants().add(new Variant(MediaType.TEXT_PLAIN));
-    getVariants().add(new Variant(MediaType.APPLICATION_JSON));
-  }
-
-  @Override
-  public boolean allowGet()
-  {
-    return true;
-  }
-
-  @Override
-  public boolean allowPost()
-  {
-    return false;
-  }
-
-  @Override
-  public boolean allowPut()
-  {
-    return false;
-  }
-
-  @Override
-  public boolean allowDelete()
-  {
-    return false;
-  }
-
-  @Override
-  public Representation represent(Variant variant)
-  {
-    StringRepresentation presentation = null;
-    try
-    {
-      String clusterName = (String) getRequest().getAttributes().get("clusterName");
-      String instanceName = (String) getRequest().getAttributes().get("instanceName");
-      presentation = getInstanceErrorsRepresentation( clusterName, instanceName);
-    }
-    catch (Exception e)
-    {
-      String error = ClusterRepresentationUtil.getErrorAsJsonStringFromException(e);
-      presentation = new StringRepresentation(error, MediaType.APPLICATION_JSON);
-
-      LOG.error("", e);
-    }
-    return presentation;
-  }
-
-  StringRepresentation getInstanceErrorsRepresentation( String clusterName, String instanceName) throws JsonGenerationException, JsonMappingException, IOException
-  {
-    ZkClient zkClient = (ZkClient)getContext().getAttributes().get(RestAdminApplication.ZKCLIENT);
-    String instanceSessionId = ClusterRepresentationUtil.getInstanceSessionId(zkClient, clusterName, instanceName);
-    
-    String message = ClusterRepresentationUtil.getInstancePropertyNameListAsString(zkClient, clusterName, instanceName, PropertyType.CURRENTSTATES, instanceSessionId, MediaType.APPLICATION_JSON);
-
-    StringRepresentation representation = new StringRepresentation(message, MediaType.APPLICATION_JSON);
-
-    return representation;
-  }
-  
-}

http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/3cb7a1c9/helix-admin-webapp/src/main/java/com/linkedin/helix/webapp/resources/ZkChildResource.java
----------------------------------------------------------------------
diff --git a/helix-admin-webapp/src/main/java/com/linkedin/helix/webapp/resources/ZkChildResource.java b/helix-admin-webapp/src/main/java/com/linkedin/helix/webapp/resources/ZkChildResource.java
deleted file mode 100644
index 1f5e584..0000000
--- a/helix-admin-webapp/src/main/java/com/linkedin/helix/webapp/resources/ZkChildResource.java
+++ /dev/null
@@ -1,158 +0,0 @@
-package com.linkedin.helix.webapp.resources;
-
-import java.util.List;
-
-import org.apache.log4j.Logger;
-import org.apache.zookeeper.data.Stat;
-import org.restlet.Context;
-import org.restlet.data.MediaType;
-import org.restlet.data.Request;
-import org.restlet.data.Response;
-import org.restlet.data.Status;
-import org.restlet.resource.Representation;
-import org.restlet.resource.Resource;
-import org.restlet.resource.StringRepresentation;
-import org.restlet.resource.Variant;
-
-import com.linkedin.helix.ZNRecord;
-import com.linkedin.helix.manager.zk.ZkClient;
-import com.linkedin.helix.webapp.RestAdminApplication;
-
-public class ZkChildResource extends Resource
-{
-  private final static Logger LOG = Logger.getLogger(ZkChildResource.class);
-
-  public ZkChildResource(Context context, Request request, Response response)
-  {
-    super(context, request, response);
-    getVariants().add(new Variant(MediaType.TEXT_PLAIN));
-    getVariants().add(new Variant(MediaType.APPLICATION_JSON));
-  }
-
-  @Override
-  public boolean allowGet()
-  {
-    return true;
-  }
-
-  @Override
-  public boolean allowPost()
-  {
-    return false;
-  }
-
-  @Override
-  public boolean allowPut()
-  {
-    return false;
-  }
-
-  @Override
-  public boolean allowDelete()
-  {
-    return true;
-  }
-
-  private String getZKPath()
-  {
-    String relativeRef = getRequest().getResourceRef().getRelativeRef().toString();
-    if (relativeRef.equals("."))
-    {
-      relativeRef = "";
-    }
-
-    // strip off trailing "/"
-    while (relativeRef.endsWith("/"))
-    {
-      relativeRef = relativeRef.substring(0, relativeRef.length() - 1);
-    }
-
-    return "/" + relativeRef;
-  }
-
-  @Override
-  public Representation represent(Variant variant)
-  {
-    StringRepresentation presentation = null;
-    String zkPath = getZKPath();
-
-    try
-    {
-      ZkClient zkClient =
-          (ZkClient) getContext().getAttributes().get(RestAdminApplication.ZKCLIENT);
-      ZNRecord result = readZkChild(zkPath, zkClient);
-
-      presentation =
-          new StringRepresentation(ClusterRepresentationUtil.ZNRecordToJson(result),
-                                   MediaType.APPLICATION_JSON);
-    }
-    catch (Exception e)
-    {
-      String error = ClusterRepresentationUtil.getErrorAsJsonStringFromException(e);
-      presentation = new StringRepresentation(error, MediaType.APPLICATION_JSON);
-
-      LOG.error("Error in read zkPath: " + zkPath, e);
-    }
-
-    return presentation;
-  }
-
-  private ZNRecord readZkChild(String zkPath, ZkClient zkClient)
-  {
-    ZNRecord result = null;
-
-    // read data and stat
-    Stat stat = new Stat();
-    ZNRecord data = zkClient.readDataAndStat(zkPath, stat, true);
-    if (data != null)
-    {
-      result = data;
-    }
-    else
-    {
-      result = new ZNRecord("");
-    }
-
-    // read childrenList
-    List<String> children = zkClient.getChildren(zkPath);
-    if (children != null && children.size() > 0)
-    {
-      result.setSimpleField("numChildren", "" + children.size());
-      result.setListField("childrenList", children);
-    } else
-    {
-      result.setSimpleField("numChildren", "" + 0);
-    }
-    return result;
-  }
-
-  @Override
-  public void removeRepresentations()
-  {
-    String zkPath = getZKPath();
-    try
-    {
-      ZkClient zkClient =
-          (ZkClient) getContext().getAttributes().get(RestAdminApplication.ZKCLIENT);
-      
-      List<String> childNames = zkClient.getChildren(zkPath);
-      if (childNames != null)
-      {
-        for (String childName : childNames)
-        {
-          String childPath = zkPath.equals("/")? "/" + childName : zkPath + "/" + childName;
-          zkClient.deleteRecursive(childPath);
-        }
-      }
-      
-      getResponse().setStatus(Status.SUCCESS_OK);
-    }
-    catch (Exception e)
-    {
-      getResponse().setEntity(ClusterRepresentationUtil.getErrorAsJsonStringFromException(e),
-                              MediaType.APPLICATION_JSON);
-      getResponse().setStatus(Status.SUCCESS_OK);
-      LOG.error("Error in delete zkChild: " + zkPath, e);
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/3cb7a1c9/helix-admin-webapp/src/main/java/com/linkedin/helix/webapp/resources/ZkPathResource.java
----------------------------------------------------------------------
diff --git a/helix-admin-webapp/src/main/java/com/linkedin/helix/webapp/resources/ZkPathResource.java b/helix-admin-webapp/src/main/java/com/linkedin/helix/webapp/resources/ZkPathResource.java
deleted file mode 100644
index 81bf073..0000000
--- a/helix-admin-webapp/src/main/java/com/linkedin/helix/webapp/resources/ZkPathResource.java
+++ /dev/null
@@ -1,213 +0,0 @@
-/**
- * Copyright (C) 2012 LinkedIn Inc <op...@linkedin.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *         http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.linkedin.helix.webapp.resources;
-
-import java.util.Date;
-import java.util.List;
-
-import org.apache.log4j.Logger;
-import org.apache.zookeeper.data.Stat;
-import org.restlet.Context;
-import org.restlet.data.MediaType;
-import org.restlet.data.Request;
-import org.restlet.data.Response;
-import org.restlet.data.Status;
-import org.restlet.resource.Representation;
-import org.restlet.resource.Resource;
-import org.restlet.resource.StringRepresentation;
-import org.restlet.resource.Variant;
-
-import com.linkedin.helix.HelixException;
-import com.linkedin.helix.ZNRecord;
-import com.linkedin.helix.manager.zk.ZkBaseDataAccessor;
-import com.linkedin.helix.manager.zk.ZkClient;
-import com.linkedin.helix.tools.ClusterSetup;
-import com.linkedin.helix.webapp.RestAdminApplication;
-
-public class ZkPathResource extends Resource
-{
-  private final static Logger LOG = Logger.getLogger(ZkPathResource.class);
-
-  public ZkPathResource(Context context, Request request, Response response)
-  {
-    super(context, request, response);
-    getVariants().add(new Variant(MediaType.TEXT_PLAIN));
-    getVariants().add(new Variant(MediaType.APPLICATION_JSON));
-  }
-
-  @Override
-  public boolean allowGet()
-  {
-    return true;
-  }
-
-  @Override
-  public boolean allowPost()
-  {
-    return true;
-  }
-
-  @Override
-  public boolean allowPut()
-  {
-    return false;
-  }
-
-  @Override
-  public boolean allowDelete()
-  {
-    return true;
-  }
-
-  private String getZKPath()
-  {
-    String relativeRef = getRequest().getResourceRef().getRelativeRef().toString();
-    if (relativeRef.equals("."))
-    {
-      relativeRef = "";
-    }
-
-    // strip off trailing "/"
-    while (relativeRef.endsWith("/"))
-    {
-      relativeRef = relativeRef.substring(0, relativeRef.length() - 1);
-    }
-
-    return "/" + relativeRef;
-  }
-
-  @Override
-  public void acceptRepresentation(Representation entity)
-  {
-    String zkPath = getZKPath();
-
-    try
-    {
-      JsonParameters jsonParameters = new JsonParameters(entity);
-      String command = jsonParameters.getCommand();
-
-      ZkClient zkClient =
-          (ZkClient) getContext().getAttributes().get(RestAdminApplication.ZKCLIENT);
-      
-      if (command.equalsIgnoreCase(JsonParameters.ZK_DELETE_CHILDREN))
-      {
-        List<String> childNames = zkClient.getChildren(zkPath);
-        if (childNames != null)
-        {
-          for (String childName : childNames)
-          {
-            String childPath = zkPath.equals("/")? "/" + childName : zkPath + "/" + childName;
-            zkClient.deleteRecursive(childPath);
-          }
-        }
-      }
-      else
-      {
-        throw new HelixException("Unsupported command: " + command
-            + ". Should be one of [" + JsonParameters.ZK_DELETE_CHILDREN + "]");
-      }
-
-      getResponse().setStatus(Status.SUCCESS_OK);
-    }
-    catch (Exception e)
-    {
-      getResponse().setEntity(ClusterRepresentationUtil.getErrorAsJsonStringFromException(e),
-                              MediaType.APPLICATION_JSON);
-      getResponse().setStatus(Status.SUCCESS_OK);
-      LOG.error("Error in post zkPath: " + zkPath, e);
-    }
-  }
-
-  @Override
-  public Representation represent(Variant variant)
-  {
-    StringRepresentation presentation = null;
-    String zkPath = getZKPath();
-
-    try
-    {
-      ZkClient zkClient =
-          (ZkClient) getContext().getAttributes().get(RestAdminApplication.ZKCLIENT);
-      ZNRecord result = readZkDataStatAndChild(zkPath, zkClient);
-
-      presentation =
-          new StringRepresentation(ClusterRepresentationUtil.ZNRecordToJson(result),
-                                   MediaType.APPLICATION_JSON);
-    }
-    catch (Exception e)
-    {
-      String error = ClusterRepresentationUtil.getErrorAsJsonStringFromException(e);
-      presentation = new StringRepresentation(error, MediaType.APPLICATION_JSON);
-
-      LOG.error("Error in read zkPath: " + zkPath, e);
-    }
-
-    return presentation;
-  }
-
-  private ZNRecord readZkDataStatAndChild(String zkPath, ZkClient zkClient)
-  {
-    ZNRecord result = null;
-
-    // read data and stat
-    Stat stat = new Stat();
-    ZNRecord data = zkClient.readDataAndStat(zkPath, stat, true);
-    if (data != null)
-    {
-      result = data;
-    }
-    else
-    {
-      result = new ZNRecord("");
-    }
-    result.setSimpleField("zkPath", zkPath);
-    result.setSimpleField("stat", stat.toString());
-    result.setSimpleField("numChildren", "" + stat.getNumChildren());
-    result.setSimpleField("ctime", "" + new Date(stat.getCtime()));
-    result.setSimpleField("mtime", "" + new Date(stat.getMtime()));
-    result.setSimpleField("dataLength", "" + stat.getDataLength());
-
-    // read childrenList
-    List<String> children = zkClient.getChildren(zkPath);
-    if (children != null && children.size() > 0)
-    {
-      result.setListField("childrenList", children);
-    }
-    return result;
-  }
-
-  @Override
-  public void removeRepresentations()
-  {
-    String zkPath = getZKPath();
-    try
-    {
-      ZkClient zkClient =
-          (ZkClient) getContext().getAttributes().get(RestAdminApplication.ZKCLIENT);
-      zkClient.deleteRecursive(zkPath);
-      
-      getResponse().setStatus(Status.SUCCESS_OK);
-    }
-    catch (Exception e)
-    {
-      getResponse().setEntity(ClusterRepresentationUtil.getErrorAsJsonStringFromException(e),
-                              MediaType.APPLICATION_JSON);
-      getResponse().setStatus(Status.SUCCESS_OK);
-      LOG.error("Error in delete zkPath: " + zkPath, e);
-    }
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/3cb7a1c9/helix-admin-webapp/src/test/conf/testng.xml
----------------------------------------------------------------------
diff --git a/helix-admin-webapp/src/test/conf/testng.xml b/helix-admin-webapp/src/test/conf/testng.xml
index 9cb2a54..fffa30c 100644
--- a/helix-admin-webapp/src/test/conf/testng.xml
+++ b/helix-admin-webapp/src/test/conf/testng.xml
@@ -20,8 +20,8 @@
 <suite name="Suite" parallel="none">
   <test name="Test" preserve-order="false">
     <packages>
-      <package name="com.linkedin.helix.webapp"/>
-      <package name="com.linkedin.helix.tools"/>
+      <package name="org.apache.helix.webapp"/>
+      <package name="org.apache.helix.tools"/>
     </packages>
   </test>
 </suite>

http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/3cb7a1c9/helix-admin-webapp/src/test/java/com/linkedin/helix/tools/AdminTestBase.java
----------------------------------------------------------------------
diff --git a/helix-admin-webapp/src/test/java/com/linkedin/helix/tools/AdminTestBase.java b/helix-admin-webapp/src/test/java/com/linkedin/helix/tools/AdminTestBase.java
deleted file mode 100644
index b9b2b26..0000000
--- a/helix-admin-webapp/src/test/java/com/linkedin/helix/tools/AdminTestBase.java
+++ /dev/null
@@ -1,68 +0,0 @@
-package com.linkedin.helix.tools;
-
-import java.util.logging.Level;
-
-import org.I0Itec.zkclient.ZkServer;
-import org.apache.log4j.Logger;
-import org.testng.AssertJUnit;
-import org.testng.annotations.AfterSuite;
-import org.testng.annotations.BeforeSuite;
-
-import com.linkedin.helix.TestHelper;
-import com.linkedin.helix.manager.zk.ZNRecordSerializer;
-import com.linkedin.helix.manager.zk.ZkClient;
-import com.linkedin.helix.tools.AdminTestHelper.AdminThread;
-import com.linkedin.helix.util.ZKClientPool;
-
-public class AdminTestBase
-{
-  private static Logger      LOG        = Logger.getLogger(AdminTestBase.class);
-  public static final String ZK_ADDR    = "localhost:2187";
-  protected final static int           ADMIN_PORT = 2202;
-
-  protected static ZkServer  _zkServer;
-  protected static ZkClient  _gZkClient;
-  protected static ClusterSetup _gSetupTool;
-
-  static AdminThread         _adminThread;
-
-  @BeforeSuite
-  public void beforeSuite() throws Exception
-  {
-    // TODO: use logging.properties file to config java.util.logging.Logger levels
-    java.util.logging.Logger topJavaLogger = java.util.logging.Logger.getLogger("");
-    topJavaLogger.setLevel(Level.WARNING);
-
-    // start zk
-    _zkServer = TestHelper.startZkSever(ZK_ADDR);
-    AssertJUnit.assertTrue(_zkServer != null);
-    ZKClientPool.reset();
-
-    _gZkClient = new ZkClient(ZK_ADDR);
-    _gZkClient.setZkSerializer(new ZNRecordSerializer());
-    _gSetupTool = new ClusterSetup(ZK_ADDR);
-    
-    // start admin
-    _adminThread = new AdminThread(ZK_ADDR, ADMIN_PORT);
-    _adminThread.start();
-    
-    // wait for the web service to start
-    Thread.sleep(100);
-  }
-
-  @AfterSuite
-  public void afterSuite()
-  {
-    // System.out.println("START AdminTestBase.afterSuite() at " + new Date(System.currentTimeMillis()));
-    // stop admin
-    _adminThread.stop();
-    
-    // stop zk
-    ZKClientPool.reset();
-    _gZkClient.close();
-
-    TestHelper.stopZkServer(_zkServer);
-    // System.out.println("END AdminTestBase.afterSuite() at " + new Date(System.currentTimeMillis()));
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/3cb7a1c9/helix-admin-webapp/src/test/java/com/linkedin/helix/tools/AdminTestHelper.java
----------------------------------------------------------------------
diff --git a/helix-admin-webapp/src/test/java/com/linkedin/helix/tools/AdminTestHelper.java b/helix-admin-webapp/src/test/java/com/linkedin/helix/tools/AdminTestHelper.java
deleted file mode 100644
index 1c1d233..0000000
--- a/helix-admin-webapp/src/test/java/com/linkedin/helix/tools/AdminTestHelper.java
+++ /dev/null
@@ -1,63 +0,0 @@
-package com.linkedin.helix.tools;
-
-import java.util.concurrent.CountDownLatch;
-
-import com.linkedin.helix.webapp.HelixAdminWebApp;
-
-public class AdminTestHelper
-{
-
-  public static class AdminThread
-  {
-    Thread _adminThread;
-    CountDownLatch _stopCountDown = new CountDownLatch(1);
-    String _zkAddr;
-    int _port;
-    
-    public AdminThread(String zkAddr, int port)
-    {
-      _zkAddr = zkAddr;
-      _port = port;
-    }
-    
-    public void start()
-    {
-      Thread adminThread = new Thread(new Runnable()
-      {
-        @Override
-        public void run()
-        {
-          HelixAdminWebApp app = null;
-          try
-          {
-            app = new HelixAdminWebApp(_zkAddr, _port);
-            app.start();
-            // Thread.currentThread().join();
-            _stopCountDown.await();
-          }
-          catch (Exception e)
-          {
-            e.printStackTrace();
-          }
-          finally
-          {
-            if (app != null)
-            {
-//              System.err.println("Stopping HelixAdminWebApp");
-              app.stop();
-            }
-          }
-        }
-      });
-
-      adminThread.setDaemon(true);
-      adminThread.start();
-    }
-    
-    public void stop()
-    {
-      _stopCountDown.countDown();
-    }
-  }
-  
-}

http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/3cb7a1c9/helix-admin-webapp/src/test/java/com/linkedin/helix/tools/TestHelixAdminScenariosRest.java
----------------------------------------------------------------------
diff --git a/helix-admin-webapp/src/test/java/com/linkedin/helix/tools/TestHelixAdminScenariosRest.java b/helix-admin-webapp/src/test/java/com/linkedin/helix/tools/TestHelixAdminScenariosRest.java
deleted file mode 100644
index 9cfa2a6..0000000
--- a/helix-admin-webapp/src/test/java/com/linkedin/helix/tools/TestHelixAdminScenariosRest.java
+++ /dev/null
@@ -1,739 +0,0 @@
-package com.linkedin.helix.tools;
-
-/*
- * Simulate all the admin tasks needed by using command line tool
- * 
- * */
-import java.io.FileWriter;
-import java.io.IOException;
-import java.io.PrintWriter;
-import java.io.StringReader;
-import java.io.StringWriter;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.codehaus.jackson.JsonGenerationException;
-import org.codehaus.jackson.JsonParseException;
-import org.codehaus.jackson.map.JsonMappingException;
-import org.codehaus.jackson.map.ObjectMapper;
-import org.codehaus.jackson.map.SerializationConfig;
-import org.restlet.Client;
-import org.restlet.Component;
-import org.restlet.data.MediaType;
-import org.restlet.data.Method;
-import org.restlet.data.Protocol;
-import org.restlet.data.Reference;
-import org.restlet.data.Request;
-import org.restlet.data.Response;
-import org.restlet.data.Status;
-import org.restlet.resource.Representation;
-import org.testng.Assert;
-import org.testng.annotations.Test;
-
-import com.linkedin.helix.HelixDataAccessor;
-import com.linkedin.helix.TestHelper;
-import com.linkedin.helix.TestHelper.StartCMResult;
-import com.linkedin.helix.ZNRecord;
-import com.linkedin.helix.controller.HelixControllerMain;
-import com.linkedin.helix.manager.zk.ZKUtil;
-import com.linkedin.helix.model.ExternalView;
-import com.linkedin.helix.model.LiveInstance;
-import com.linkedin.helix.tools.ClusterStateVerifier.BestPossAndExtViewZkVerifier;
-import com.linkedin.helix.tools.ClusterStateVerifier.MasterNbInExtViewVerifier;
-import com.linkedin.helix.webapp.RestAdminApplication;
-import com.linkedin.helix.webapp.resources.ClusterRepresentationUtil;
-import com.linkedin.helix.webapp.resources.JsonParameters;
-
-public class TestHelixAdminScenariosRest extends AdminTestBase
-{
-  Map<String, StartCMResult> _startCMResultMap = new HashMap<String, StartCMResult>();
-  RestAdminApplication       _adminApp;
-  Component                  _component;
-
-  public static String ObjectToJson(Object object) throws JsonGenerationException,
-      JsonMappingException,
-      IOException
-  {
-    ObjectMapper mapper = new ObjectMapper();
-    SerializationConfig serializationConfig = mapper.getSerializationConfig();
-    serializationConfig.set(SerializationConfig.Feature.INDENT_OUTPUT, true);
-
-    StringWriter sw = new StringWriter();
-    mapper.writeValue(sw, object);
-
-    return sw.toString();
-  }
-
-  public static <T extends Object> T JsonToObject(Class<T> clazz, String jsonString) throws JsonParseException,
-      JsonMappingException,
-      IOException
-  {
-    StringReader sr = new StringReader(jsonString);
-    ObjectMapper mapper = new ObjectMapper();
-    return mapper.readValue(sr, clazz);
-  }
-
-  @Test
-  public void testAddDeleteClusterAndInstanceAndResource() throws Exception
-  {
-    // Helix bug helix-102
-    // ZKPropertyTransferServer.PERIOD = 500;
-    // ZkPropertyTransferClient.SEND_PERIOD = 500;
-    // ZKPropertyTransferServer.getInstance().init(19999, ZK_ADDR);
-
-    /** ======================= Add clusters ============================== */
-
-    testAddCluster();
-
-    /** ================= Add / drop some resources =========================== */
-
-    testAddResource();
-
-    /** ====================== Add / delete instances =========================== */
-
-    testAddInstance();
-
-    /** ===================== Rebalance resource =========================== */
-
-    testRebalanceResource();
-
-    /** ==================== start the clusters ============================= */
-
-    testStartCluster();
-
-    /** ==================== drop add resource in live clusters =================== */
-    testDropAddResource();
-
-    /** ======================Operations with live node ============================ */
-
-    testInstanceOperations();
-
-    /** ======================Operations with partitions ============================ */
-
-    testEnablePartitions();
-
-    /** ============================ expand cluster =========================== */
-
-    testExpandCluster();
-
-    /** ============================ deactivate cluster =========================== */
-    testDeactivateCluster();
-
-    // wait all zk callbacks done
-    Thread.sleep(1000);
-  }
-
-  static String assertSuccessPostOperation(String url,
-                                           Map<String, String> jsonParameters,
-                                           boolean hasException) throws IOException
-  {
-    Reference resourceRef = new Reference(url);
-
-    Request request = new Request(Method.POST, resourceRef);
-    request.setEntity(JsonParameters.JSON_PARAMETERS + "="
-                          + ClusterRepresentationUtil.ObjectToJson(jsonParameters),
-                      MediaType.APPLICATION_ALL);
-    Client client = new Client(Protocol.HTTP);
-    Response response = client.handle(request);
-    Representation result = response.getEntity();
-    StringWriter sw = new StringWriter();
-    result.write(sw);
-
-    Assert.assertTrue(response.getStatus().getCode() == Status.SUCCESS_OK.getCode());
-    Assert.assertTrue(hasException == sw.toString().toLowerCase().contains("exception"));
-    return sw.toString();
-  }
-
-  static String assertSuccessPostOperation(String url,
-                                           Map<String, String> jsonParameters,
-                                           Map<String, String> extraForm,
-                                           boolean hasException) throws IOException
-  {
-    Reference resourceRef = new Reference(url);
-
-    Request request = new Request(Method.POST, resourceRef);
-    String entity =
-        JsonParameters.JSON_PARAMETERS + "="
-            + ClusterRepresentationUtil.ObjectToJson(jsonParameters);
-    for (String key : extraForm.keySet())
-    {
-      entity = entity + "&" + (key + "=" + extraForm.get(key));
-    }
-    request.setEntity(entity, MediaType.APPLICATION_ALL);
-    Client client = new Client(Protocol.HTTP);
-    Response response = client.handle(request);
-    Representation result = response.getEntity();
-    StringWriter sw = new StringWriter();
-    result.write(sw);
-
-    Assert.assertTrue(response.getStatus().getCode() == Status.SUCCESS_OK.getCode());
-    Assert.assertTrue(hasException == sw.toString().toLowerCase().contains("exception"));
-    return sw.toString();
-  }
-
-  void deleteUrl(String url, boolean hasException) throws IOException
-  {
-    Reference resourceRef = new Reference(url);
-    Request request = new Request(Method.DELETE, resourceRef);
-    Client client = new Client(Protocol.HTTP);
-    Response response = client.handle(request);
-    Representation result = response.getEntity();
-    StringWriter sw = new StringWriter();
-    result.write(sw);
-    Assert.assertTrue(hasException == sw.toString().toLowerCase().contains("exception"));
-  }
-
-  String getUrl(String url) throws IOException
-  {
-    Reference resourceRef = new Reference(url);
-    Request request = new Request(Method.GET, resourceRef);
-    Client client = new Client(Protocol.HTTP);
-    Response response = client.handle(request);
-    Representation result = response.getEntity();
-    StringWriter sw = new StringWriter();
-    result.write(sw);
-    return sw.toString();
-  }
-
-  String getClusterUrl(String cluster)
-  {
-    return "http://localhost:" + ADMIN_PORT + "/clusters" + "/" + cluster;
-  }
-
-  String getInstanceUrl(String cluster, String instance)
-  {
-    return "http://localhost:" + ADMIN_PORT + "/clusters/" + cluster + "/instances/"
-        + instance;
-  }
-
-  String getResourceUrl(String cluster, String resourceGroup)
-  {
-    return "http://localhost:" + ADMIN_PORT + "/clusters/" + cluster + "/resourceGroups/"
-        + resourceGroup;
-  }
-
-  void assertClusterSetupException(String command)
-  {
-    boolean exceptionThrown = false;
-    try
-    {
-      ClusterSetup.processCommandLineArgs(command.split(" "));
-    }
-    catch (Exception e)
-    {
-      exceptionThrown = true;
-    }
-    Assert.assertTrue(exceptionThrown);
-  }
-
-  public void testAddCluster() throws Exception
-  {
-    String url = "http://localhost:" + ADMIN_PORT + "/clusters";
-    Map<String, String> paraMap = new HashMap<String, String>();
-
-    // Normal add
-    paraMap.put(JsonParameters.CLUSTER_NAME, "clusterTest");
-    paraMap.put(JsonParameters.MANAGEMENT_COMMAND, ClusterSetup.addCluster);
-
-    String response = assertSuccessPostOperation(url, paraMap, false);
-    Assert.assertTrue(response.contains("clusterTest"));
-
-    // malformed cluster name
-    paraMap.put(JsonParameters.CLUSTER_NAME, "/ClusterTest");
-    response = assertSuccessPostOperation(url, paraMap, true);
-
-    // Add the grand cluster
-    paraMap.put(JsonParameters.CLUSTER_NAME, "Klazt3rz");
-    response = assertSuccessPostOperation(url, paraMap, false);
-    Assert.assertTrue(response.contains("Klazt3rz"));
-
-    paraMap.put(JsonParameters.CLUSTER_NAME, "\\ClusterTest");
-    response = assertSuccessPostOperation(url, paraMap, false);
-    Assert.assertTrue(response.contains("\\ClusterTest"));
-
-    // Add already exist cluster
-    paraMap.put(JsonParameters.CLUSTER_NAME, "clusterTest");
-    response = assertSuccessPostOperation(url, paraMap, true);
-
-    // delete cluster without resource and instance
-    Assert.assertTrue(ZKUtil.isClusterSetup("Klazt3rz", _gZkClient));
-    Assert.assertTrue(ZKUtil.isClusterSetup("clusterTest", _gZkClient));
-    Assert.assertTrue(ZKUtil.isClusterSetup("\\ClusterTest", _gZkClient));
-
-    paraMap.put(JsonParameters.MANAGEMENT_COMMAND, ClusterSetup.dropCluster);
-
-    String clusterUrl = getClusterUrl("\\ClusterTest");
-    deleteUrl(clusterUrl, false);
-
-    String clustersUrl = "http://localhost:" + ADMIN_PORT + "/clusters";
-    response = getUrl(clustersUrl);
-
-    clusterUrl = getClusterUrl("clusterTest1");
-    deleteUrl(clusterUrl, false);
-    response = getUrl(clustersUrl);
-    Assert.assertFalse(response.contains("clusterTest1"));
-
-    clusterUrl = getClusterUrl("clusterTest");
-    deleteUrl(clusterUrl, false);
-    response = getUrl(clustersUrl);
-    Assert.assertFalse(response.contains("clusterTest"));
-
-    clusterUrl = getClusterUrl("clusterTestOK");
-    deleteUrl(clusterUrl, false);
-
-    Assert.assertFalse(_gZkClient.exists("/clusterTest"));
-    Assert.assertFalse(_gZkClient.exists("/clusterTest1"));
-    Assert.assertFalse(_gZkClient.exists("/clusterTestOK"));
-
-    paraMap.put(JsonParameters.CLUSTER_NAME, "clusterTest1");
-    paraMap.put(JsonParameters.MANAGEMENT_COMMAND, ClusterSetup.addCluster);
-    response = assertSuccessPostOperation(url, paraMap, false);
-    response = getUrl(clustersUrl);
-    Assert.assertTrue(response.contains("clusterTest1"));
-  }
-
-  public void testAddResource() throws Exception
-  {
-    String reourcesUrl =
-        "http://localhost:" + ADMIN_PORT + "/clusters/clusterTest1/resourceGroups";
-
-    Map<String, String> paraMap = new HashMap<String, String>();
-    paraMap.put(JsonParameters.RESOURCE_GROUP_NAME, "db_22");
-    paraMap.put(JsonParameters.STATE_MODEL_DEF_REF, "MasterSlave");
-    paraMap.put(JsonParameters.PARTITIONS, "144");
-    paraMap.put(JsonParameters.MANAGEMENT_COMMAND, ClusterSetup.addResource);
-
-    String response = assertSuccessPostOperation(reourcesUrl, paraMap, false);
-    Assert.assertTrue(response.contains("db_22"));
-
-    paraMap.put(JsonParameters.RESOURCE_GROUP_NAME, "db_11");
-    paraMap.put(JsonParameters.STATE_MODEL_DEF_REF, "MasterSlave");
-    paraMap.put(JsonParameters.PARTITIONS, "44");
-
-    response = assertSuccessPostOperation(reourcesUrl, paraMap, false);
-    Assert.assertTrue(response.contains("db_11"));
-
-    // Add duplicate resource
-    paraMap.put(JsonParameters.RESOURCE_GROUP_NAME, "db_22");
-    paraMap.put(JsonParameters.STATE_MODEL_DEF_REF, "OnlineOffline");
-    paraMap.put(JsonParameters.PARTITIONS, "55");
-
-    response = assertSuccessPostOperation(reourcesUrl, paraMap, true);
-
-    // drop resource now
-    String resourceUrl = getResourceUrl("clusterTest1", "db_11");
-    deleteUrl(resourceUrl, false);
-    Assert.assertFalse(_gZkClient.exists("/clusterTest1/IDEALSTATES/db_11"));
-
-    paraMap.put(JsonParameters.RESOURCE_GROUP_NAME, "db_11");
-    paraMap.put(JsonParameters.STATE_MODEL_DEF_REF, "MasterSlave");
-    paraMap.put(JsonParameters.PARTITIONS, "44");
-    response = assertSuccessPostOperation(reourcesUrl, paraMap, false);
-    Assert.assertTrue(response.contains("db_11"));
-
-    Assert.assertTrue(_gZkClient.exists("/clusterTest1/IDEALSTATES/db_11"));
-  }
-
-  private void testDeactivateCluster() throws Exception,
-      InterruptedException
-  {
-    HelixDataAccessor accessor;
-    String path;
-    // deactivate cluster
-    String clusterUrl = getClusterUrl("clusterTest1");
-    Map<String, String> paraMap = new HashMap<String, String>();
-    paraMap.put(JsonParameters.ENABLED, "false");
-    paraMap.put(JsonParameters.GRAND_CLUSTER, "Klazt3rz");
-    paraMap.put(JsonParameters.MANAGEMENT_COMMAND, ClusterSetup.activateCluster);
-
-    String response = assertSuccessPostOperation(clusterUrl, paraMap, false);
-    Thread.sleep(6000);
-    Assert.assertFalse(_gZkClient.exists("/Klazt3rz/IDEALSTATES/clusterTest1"));
-
-    accessor = _startCMResultMap.get("localhost_1231")._manager.getHelixDataAccessor();
-    path = accessor.keyBuilder().controllerLeader().getPath();
-    Assert.assertFalse(_gZkClient.exists(path));
-
-    deleteUrl(clusterUrl, true);
-
-    Assert.assertTrue(_gZkClient.exists("/clusterTest1"));
-    // leader node should be gone
-    for (StartCMResult result : _startCMResultMap.values())
-    {
-      result._manager.disconnect();
-      result._thread.interrupt();
-    }
-    deleteUrl(clusterUrl, false);
-
-    Assert.assertFalse(_gZkClient.exists("/clusterTest1"));
-  }
-
-  private void testDropAddResource() throws Exception
-  {
-    ZNRecord record =
-        _gSetupTool._admin.getResourceIdealState("clusterTest1", "db_11").getRecord();
-    String x = ObjectToJson(record);
-
-    FileWriter fos = new FileWriter("/tmp/temp.log");
-    PrintWriter pw = new PrintWriter(fos);
-    pw.write(x);
-    pw.close();
-
-    String resourceUrl = getResourceUrl("clusterTest1", "db_11");
-    deleteUrl(resourceUrl, false);
-
-    boolean verifyResult =
-        ClusterStateVerifier.verifyByZkCallback(new BestPossAndExtViewZkVerifier(ZK_ADDR,
-                                                                                 "clusterTest1"));
-    Assert.assertTrue(verifyResult);
-    Map<String, String> paraMap = new HashMap<String, String>();
-    paraMap.put(JsonParameters.MANAGEMENT_COMMAND, ClusterSetup.addResource);
-    paraMap.put(JsonParameters.RESOURCE_GROUP_NAME, "db_11");
-    paraMap.put(JsonParameters.PARTITIONS, "22");
-    paraMap.put(JsonParameters.STATE_MODEL_DEF_REF, "MasterSlave");
-    String response =
-        assertSuccessPostOperation(getClusterUrl("clusterTest1") + "/resourceGroups",
-                                   paraMap,
-                                   false);
-
-    String idealStateUrl = getResourceUrl("clusterTest1", "db_11") + "/idealState";
-    Assert.assertTrue(response.contains("db_11"));
-    paraMap.put(JsonParameters.MANAGEMENT_COMMAND, ClusterSetup.addIdealState);
-    Map<String, String> extraform = new HashMap<String, String>();
-    extraform.put(JsonParameters.NEW_IDEAL_STATE, x);
-    response = assertSuccessPostOperation(idealStateUrl, paraMap, extraform, false);
-
-    verifyResult =
-        ClusterStateVerifier.verifyByZkCallback(new BestPossAndExtViewZkVerifier(ZK_ADDR,
-                                                                                 "clusterTest1"));
-    Assert.assertTrue(verifyResult);
-
-    ZNRecord record2 =
-        _gSetupTool._admin.getResourceIdealState("clusterTest1", "db_11").getRecord();
-    Assert.assertTrue(record2.equals(record));
-  }
-
-  private void testExpandCluster() throws Exception
-  {
-    boolean verifyResult;
-
-    String clusterUrl = getClusterUrl("clusterTest1");
-    String instancesUrl = clusterUrl + "/instances";
-
-    Map<String, String> paraMap = new HashMap<String, String>();
-    paraMap.put(JsonParameters.INSTANCE_NAMES,
-                "localhost:12331;localhost:12341;localhost:12351;localhost:12361");
-    paraMap.put(JsonParameters.MANAGEMENT_COMMAND, ClusterSetup.addInstance);
-
-    String response = assertSuccessPostOperation(instancesUrl, paraMap, false);
-    String[] hosts =
-        "localhost:12331;localhost:12341;localhost:12351;localhost:12361".split(";");
-    for (String host : hosts)
-    {
-      Assert.assertTrue(response.contains(host.replace(':', '_')));
-    }
-    paraMap.clear();
-    paraMap.put(JsonParameters.MANAGEMENT_COMMAND, ClusterSetup.expandCluster);
-    response = assertSuccessPostOperation(clusterUrl, paraMap, false);
-
-    for (int i = 3; i <= 6; i++)
-    {
-      StartCMResult result =
-          TestHelper.startDummyProcess(ZK_ADDR, "clusterTest1", "localhost_123" + i + "1");
-      _startCMResultMap.put("localhost_123" + i + "1", result);
-    }
-
-    verifyResult =
-        ClusterStateVerifier.verifyByZkCallback(new MasterNbInExtViewVerifier(ZK_ADDR,
-                                                                              "clusterTest1"));
-    Assert.assertTrue(verifyResult);
-
-    verifyResult =
-        ClusterStateVerifier.verifyByZkCallback(new BestPossAndExtViewZkVerifier(ZK_ADDR,
-                                                                                 "clusterTest1"));
-    Assert.assertTrue(verifyResult);
-  }
-
-  private void testEnablePartitions() throws IOException,
-      InterruptedException
-  {
-    HelixDataAccessor accessor;
-    accessor = _startCMResultMap.get("localhost_1231")._manager.getHelixDataAccessor();
-    // drop node should fail as not disabled
-    String hostName = "localhost_1231";
-    String instanceUrl = getInstanceUrl("clusterTest1", hostName);
-    ExternalView ev = accessor.getProperty(accessor.keyBuilder().externalView("db_11"));
-
-    Map<String, String> paraMap = new HashMap<String, String>();
-    paraMap.put(JsonParameters.MANAGEMENT_COMMAND, ClusterSetup.enablePartition);
-    paraMap.put(JsonParameters.ENABLED, "false");
-    paraMap.put(JsonParameters.PARTITION, "db_11_0;db_11_15");
-    paraMap.put(JsonParameters.RESOURCE, "db_11");
-
-    String response = assertSuccessPostOperation(instanceUrl, paraMap, false);
-    Assert.assertTrue(response.contains("DISABLED_PARTITION"));
-    Assert.assertTrue(response.contains("db_11_0"));
-    Assert.assertTrue(response.contains("db_11_15"));
-
-    boolean verifyResult =
-        ClusterStateVerifier.verifyByZkCallback(new BestPossAndExtViewZkVerifier(ZK_ADDR,
-                                                                                 "clusterTest1"));
-    Assert.assertTrue(verifyResult);
-
-    ev = accessor.getProperty(accessor.keyBuilder().externalView("db_11"));
-    Assert.assertEquals(ev.getStateMap("db_11_0").get(hostName), "OFFLINE");
-    Assert.assertEquals(ev.getStateMap("db_11_15").get(hostName), "OFFLINE");
-
-    paraMap.put(JsonParameters.ENABLED, "true");
-    response = assertSuccessPostOperation(instanceUrl, paraMap, false);
-    Assert.assertFalse(response.contains("db_11_0"));
-    Assert.assertFalse(response.contains("db_11_15"));
-
-    verifyResult =
-        ClusterStateVerifier.verifyByZkCallback(new BestPossAndExtViewZkVerifier(ZK_ADDR,
-                                                                                 "clusterTest1"));
-    Assert.assertTrue(verifyResult);
-
-    ev = accessor.getProperty(accessor.keyBuilder().externalView("db_11"));
-    Assert.assertEquals(ev.getStateMap("db_11_0").get(hostName), "MASTER");
-    Assert.assertEquals(ev.getStateMap("db_11_15").get(hostName), "SLAVE");
-  }
-
-  private void testInstanceOperations() throws Exception
-  {
-    HelixDataAccessor accessor;
-    // drop node should fail as not disabled
-    String instanceUrl = getInstanceUrl("clusterTest1", "localhost_1232");
-    deleteUrl(instanceUrl, true);
-
-    // disabled node
-    Map<String, String> paraMap = new HashMap<String, String>();
-    paraMap.put(JsonParameters.MANAGEMENT_COMMAND, ClusterSetup.enableInstance);
-    paraMap.put(JsonParameters.ENABLED, "false");
-    String response = assertSuccessPostOperation(instanceUrl, paraMap, false);
-    Assert.assertTrue(response.contains("false"));
-
-    // Cannot drop / swap
-    deleteUrl(instanceUrl, true);
-
-    String instancesUrl = getClusterUrl("clusterTest1") + "/instances";
-    paraMap.put(JsonParameters.MANAGEMENT_COMMAND, ClusterSetup.swapInstance);
-    paraMap.put(JsonParameters.OLD_INSTANCE, "localhost_1232");
-    paraMap.put(JsonParameters.NEW_INSTANCE, "localhost_12320");
-    response = assertSuccessPostOperation(instancesUrl, paraMap, true);
-
-    // disconnect the node
-    _startCMResultMap.get("localhost_1232")._manager.disconnect();
-    _startCMResultMap.get("localhost_1232")._thread.interrupt();
-
-    // add new node then swap instance
-    paraMap.put(JsonParameters.MANAGEMENT_COMMAND, ClusterSetup.addInstance);
-    paraMap.put(JsonParameters.INSTANCE_NAME, "localhost_12320");
-    response = assertSuccessPostOperation(instancesUrl, paraMap, false);
-    Assert.assertTrue(response.contains("localhost_12320"));
-
-    // swap instance. The instance get swapped out should not exist anymore
-    paraMap.put(JsonParameters.MANAGEMENT_COMMAND, ClusterSetup.swapInstance);
-    paraMap.put(JsonParameters.OLD_INSTANCE, "localhost_1232");
-    paraMap.put(JsonParameters.NEW_INSTANCE, "localhost_12320");
-    response = assertSuccessPostOperation(instancesUrl, paraMap, false);
-    Assert.assertTrue(response.contains("localhost_12320"));
-    Assert.assertFalse(response.contains("localhost_1232\""));
-
-    accessor = _startCMResultMap.get("localhost_1231")._manager.getHelixDataAccessor();
-    String path = accessor.keyBuilder().instanceConfig("localhost_1232").getPath();
-    Assert.assertFalse(_gZkClient.exists(path));
-
-    _startCMResultMap.put("localhost_12320",
-                          TestHelper.startDummyProcess(ZK_ADDR,
-                                                       "clusterTest1",
-                                                       "localhost_12320"));
-  }
-
-  private void testStartCluster() throws Exception,
-      InterruptedException
-  {
-    // start mock nodes
-    for (int i = 0; i < 6; i++)
-    {
-      StartCMResult result =
-          TestHelper.startDummyProcess(ZK_ADDR, "clusterTest1", "localhost_123" + i);
-      _startCMResultMap.put("localhost_123" + i, result);
-    }
-
-    // start controller nodes
-    for (int i = 0; i < 2; i++)
-    {
-      StartCMResult result =
-          TestHelper.startController("Klazt3rz",
-                                     "controller_900" + i,
-                                     ZK_ADDR,
-                                     HelixControllerMain.DISTRIBUTED);
-
-      _startCMResultMap.put("controller_900" + i, result);
-    }
-    Thread.sleep(100);
-
-    // activate clusters
-    // wrong grand clustername
-
-    String clusterUrl = getClusterUrl("clusterTest1");
-    Map<String, String> paraMap = new HashMap<String, String>();
-    paraMap.put(JsonParameters.ENABLED, "true");
-    paraMap.put(JsonParameters.GRAND_CLUSTER, "Klazters");
-    paraMap.put(JsonParameters.MANAGEMENT_COMMAND, ClusterSetup.activateCluster);
-
-    String response = assertSuccessPostOperation(clusterUrl, paraMap, true);
-
-    // wrong cluster name
-    clusterUrl = getClusterUrl("clusterTest2");
-    paraMap.put(JsonParameters.GRAND_CLUSTER, "Klazt3rz");
-    response = assertSuccessPostOperation(clusterUrl, paraMap, true);
-
-    paraMap.put(JsonParameters.ENABLED, "true");
-    paraMap.put(JsonParameters.GRAND_CLUSTER, "Klazt3rz");
-    paraMap.put(JsonParameters.MANAGEMENT_COMMAND, ClusterSetup.activateCluster);
-    clusterUrl = getClusterUrl("clusterTest1");
-    response = assertSuccessPostOperation(clusterUrl, paraMap, false);
-    Thread.sleep(500);
-
-    deleteUrl(clusterUrl, true);
-
-    // verify leader node
-    HelixDataAccessor accessor =
-        _startCMResultMap.get("controller_9001")._manager.getHelixDataAccessor();
-    LiveInstance controllerLeader =
-        accessor.getProperty(accessor.keyBuilder().controllerLeader());
-    Assert.assertTrue(controllerLeader.getInstanceName().startsWith("controller_900"));
-
-    accessor = _startCMResultMap.get("localhost_1232")._manager.getHelixDataAccessor();
-    LiveInstance leader = accessor.getProperty(accessor.keyBuilder().controllerLeader());
-    Assert.assertTrue(leader.getInstanceName().startsWith("controller_900"));
-
-    boolean verifyResult =
-        ClusterStateVerifier.verifyByZkCallback(new MasterNbInExtViewVerifier(ZK_ADDR,
-                                                                              "clusterTest1"));
-    Assert.assertTrue(verifyResult);
-
-    verifyResult =
-        ClusterStateVerifier.verifyByZkCallback(new BestPossAndExtViewZkVerifier(ZK_ADDR,
-                                                                                 "clusterTest1"));
-    Assert.assertTrue(verifyResult);
-  }
-
-  private void testRebalanceResource() throws Exception
-  {
-    String resourceUrl = getResourceUrl("clusterTest1", "db_11");
-    Map<String, String> paraMap = new HashMap<String, String>();
-    paraMap.put(JsonParameters.REPLICAS, "3");
-    paraMap.put(JsonParameters.MANAGEMENT_COMMAND, ClusterSetup.rebalance);
-
-    String ISUrl = resourceUrl + "/idealState";
-    String response = assertSuccessPostOperation(ISUrl, paraMap, false);
-    ZNRecord record = JsonToObject(ZNRecord.class, response);
-    Assert.assertTrue(record.getId().equalsIgnoreCase("db_11"));
-    Assert.assertTrue((((List<String>) (record.getListFields().values().toArray()[0]))).size() == 3);
-    Assert.assertTrue((((Map<String, String>) (record.getMapFields().values().toArray()[0]))).size() == 3);
-
-    deleteUrl(resourceUrl, false);
-
-    // re-add and rebalance
-    String reourcesUrl =
-        "http://localhost:" + ADMIN_PORT + "/clusters/clusterTest1/resourceGroups";
-    response = getUrl(reourcesUrl);
-    Assert.assertFalse(response.contains("db_11"));
-
-    paraMap = new HashMap<String, String>();
-    paraMap.put(JsonParameters.RESOURCE_GROUP_NAME, "db_11");
-    paraMap.put(JsonParameters.STATE_MODEL_DEF_REF, "MasterSlave");
-    paraMap.put(JsonParameters.PARTITIONS, "48");
-    paraMap.put(JsonParameters.MANAGEMENT_COMMAND, ClusterSetup.addResource);
-
-    response = assertSuccessPostOperation(reourcesUrl, paraMap, false);
-    Assert.assertTrue(response.contains("db_11"));
-
-    ISUrl = resourceUrl + "/idealState";
-    paraMap.put(JsonParameters.REPLICAS, "3");
-    paraMap.put(JsonParameters.MANAGEMENT_COMMAND, ClusterSetup.rebalance);
-    response = assertSuccessPostOperation(ISUrl, paraMap, false);
-    record = JsonToObject(ZNRecord.class, response);
-    Assert.assertTrue(record.getId().equalsIgnoreCase("db_11"));
-    Assert.assertTrue((((List<String>) (record.getListFields().values().toArray()[0]))).size() == 3);
-    Assert.assertTrue((((Map<String, String>) (record.getMapFields().values().toArray()[0]))).size() == 3);
-
-    // rebalance with key prefix
-    resourceUrl = getResourceUrl("clusterTest1", "db_22");
-    ISUrl = resourceUrl + "/idealState";
-    paraMap.put(JsonParameters.REPLICAS, "2");
-    paraMap.put(JsonParameters.RESOURCE_KEY_PREFIX, "alias");
-    paraMap.put(JsonParameters.MANAGEMENT_COMMAND, ClusterSetup.rebalance);
-    response = assertSuccessPostOperation(ISUrl, paraMap, false);
-    record = JsonToObject(ZNRecord.class, response);
-    Assert.assertTrue(record.getId().equalsIgnoreCase("db_22"));
-    Assert.assertTrue((((List<String>) (record.getListFields().values().toArray()[0]))).size() == 2);
-    Assert.assertTrue((((Map<String, String>) (record.getMapFields().values().toArray()[0]))).size() == 2);
-    Assert.assertTrue((((String) (record.getMapFields().keySet().toArray()[0]))).startsWith("alias_"));
-  }
-
-  private void testAddInstance() throws Exception
-  {
-    String clusterUrl = getClusterUrl("clusterTest1");
-    Map<String, String> paraMap = new HashMap<String, String>();
-    paraMap.put(JsonParameters.MANAGEMENT_COMMAND, ClusterSetup.addInstance);
-    String response = null;
-    // Add instances to cluster
-    String instancesUrl = clusterUrl + "/instances";
-    for (int i = 0; i < 3; i++)
-    {
-
-      paraMap.put(JsonParameters.INSTANCE_NAME, "localhost:123" + i);
-      response = assertSuccessPostOperation(instancesUrl, paraMap, false);
-      Assert.assertTrue(response.contains(("localhost:123" + i).replace(':', '_')));
-    }
-    paraMap.remove(JsonParameters.INSTANCE_NAME);
-    paraMap.put(JsonParameters.INSTANCE_NAMES,
-                "localhost:1233;localhost:1234;localhost:1235;localhost:1236");
-
-    response = assertSuccessPostOperation(instancesUrl, paraMap, false);
-    for (int i = 3; i <= 6; i++)
-    {
-      Assert.assertTrue(response.contains("localhost_123" + i));
-    }
-
-    // delete one node without disable
-    String instanceUrl = instancesUrl + "/localhost_1236";
-    deleteUrl(instanceUrl, true);
-    response = getUrl(instancesUrl);
-    Assert.assertTrue(response.contains("localhost_1236"));
-
-    // delete non-exist node
-    instanceUrl = instancesUrl + "/localhost_12367";
-    deleteUrl(instanceUrl, true);
-    response = getUrl(instancesUrl);
-    Assert.assertFalse(response.contains("localhost_12367"));
-
-    // disable node
-    instanceUrl = instancesUrl + "/localhost_1236";
-    paraMap.put(JsonParameters.MANAGEMENT_COMMAND, ClusterSetup.enableInstance);
-    paraMap.put(JsonParameters.ENABLED, "false");
-    response = assertSuccessPostOperation(instanceUrl, paraMap, false);
-    Assert.assertTrue(response.contains("false"));
-
-    deleteUrl(instanceUrl, false);
-
-    // add node to controller cluster
-    paraMap.remove(JsonParameters.INSTANCE_NAME);
-    paraMap.put(JsonParameters.MANAGEMENT_COMMAND, ClusterSetup.addInstance);
-    paraMap.put(JsonParameters.INSTANCE_NAMES, "controller:9000;controller:9001");
-    String controllerUrl = getClusterUrl("Klazt3rz") + "/instances";
-    response = assertSuccessPostOperation(controllerUrl, paraMap, false);
-    Assert.assertTrue(response.contains("controller_9000"));
-    Assert.assertTrue(response.contains("controller_9001"));
-
-    // add a dup host
-    paraMap.remove(JsonParameters.INSTANCE_NAMES);
-    paraMap.put(JsonParameters.INSTANCE_NAME, "localhost:1234");
-    response = assertSuccessPostOperation(instancesUrl, paraMap, true);
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/3cb7a1c9/helix-admin-webapp/src/test/java/com/linkedin/helix/tools/TestResetInstance.java
----------------------------------------------------------------------
diff --git a/helix-admin-webapp/src/test/java/com/linkedin/helix/tools/TestResetInstance.java b/helix-admin-webapp/src/test/java/com/linkedin/helix/tools/TestResetInstance.java
deleted file mode 100644
index 7a38b54..0000000
--- a/helix-admin-webapp/src/test/java/com/linkedin/helix/tools/TestResetInstance.java
+++ /dev/null
@@ -1,117 +0,0 @@
-package com.linkedin.helix.tools;
-
-import java.util.Date;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Set;
-
-import org.testng.Assert;
-import org.testng.annotations.Test;
-
-import com.linkedin.helix.TestHelper;
-import com.linkedin.helix.mock.controller.ClusterController;
-import com.linkedin.helix.mock.storage.MockParticipant;
-import com.linkedin.helix.mock.storage.MockParticipant.ErrTransition;
-import com.linkedin.helix.webapp.resources.JsonParameters;
-
-public class TestResetInstance extends AdminTestBase
-{
-  @Test
-  public void testResetInstance() throws Exception
-  {
-    String className = TestHelper.getTestClassName();
-    String methodName = TestHelper.getTestMethodName();
-    String clusterName = className + "_" + methodName;
-    final int n = 5;
-
-    System.out.println("START " + clusterName + " at "
-        + new Date(System.currentTimeMillis()));
-
-    TestHelper.setupCluster(clusterName, ZK_ADDR, 12918, // participant port
-                            "localhost", // participant name prefix
-                            "TestDB", // resource name prefix
-                            1, // resources
-                            10, // partitions per resource
-                            n, // number of nodes
-                            3, // replicas
-                            "MasterSlave",
-                            true); // do rebalance
-    
-//    // start admin thread
-//    AdminThread adminThread = new AdminThread(ZK_ADDR, _port);
-//    adminThread.start();
-
-    // start controller
-    ClusterController controller =
-        new ClusterController(clusterName, "controller_0", ZK_ADDR);
-    controller.syncStart();
-
-    Map<String, Set<String>> errPartitions = new HashMap<String, Set<String>>()
-    {
-      {
-        put("SLAVE-MASTER", TestHelper.setOf("TestDB0_4"));
-        put("OFFLINE-SLAVE", TestHelper.setOf("TestDB0_8"));
-      }
-    };
-
-    // start mock participants
-    MockParticipant[] participants = new MockParticipant[n];
-    for (int i = 0; i < n; i++)
-    {
-      String instanceName = "localhost_" + (12918 + i);
-
-      if (i == 0)
-      {
-        participants[i] =
-            new MockParticipant(clusterName,
-                                instanceName,
-                                ZK_ADDR,
-                                new ErrTransition(errPartitions));
-      }
-      else
-      {
-        participants[i] = new MockParticipant(clusterName, instanceName, ZK_ADDR);
-      }
-      participants[i].syncStart();
-    }
-
-    // verify cluster
-    Map<String, Map<String, String>> errStateMap =
-        new HashMap<String, Map<String, String>>();
-    errStateMap.put("TestDB0", new HashMap<String, String>());
-    errStateMap.get("TestDB0").put("TestDB0_4", "localhost_12918");
-    errStateMap.get("TestDB0").put("TestDB0_8", "localhost_12918");
-    boolean result =
-        ClusterStateVerifier.verifyByZkCallback((new ClusterStateVerifier.BestPossAndExtViewZkVerifier(ZK_ADDR,
-                                                                                                       clusterName,
-                                                                                                       errStateMap)));
-    Assert.assertTrue(result, "Cluster verification fails");
-
-    // reset node "localhost_12918"
-    participants[0].setTransition(null);
-    String hostName = "localhost_12918";
-    String instanceUrl = "http://localhost:" + ADMIN_PORT + "/clusters/" + clusterName + "/instances/" + hostName;
-
-    Map<String, String> paramMap = new HashMap<String, String>();
-    paramMap.put(JsonParameters.MANAGEMENT_COMMAND, ClusterSetup.resetInstance);
-    TestHelixAdminScenariosRest.assertSuccessPostOperation(instanceUrl, paramMap, false);
-    
-    result =
-        ClusterStateVerifier.verifyByZkCallback((new ClusterStateVerifier.BestPossAndExtViewZkVerifier(ZK_ADDR,
-                                                                                                       clusterName)));
-    Assert.assertTrue(result, "Cluster verification fails");
-    
-    // clean up
-    // wait for all zk callbacks done
-    Thread.sleep(1000);
-//    adminThread.stop();
-    controller.syncStop();
-    for (int i = 0; i < 5; i++)
-    {
-      participants[i].syncStop();
-    }
-
-    System.out.println("END " + clusterName + " at "
-        + new Date(System.currentTimeMillis()));
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/3cb7a1c9/helix-admin-webapp/src/test/java/com/linkedin/helix/tools/TestResetPartitionState.java
----------------------------------------------------------------------
diff --git a/helix-admin-webapp/src/test/java/com/linkedin/helix/tools/TestResetPartitionState.java b/helix-admin-webapp/src/test/java/com/linkedin/helix/tools/TestResetPartitionState.java
deleted file mode 100644
index d4dd9f7..0000000
--- a/helix-admin-webapp/src/test/java/com/linkedin/helix/tools/TestResetPartitionState.java
+++ /dev/null
@@ -1,211 +0,0 @@
-/**
- * Copyright (C) 2012 LinkedIn Inc <op...@linkedin.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *         http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.linkedin.helix.tools;
-
-import java.util.Date;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Set;
-
-import org.testng.Assert;
-import org.testng.annotations.Test;
-
-import com.linkedin.helix.NotificationContext;
-import com.linkedin.helix.PropertyKey.Builder;
-import com.linkedin.helix.TestHelper;
-import com.linkedin.helix.ZNRecord;
-import com.linkedin.helix.manager.zk.ZKHelixDataAccessor;
-import com.linkedin.helix.manager.zk.ZkBaseDataAccessor;
-import com.linkedin.helix.mock.controller.ClusterController;
-import com.linkedin.helix.mock.storage.MockParticipant;
-import com.linkedin.helix.mock.storage.MockParticipant.ErrTransition;
-import com.linkedin.helix.model.LiveInstance;
-import com.linkedin.helix.model.Message;
-import com.linkedin.helix.webapp.resources.JsonParameters;
-
-public class TestResetPartitionState extends AdminTestBase
-{
-  String getClusterUrl(String cluster)
-  {
-    return "http://localhost:" + ADMIN_PORT + "/clusters" + "/" + cluster;
-  }
-  
-  String getInstanceUrl(String cluster, String instance)
-  {
-    return "http://localhost:" + ADMIN_PORT + "/clusters/" + cluster + "/instances/" + instance;
-  }
-  
-  String getResourceUrl(String cluster, String resourceGroup)
-  {
-    return "http://localhost:" + ADMIN_PORT + "/clusters/" + cluster + "/resourceGroups/" + resourceGroup;
-  }
-  
-  int _errToOfflineInvoked = 0;
-  class ErrTransitionWithResetCnt extends ErrTransition
-  {
-    public ErrTransitionWithResetCnt(Map<String, Set<String>> errPartitions)
-    {
-      super(errPartitions);
-    }
-
-    @Override
-    public void doTransition(Message message, NotificationContext context)
-    {
-      super.doTransition(message, context);
-      String fromState = message.getFromState();
-      String toState = message.getToState();
-      if (fromState.equals("ERROR") && toState.equals("OFFLINE"))
-      {
-        // System.err.println("doReset() invoked");
-        _errToOfflineInvoked++;
-      }
-    }
-  }
-  
-  @Test()
-  public void testResetPartitionState() throws Exception
-  {
-    String className = TestHelper.getTestClassName();
-    String methodName = TestHelper.getTestMethodName();
-    String clusterName = className + "_" + methodName;
-    final int n = 5;
-
-    System.out.println("START " + clusterName + " at "
-        + new Date(System.currentTimeMillis()));
-
-    TestHelper.setupCluster(clusterName, ZK_ADDR, 12918, // participant port
-                            "localhost", // participant name prefix
-                            "TestDB", // resource name prefix
-                            1, // resources
-                            10, // partitions per resource
-                            n, // number of nodes
-                            3, // replicas
-                            "MasterSlave",
-                            true); // do rebalance
-
-    // start admin thread
-//    AdminThread adminThread = new AdminThread(ZK_ADDR, _port);
-//    adminThread.start();
-    
-    
-    // start controller
-    ClusterController controller =
-        new ClusterController(clusterName, "controller_0", ZK_ADDR);
-    controller.syncStart();
-
-    Map<String, Set<String>> errPartitions = new HashMap<String, Set<String>>()
-    {
-      {
-        put("SLAVE-MASTER", TestHelper.setOf("TestDB0_4"));
-        put("OFFLINE-SLAVE", TestHelper.setOf("TestDB0_8"));
-      }
-    };
-
-    // start mock participants
-    MockParticipant[] participants = new MockParticipant[n];
-    for (int i = 0; i < n; i++)
-    {
-      String instanceName = "localhost_" + (12918 + i);
-
-      if (i == 0)
-      {
-        participants[i] =
-            new MockParticipant(clusterName,
-                                instanceName,
-                                ZK_ADDR,
-                                new ErrTransition(errPartitions));
-      }
-      else
-      {
-        participants[i] = new MockParticipant(clusterName, instanceName, ZK_ADDR);
-      }
-      participants[i].syncStart();
-    }
-
-    // verify cluster
-    Map<String, Map<String, String>> errStateMap =
-        new HashMap<String, Map<String, String>>();
-    errStateMap.put("TestDB0", new HashMap<String, String>());
-    errStateMap.get("TestDB0").put("TestDB0_4", "localhost_12918");
-    errStateMap.get("TestDB0").put("TestDB0_8", "localhost_12918");
-    boolean result =
-        ClusterStateVerifier.verifyByZkCallback((new ClusterStateVerifier.BestPossAndExtViewZkVerifier(ZK_ADDR,
-                                                                                                       clusterName,
-                                                                                                       errStateMap)));
-    Assert.assertTrue(result, "Cluster verification fails");
-    
-    
-    // reset a non-exist partition, should throw exception
-    String hostName = "localhost_12918";
-    String instanceUrl = getInstanceUrl(clusterName, hostName);
-
-    Map<String, String> paramMap = new HashMap<String, String>();
-    paramMap.put(JsonParameters.MANAGEMENT_COMMAND, ClusterSetup.resetPartition);
-    paramMap.put(JsonParameters.PARTITION, "TestDB0_nonExist");
-    paramMap.put(JsonParameters.RESOURCE, "TestDB0");
-    System.out.println("IGNORABLE exception: test reset non-exist partition");
-    TestHelixAdminScenariosRest.assertSuccessPostOperation(instanceUrl, paramMap, true);
-    
-    
-    // reset one error partition
-    errPartitions.clear();  // remove("SLAVE-MASTER");
-    participants[0].setTransition(new ErrTransitionWithResetCnt(errPartitions));
-    clearStatusUpdate(clusterName, "localhost_12918", "TestDB0", "TestDB0_4");
-    _errToOfflineInvoked = 0;
-
-    paramMap.put(JsonParameters.PARTITION, "TestDB0_4 TestDB0_8");
-    TestHelixAdminScenariosRest.assertSuccessPostOperation(instanceUrl, paramMap, false);
-
-    Thread.sleep(400); // wait reset to be done
-    System.out.println("IGNORABLE exception: test reset non-error partition");
-    TestHelixAdminScenariosRest.assertSuccessPostOperation(instanceUrl, paramMap, true);
-
-    result =
-        ClusterStateVerifier.verifyByZkCallback(new ClusterStateVerifier.BestPossAndExtViewZkVerifier(ZK_ADDR,
-                                                                                                   clusterName));
-    Assert.assertTrue(result);
-    Assert.assertEquals(_errToOfflineInvoked, 2, "reset() should be invoked 2 times");
-    
-
-    // clean up
-    // wait for all zk callbacks done
-    Thread.sleep(1000);
-//    adminThread.stop();
-    controller.syncStop();
-    for (int i = 0; i < 5; i++)
-    {
-      participants[i].syncStop();
-    }
-
-    System.out.println("END " + clusterName + " at "
-        + new Date(System.currentTimeMillis()));
-  }
-
-  private void clearStatusUpdate(String clusterName, String instance, String resource,
-      String partition)
-  {
-    // clear status update for error partition so verify() will not fail on old
-    // errors
-    ZKHelixDataAccessor accessor = new ZKHelixDataAccessor(clusterName, new ZkBaseDataAccessor<ZNRecord>(_gZkClient));
-    Builder keyBuilder = accessor.keyBuilder();
-
-    LiveInstance liveInstance = accessor.getProperty(keyBuilder.liveInstance(instance));
-    accessor.removeProperty(keyBuilder.stateTransitionStatus(instance, liveInstance.getSessionId(), resource, partition));
-
-   }
-  
-  // TODO: throw exception in reset()
-}

http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/3cb7a1c9/helix-admin-webapp/src/test/java/com/linkedin/helix/tools/TestResetResource.java
----------------------------------------------------------------------
diff --git a/helix-admin-webapp/src/test/java/com/linkedin/helix/tools/TestResetResource.java b/helix-admin-webapp/src/test/java/com/linkedin/helix/tools/TestResetResource.java
deleted file mode 100644
index dec79e3..0000000
--- a/helix-admin-webapp/src/test/java/com/linkedin/helix/tools/TestResetResource.java
+++ /dev/null
@@ -1,118 +0,0 @@
-package com.linkedin.helix.tools;
-
-import java.util.Date;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Set;
-
-import org.testng.Assert;
-import org.testng.annotations.Test;
-
-import com.linkedin.helix.TestHelper;
-import com.linkedin.helix.mock.controller.ClusterController;
-import com.linkedin.helix.mock.storage.MockParticipant;
-import com.linkedin.helix.mock.storage.MockParticipant.ErrTransition;
-import com.linkedin.helix.webapp.resources.JsonParameters;
-
-public class TestResetResource extends AdminTestBase
-{
-  @Test
-  public void testResetNode() throws Exception
-  {
-    String className = TestHelper.getTestClassName();
-    String methodName = TestHelper.getTestMethodName();
-    String clusterName = className + "_" + methodName;
-    final int n = 5;
-
-    System.out.println("START " + clusterName + " at "
-        + new Date(System.currentTimeMillis()));
-
-    TestHelper.setupCluster(clusterName, ZK_ADDR, 12918, // participant port
-                            "localhost", // participant name prefix
-                            "TestDB", // resource name prefix
-                            1, // resources
-                            10, // partitions per resource
-                            n, // number of nodes
-                            3, // replicas
-                            "MasterSlave",
-                            true); // do rebalance
-    
-    // start admin thread
-//    AdminThread adminThread = new AdminThread(ZK_ADDR, _port);
-//    adminThread.start();
-
-    // start controller
-    ClusterController controller =
-        new ClusterController(clusterName, "controller_0", ZK_ADDR);
-    controller.syncStart();
-
-    Map<String, Set<String>> errPartitions = new HashMap<String, Set<String>>()
-    {
-      {
-        put("SLAVE-MASTER", TestHelper.setOf("TestDB0_4"));
-        put("OFFLINE-SLAVE", TestHelper.setOf("TestDB0_8"));
-      }
-    };
-
-    // start mock participants
-    MockParticipant[] participants = new MockParticipant[n];
-    for (int i = 0; i < n; i++)
-    {
-      String instanceName = "localhost_" + (12918 + i);
-
-      if (i == 0)
-      {
-        participants[i] =
-            new MockParticipant(clusterName,
-                                instanceName,
-                                ZK_ADDR,
-                                new ErrTransition(errPartitions));
-      }
-      else
-      {
-        participants[i] = new MockParticipant(clusterName, instanceName, ZK_ADDR);
-      }
-      participants[i].syncStart();
-    }
-
-    // verify cluster
-    Map<String, Map<String, String>> errStateMap =
-        new HashMap<String, Map<String, String>>();
-    errStateMap.put("TestDB0", new HashMap<String, String>());
-    errStateMap.get("TestDB0").put("TestDB0_4", "localhost_12918");
-    errStateMap.get("TestDB0").put("TestDB0_8", "localhost_12918");
-    boolean result =
-        ClusterStateVerifier.verifyByZkCallback((new ClusterStateVerifier.BestPossAndExtViewZkVerifier(ZK_ADDR,
-                                                                                                       clusterName,
-                                                                                                       errStateMap)));
-    Assert.assertTrue(result, "Cluster verification fails");
-    
-    // reset resource "TestDB0"
-    participants[0].setTransition(null);
-    String resourceName = "TestDB0";
-    String resourceUrl = "http://localhost:" + ADMIN_PORT + "/clusters/" + clusterName + "/resourceGroups/" + resourceName;
-
-    Map<String, String> paramMap = new HashMap<String, String>();
-    paramMap.put(JsonParameters.MANAGEMENT_COMMAND, ClusterSetup.resetResource);
-    TestHelixAdminScenariosRest.assertSuccessPostOperation(resourceUrl, paramMap, false);
-
-    result =
-        ClusterStateVerifier.verifyByZkCallback((new ClusterStateVerifier.BestPossAndExtViewZkVerifier(ZK_ADDR,
-                                                                                                       clusterName)));
-    Assert.assertTrue(result, "Cluster verification fails");
-    
-    // clean up
-    // wait for all zk callbacks done
-    Thread.sleep(1000);
-//    adminThread.stop();
-    controller.syncStop();
-    for (int i = 0; i < 5; i++)
-    {
-      participants[i].syncStop();
-    }
-
-    System.out.println("END " + clusterName + " at "
-        + new Date(System.currentTimeMillis()));
-
-  }
-}