Search in sources :

Example 1 with VmMgr

use of com.cloud.agent.mockvm.VmMgr in project CloudStack-archive by CloudStack-extras.

the class FakeComputingResource method execute.

protected synchronized StartAnswer execute(StartCommand cmd) {
    VmMgr vmMgr = getVmManager();
    VirtualMachineTO vmSpec = cmd.getVirtualMachine();
    String vmName = vmSpec.getName();
    State state = State.Stopped;
    try {
        if (!_vms.containsKey(vmName)) {
            synchronized (_vms) {
                _vms.put(vmName, State.Starting);
            }
            MockVm vm = vmMgr.createVmFromSpec(vmSpec);
            vmMgr.createVbd(vmSpec, vmName, vm);
            vmMgr.createVif(vmSpec, vmName, vm);
            state = State.Running;
            for (NicTO nic : cmd.getVirtualMachine().getNics()) {
                if (nic.getType() == TrafficType.Guest) {
                    InetAddress addr = _dhcpSnooper.getIPAddr(nic.getMac(), vmName);
                    nic.setIp(addr.getHostAddress());
                }
            }
            _vmDataServer.handleVmStarted(cmd.getVirtualMachine());
            return new StartAnswer(cmd);
        } else {
            String msg = "There is already a VM having the same name " + vmName;
            s_logger.warn(msg);
            return new StartAnswer(cmd, msg);
        }
    } catch (Exception ex) {
    } finally {
        synchronized (_vms) {
            _vms.put(vmName, state);
        }
    }
    return new StartAnswer(cmd);
}
Also used : StartAnswer(com.cloud.agent.api.StartAnswer) VmState(com.cloud.agent.api.StartupRoutingCommand.VmState) State(com.cloud.vm.VirtualMachine.State) InetAddress(java.net.InetAddress) VirtualMachineTO(com.cloud.agent.api.to.VirtualMachineTO) MockVm(com.cloud.agent.mockvm.MockVm) FileNotFoundException(java.io.FileNotFoundException) ConfigurationException(javax.naming.ConfigurationException) CloudRuntimeException(com.cloud.utils.exception.CloudRuntimeException) IOException(java.io.IOException) VmMgr(com.cloud.agent.mockvm.VmMgr) MockVmMgr(com.cloud.agent.mockvm.MockVmMgr) NicTO(com.cloud.agent.api.to.NicTO)

Example 2 with VmMgr

use of com.cloud.agent.mockvm.VmMgr in project CloudStack-archive by CloudStack-extras.

the class FakeComputingResource method execute.

protected CheckVirtualMachineAnswer execute(final CheckVirtualMachineCommand cmd) {
    VmMgr vmMgr = getVmManager();
    final String vmName = cmd.getVmName();
    final State state = vmMgr.checkVmState(vmName);
    Integer vncPort = null;
    if (state == State.Running) {
        vncPort = vmMgr.getVncPort(vmName);
        synchronized (_vms) {
            _vms.put(vmName, State.Running);
        }
    }
    return new CheckVirtualMachineAnswer(cmd, state, vncPort);
}
Also used : CheckVirtualMachineAnswer(com.cloud.agent.api.CheckVirtualMachineAnswer) VmState(com.cloud.agent.api.StartupRoutingCommand.VmState) State(com.cloud.vm.VirtualMachine.State) VmMgr(com.cloud.agent.mockvm.VmMgr) MockVmMgr(com.cloud.agent.mockvm.MockVmMgr)

Example 3 with VmMgr

use of com.cloud.agent.mockvm.VmMgr in project CloudStack-archive by CloudStack-extras.

the class FakeComputingResource method execute.

protected Answer execute(RebootCommand cmd) {
    VmMgr vmMgr = getVmManager();
    vmMgr.rebootVM(cmd.getVmName());
    return new RebootAnswer(cmd, "success", 0L, 0L);
}
Also used : RebootAnswer(com.cloud.agent.api.RebootAnswer) VmMgr(com.cloud.agent.mockvm.VmMgr) MockVmMgr(com.cloud.agent.mockvm.MockVmMgr)

Example 4 with VmMgr

use of com.cloud.agent.mockvm.VmMgr in project CloudStack-archive by CloudStack-extras.

the class FakeComputingResource method execute.

protected synchronized StopAnswer execute(StopCommand cmd) {
    VmMgr vmMgr = getVmManager();
    StopAnswer answer = null;
    String vmName = cmd.getVmName();
    Integer port = vmMgr.getVncPort(vmName);
    Long bytesReceived = null;
    Long bytesSent = null;
    State state = null;
    synchronized (_vms) {
        state = _vms.get(vmName);
        _vms.put(vmName, State.Stopping);
    }
    try {
        String result = vmMgr.stopVM(vmName, false);
        if (result != null) {
            s_logger.info("Trying destroy on " + vmName);
            if (result == Script.ERR_TIMEOUT) {
                result = vmMgr.stopVM(vmName, true);
            }
            s_logger.warn("Couldn't stop " + vmName);
            if (result != null) {
                return new StopAnswer(cmd, result);
            }
        }
        answer = new StopAnswer(cmd, null, port, bytesSent, bytesReceived);
        String result2 = vmMgr.cleanupVnet(cmd.getVnet());
        if (result2 != null) {
            result = result2 + (result != null ? ("\n" + result) : "");
            answer = new StopAnswer(cmd, result, port, bytesSent, bytesReceived);
        }
        _dhcpSnooper.cleanup(vmName, null);
        return answer;
    } finally {
        if (answer == null || !answer.getResult()) {
            synchronized (_vms) {
                _vms.put(vmName, state);
            }
        }
    }
}
Also used : VmState(com.cloud.agent.api.StartupRoutingCommand.VmState) State(com.cloud.vm.VirtualMachine.State) StopAnswer(com.cloud.agent.api.StopAnswer) VmMgr(com.cloud.agent.mockvm.VmMgr) MockVmMgr(com.cloud.agent.mockvm.MockVmMgr)

Aggregations

MockVmMgr (com.cloud.agent.mockvm.MockVmMgr)4 VmMgr (com.cloud.agent.mockvm.VmMgr)4 VmState (com.cloud.agent.api.StartupRoutingCommand.VmState)3 State (com.cloud.vm.VirtualMachine.State)3 CheckVirtualMachineAnswer (com.cloud.agent.api.CheckVirtualMachineAnswer)1 RebootAnswer (com.cloud.agent.api.RebootAnswer)1 StartAnswer (com.cloud.agent.api.StartAnswer)1 StopAnswer (com.cloud.agent.api.StopAnswer)1 NicTO (com.cloud.agent.api.to.NicTO)1 VirtualMachineTO (com.cloud.agent.api.to.VirtualMachineTO)1 MockVm (com.cloud.agent.mockvm.MockVm)1 CloudRuntimeException (com.cloud.utils.exception.CloudRuntimeException)1 FileNotFoundException (java.io.FileNotFoundException)1 IOException (java.io.IOException)1 InetAddress (java.net.InetAddress)1 ConfigurationException (javax.naming.ConfigurationException)1