package com.cattles.executionservice.falkon;
import com.cattles.executionservice.interfaces.ISchedulingWorker;
import com.cattles.resourcePoolManagement.VirtualMachineResourcePool;
import com.cattles.virtualMachineManagement.VirtualMachineInformation;
import org.apache.log4j.Logger;
import java.util.ArrayList;
/**
* Created with IntelliJ IDEA.
* User: youfuli
* To change this template use File | Settings | File Templates.
*/
public class FalkonISchedulingWorker implements ISchedulingWorker {
private static Logger logger = Logger.getLogger(FalkonISchedulingWorker.class);
VirtualMachineResourcePool virtualMachineResourcePool = VirtualMachineResourcePool.getResourcePool();
public boolean register2Server(String serverID, ArrayList<String> nodeIDList) {
//get the vm information according to the serverID, which is also the ID of a virtual machine.
VirtualMachineInformation falkonServer = virtualMachineResourcePool.getVMWithID(serverID);
logger.info("Registering to server******************************");
for (String workerID : nodeIDList) {
VirtualMachineInformation falkonWorker = virtualMachineResourcePool.getVMWithID(workerID);
logger.info("registering worker " + workerID + " to server!");
FalkonWorkerRegisteraton falkonWorkerRegisteraton = new FalkonWorkerRegisteraton(falkonWorker.getVmID(), falkonServer.getVmPublicIpAddress(), falkonWorker.getVmPublicIpAddress());
falkonWorkerRegisteraton.start();
/*ExecuteCommand executeCommand= new ExecuteCommand(falkonWorker.getVmPublicIpAddress(), Constant.VIRTUAL_MACHINE_ACCOUNT,Constant.VIRTUAL_MACHINE_PASSWORD);
try {
executeCommand.execShell("sh /usr/local/falkon.r174/cattles/startWorker.sh "+falkonServer.getVmPublicIpAddress());
} catch (Exception e) {
e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
logger.info(e.getMessage());
}*/
}
return true;
}
public boolean deregisterFromServer(String serverID, ArrayList<String> nodeIDList) {
//String serverIP=virtualMachineResourcePool.getVMWithID(serverID).getVmPublicIpAddress();
//get the vm information according to the serverID, which is also the ID of a virtual machine.
logger.info("Begin to deregister workers******************");
VirtualMachineInformation falkonServer = virtualMachineResourcePool.getVMWithID(serverID);
for (String workerID : nodeIDList) {
VirtualMachineInformation falkonWorker = virtualMachineResourcePool.getVMWithID(workerID);
logger.info("deregistering worker " + workerID + " from server!");
FalkonWorkerDeregisteraton falkonWorkerDeregisteraton = new FalkonWorkerDeregisteraton(falkonWorker.getVmID(), falkonServer.getVmPublicIpAddress(), falkonWorker.getVmPublicIpAddress());
falkonWorkerDeregisteraton.start();
}
logger.info("Finished deregistering the workers:*******************" + System.currentTimeMillis() + "****************************");
return true;
}
}