package com.cattles.virtualClusterManagement.interfaces; import com.cattles.virtualClusterManagement.VirtualCluster; import com.cattles.virtualMachineManagement.VirtualMachineInformation; import java.util.ArrayList; /** * Created with IntelliJ IDEA. * User: youfuli * To change this template use File | Settings | File Templates. */ public interface IVirtualClusterOperation { /** * use getClustersWithState(Constant.VIRTUAL_CLUSTER_STATE_STANDBY) and getClustersWithType(Constant.FALKON_FRAMEWORK_NAME) to find the standby falkon cluster * * @return */ public ArrayList<VirtualCluster> getStandbyCluster(); /** * launch a falkon cluster, including falkon service start and falkon worker registration * * @param virtualCluster */ public void launchCluster(VirtualCluster virtualCluster); /** * fetch a list of VMs from the resource pool, then generate a virtual machine cluster. * add the virtual machine cluster to the VirtualCluster.xml * * @param _clusterSize * @return */ public VirtualCluster createCluster(int _clusterSize); /** * Use the provided virtual machine list to generate a virtual cluster * * @param VMList * @return */ public VirtualCluster generateCluster(ArrayList<VirtualMachineInformation> VMList); public boolean addNodes(String _clusterID, ArrayList<String> _nodeIDList); public boolean removeNodes(String _clusterID, ArrayList<String> _nodeIDList); public boolean modifyServerID(String _clusterID, String _serverID); /** * Modify the state of the specified cluster which ID is _clusterID * * @param _clusterID * @param _state * @return */ public boolean modifyClusterState(String _clusterID, String _state); /** * get the size of a cluster, which is consist of the num of nodes and the server node * * @param _clusterID * @return */ public int getClusterSize(String _clusterID); public ArrayList<VirtualCluster> getAllClusters(); public ArrayList<VirtualCluster> getClustersWithState(String _state); public VirtualCluster getClusterWithID(String _clusterID); /** * invoke the method in XMLOperationCluster to delete a cluster. * We also provide a method to delete a list of Clusters * * @param _clusterID * @return */ public boolean deleteCluster(String _clusterID); }