Search in sources :

Example 6 with MockVm

use of com.cloud.simulator.MockVm in project CloudStack-archive by CloudStack-extras.

the class MockVmManagerImpl method rebootVM.

public boolean rebootVM(String vmName) {
    MockVm vm = _mockVmDao.findByVmName(vmName);
    if (vm != null) {
        vm.setState(State.Running);
        _mockVmDao.update(vm.getId(), (MockVMVO) vm);
    }
    return true;
}
Also used : MockVm(com.cloud.simulator.MockVm)

Example 7 with MockVm

use of com.cloud.simulator.MockVm in project CloudStack-archive by CloudStack-extras.

the class MockVmManagerImpl method stopVM.

@Override
public Answer stopVM(StopCommand cmd) {
    String vmName = cmd.getVmName();
    MockVm vm = _mockVmDao.findByVmName(vmName);
    if (vm != null) {
        vm.setState(State.Stopped);
        _mockVmDao.update(vm.getId(), (MockVMVO) vm);
    }
    if (vmName.startsWith("s-")) {
        _mockAgentMgr.handleSystemVMStop(vm.getId());
    }
    return new StopAnswer(cmd, null, new Integer(0), new Long(100), new Long(200));
}
Also used : StopAnswer(com.cloud.agent.api.StopAnswer) MockVm(com.cloud.simulator.MockVm)

Example 8 with MockVm

use of com.cloud.simulator.MockVm in project CloudStack-archive by CloudStack-extras.

the class MockVmManagerImpl method getVmStates.

@Override
public Map<String, State> getVmStates(String hostGuid) {
    Map<String, State> states = new HashMap<String, State>();
    List<MockVMVO> vms = _mockVmDao.findByHostGuid(hostGuid);
    if (vms.isEmpty()) {
        return states;
    }
    for (MockVm vm : vms) {
        states.put(vm.getName(), vm.getState());
    }
    return states;
}
Also used : MockVMVO(com.cloud.simulator.MockVMVO) ConcurrentHashMap(java.util.concurrent.ConcurrentHashMap) HashMap(java.util.HashMap) State(com.cloud.vm.VirtualMachine.State) MockVm(com.cloud.simulator.MockVm)

Example 9 with MockVm

use of com.cloud.simulator.MockVm in project cloudstack by apache.

the class MockStorageManagerImpl method Destroy.

@Override
public Answer Destroy(DestroyCommand cmd) {
    TransactionLegacy txn = TransactionLegacy.open(TransactionLegacy.SIMULATOR_DB);
    try {
        txn.start();
        MockVolumeVO volume = _mockVolumeDao.findByStoragePathAndType(cmd.getVolume().getPath());
        if (volume != null) {
            _mockVolumeDao.remove(volume.getId());
        }
        if (cmd.getVmName() != null) {
            MockVm vm = _mockVMDao.findByVmName(cmd.getVmName());
            if (vm != null) {
                _mockVMDao.remove(vm.getId());
            }
        }
        txn.commit();
    } catch (Exception ex) {
        txn.rollback();
        throw new CloudRuntimeException("Error when destroying volume " + cmd.getVolume().getPath(), ex);
    } finally {
        txn.close();
        txn = TransactionLegacy.open(TransactionLegacy.CLOUD_DB);
        txn.close();
    }
    return new Answer(cmd);
}
Also used : TransactionLegacy(com.cloud.utils.db.TransactionLegacy) DownloadAnswer(com.cloud.agent.api.storage.DownloadAnswer) Answer(com.cloud.agent.api.Answer) BackupSnapshotAnswer(com.cloud.agent.api.BackupSnapshotAnswer) ListTemplateAnswer(com.cloud.agent.api.storage.ListTemplateAnswer) ManageSnapshotAnswer(com.cloud.agent.api.ManageSnapshotAnswer) CreatePrivateTemplateAnswer(com.cloud.agent.api.storage.CreatePrivateTemplateAnswer) ModifyStoragePoolAnswer(com.cloud.agent.api.ModifyStoragePoolAnswer) PrimaryStorageDownloadAnswer(com.cloud.agent.api.storage.PrimaryStorageDownloadAnswer) CopyVolumeAnswer(com.cloud.agent.api.storage.CopyVolumeAnswer) CreateAnswer(com.cloud.agent.api.storage.CreateAnswer) UploadStatusAnswer(org.apache.cloudstack.storage.command.UploadStatusAnswer) GetStorageStatsAnswer(com.cloud.agent.api.GetStorageStatsAnswer) CreateVolumeFromSnapshotAnswer(com.cloud.agent.api.CreateVolumeFromSnapshotAnswer) ListVolumeAnswer(com.cloud.agent.api.storage.ListVolumeAnswer) SecStorageSetupAnswer(com.cloud.agent.api.SecStorageSetupAnswer) CloudRuntimeException(com.cloud.utils.exception.CloudRuntimeException) MockVolumeVO(com.cloud.simulator.MockVolumeVO) MockVm(com.cloud.simulator.MockVm) URISyntaxException(java.net.URISyntaxException) NoSuchAlgorithmException(java.security.NoSuchAlgorithmException) ConfigurationException(javax.naming.ConfigurationException) CloudRuntimeException(com.cloud.utils.exception.CloudRuntimeException)

