package com.cattles.executionservice.falkon;
import com.cattles.executionservice.ExecutionServiceConfiguration;
import com.cattles.executionservice.interfaces.ISchedulingServer;
import com.cattles.resourcePoolManagement.VirtualMachineResourcePool;
import com.cattles.virtualMachineManagement.VirtualMachineInformation;
import org.apache.log4j.Logger;
/**
* Created with IntelliJ IDEA.
* User: youfuli
* To change this template use File | Settings | File Templates.
*/
public class FalkonISchedulingServer implements ISchedulingServer {
private static Logger logger = Logger.getLogger(FalkonISchedulingServer.class);
VirtualMachineResourcePool virtualMachineResourcePool = VirtualMachineResourcePool.getResourcePool();
/**
* Initialize the cluster according to provided cluster
*
* @param serverID
*/
@Override
public boolean startServer(String serverID, ExecutionServiceConfiguration configuration) {
//get the vm information according to the serverID, which is also the ID of a virtual machine.
VirtualMachineInformation falkonServer = virtualMachineResourcePool.getVMWithID(serverID);
logger.info("Initializing the falkon server!");
FalkonServerInitialization falkonServerInitialization = new FalkonServerInitialization(falkonServer.getVmID(), falkonServer.getVmPublicIpAddress());
falkonServerInitialization.start();
return true;
}
/**
* terminate the cluster according to provided cluster
*
* @param serverID
*/
@Override
public boolean stopServer(String serverID) {
VirtualMachineInformation falkonServer = virtualMachineResourcePool.getVMWithID(serverID);
logger.info("Stopping falkon service");
FalkonServerStop falkonServerStop = new FalkonServerStop(falkonServer.getVmID(), falkonServer.getVmPublicIpAddress());
falkonServerStop.start();
return true;
}
}