Example 10 with MockVm

use of com.cloud.simulator.MockVm in project cloudstack by apache.

the class MockVmManagerImpl method startVM.

public String startVM(final String vmName, final NicTO[] nics, final int cpuHz, final long ramSize, final String bootArgs, final String hostGuid) {
    TransactionLegacy txn = TransactionLegacy.open(TransactionLegacy.SIMULATOR_DB);
    MockHost host = null;
    MockVm vm = null;
    try {
        txn.start();
        host = _mockHostDao.findByGuid(hostGuid);
        if (host == null) {
            return "can't find host";
        }
        vm = _mockVmDao.findByVmName(vmName);
        txn.commit();
    } catch (final Exception ex) {
        txn.rollback();
        throw new CloudRuntimeException("Unable to start VM " + vmName, ex);
    } finally {
        txn.close();
        txn = TransactionLegacy.open(TransactionLegacy.CLOUD_DB);
        txn.close();
    }
    if (vm == null) {
        final int vncPort = 0;
        if (vncPort < 0) {
            return "Unable to allocate VNC port";
        }
        vm = new MockVMVO();
        vm.setCpu(cpuHz);
        vm.setMemory(ramSize);
        vm.setPowerState(PowerState.PowerOn);
        vm.setName(vmName);
        vm.setVncPort(vncPort);
        vm.setHostId(host.getId());
        vm.setBootargs(bootArgs);
        if (vmName.startsWith("s-")) {
            vm.setType("SecondaryStorageVm");
        } else if (vmName.startsWith("v-")) {
            vm.setType("ConsoleProxy");
        } else if (vmName.startsWith("r-")) {
            vm.setType("DomainRouter");
        } else if (vmName.startsWith("i-")) {
            vm.setType("User");
        }
        txn = TransactionLegacy.open(TransactionLegacy.SIMULATOR_DB);
        try {
            txn.start();
            vm = _mockVmDao.persist((MockVMVO) vm);
            txn.commit();
        } catch (final Exception ex) {
            txn.rollback();
            throw new CloudRuntimeException("unable to save vm to db " + vm.getName(), ex);
        } finally {
            txn.close();
            txn = TransactionLegacy.open(TransactionLegacy.CLOUD_DB);
            txn.close();
        }
    } else {
        if (vm.getPowerState() == PowerState.PowerOff) {
            vm.setPowerState(PowerState.PowerOn);
            txn = TransactionLegacy.open(TransactionLegacy.SIMULATOR_DB);
            try {
                txn.start();
                _mockVmDao.update(vm.getId(), (MockVMVO) vm);
                txn.commit();
            } catch (final Exception ex) {
                txn.rollback();
                throw new CloudRuntimeException("unable to update vm " + vm.getName(), ex);
            } finally {
                txn.close();
                txn = TransactionLegacy.open(TransactionLegacy.CLOUD_DB);
                txn.close();
            }
        }
    }
    if (vm.getPowerState() == PowerState.PowerOn && vmName.startsWith("s-")) {
        String prvIp = null;
        String prvMac = null;
        String prvNetMask = null;
        for (final NicTO nic : nics) {
            if (nic.getType() == TrafficType.Management) {
                prvIp = nic.getIp();
                prvMac = nic.getMac();
                prvNetMask = nic.getNetmask();
            }
        }
        long dcId = 0;
        long podId = 0;
        String name = null;
        String vmType = null;
        String url = null;
        final String[] args = bootArgs.trim().split(" ");
        for (final String arg : args) {
            final String[] params = arg.split("=");
            if (params.length < 1) {
                continue;
            }
            if (params[0].equalsIgnoreCase("zone")) {
                dcId = Long.parseLong(params[1]);
            } else if (params[0].equalsIgnoreCase("name")) {
                name = params[1];
            } else if (params[0].equalsIgnoreCase("type")) {
                vmType = params[1];
            } else if (params[0].equalsIgnoreCase("url")) {
                url = params[1];
            } else if (params[0].equalsIgnoreCase("pod")) {
                podId = Long.parseLong(params[1]);
            }
        }
        _mockAgentMgr.handleSystemVMStart(vm.getId(), prvIp, prvMac, prvNetMask, dcId, podId, name, vmType, url);
    }
    return null;
}
Also used : MockVMVO(com.cloud.simulator.MockVMVO) TransactionLegacy(com.cloud.utils.db.TransactionLegacy) MockHost(com.cloud.simulator.MockHost) CloudRuntimeException(com.cloud.utils.exception.CloudRuntimeException) MockVm(com.cloud.simulator.MockVm) ConfigurationException(javax.naming.ConfigurationException) CloudRuntimeException(com.cloud.utils.exception.CloudRuntimeException) NicTO(com.cloud.agent.api.to.NicTO)

Aggregations

MockVm (com.cloud.simulator.MockVm)10 MockVMVO (com.cloud.simulator.MockVMVO)5 TransactionLegacy (com.cloud.utils.db.TransactionLegacy)4 CloudRuntimeException (com.cloud.utils.exception.CloudRuntimeException)4 ConfigurationException (javax.naming.ConfigurationException)4 Answer (com.cloud.agent.api.Answer)2 BackupSnapshotAnswer (com.cloud.agent.api.BackupSnapshotAnswer)2 CreateVolumeFromSnapshotAnswer (com.cloud.agent.api.CreateVolumeFromSnapshotAnswer)2 GetStorageStatsAnswer (com.cloud.agent.api.GetStorageStatsAnswer)2 ManageSnapshotAnswer (com.cloud.agent.api.ManageSnapshotAnswer)2 ModifyStoragePoolAnswer (com.cloud.agent.api.ModifyStoragePoolAnswer)2 SecStorageSetupAnswer (com.cloud.agent.api.SecStorageSetupAnswer)2 StopAnswer (com.cloud.agent.api.StopAnswer)2 CopyVolumeAnswer (com.cloud.agent.api.storage.CopyVolumeAnswer)2 CreateAnswer (com.cloud.agent.api.storage.CreateAnswer)2 CreatePrivateTemplateAnswer (com.cloud.agent.api.storage.CreatePrivateTemplateAnswer)2 DownloadAnswer (com.cloud.agent.api.storage.DownloadAnswer)2 ListTemplateAnswer (com.cloud.agent.api.storage.ListTemplateAnswer)2 PrimaryStorageDownloadAnswer (com.cloud.agent.api.storage.PrimaryStorageDownloadAnswer)2 NicTO (com.cloud.agent.api.to.NicTO)2