Search in sources :

Example 1 with MockVm

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

the class MockStorageManagerImpl method Destroy.

@Override
public Answer Destroy(DestroyCommand cmd) {
    MockVolumeVO volume = _mockVolumeDao.findByStoragePathAndType(cmd.getVolume().getPath());
    if (volume != null) {
        _mockVolumeDao.remove(volume.getId());
    }
    if (cmd.getVmName() != null) {
        MockVm vm = _mockVMDao.findByVmName(cmd.getVmName());
        vm.setState(State.Expunging);
        if (vm != null) {
            MockVMVO vmVo = _mockVMDao.createForUpdate(vm.getId());
            _mockVMDao.update(vm.getId(), vmVo);
        }
    }
    return new Answer(cmd);
}
Also used : MockVMVO(com.cloud.simulator.MockVMVO) 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) AttachVolumeAnswer(com.cloud.agent.api.AttachVolumeAnswer) 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) GetStorageStatsAnswer(com.cloud.agent.api.GetStorageStatsAnswer) CreateVolumeFromSnapshotAnswer(com.cloud.agent.api.CreateVolumeFromSnapshotAnswer) SecStorageSetupAnswer(com.cloud.agent.api.SecStorageSetupAnswer) MockVolumeVO(com.cloud.simulator.MockVolumeVO) MockVm(com.cloud.simulator.MockVm)

Example 2 with MockVm

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

the class MockVmManagerImpl method startVM.

public String startVM(String vmName, NicTO[] nics, int cpuHz, long ramSize, String bootArgs, String hostGuid) {
    MockHost host = _mockHostDao.findByGuid(hostGuid);
    if (host == null) {
        return "can't find host";
    }
    MockVm vm = _mockVmDao.findByVmName(vmName);
    if (vm == null) {
        int vncPort = 0;
        if (vncPort < 0)
            return "Unable to allocate VNC port";
        vm = new MockVMVO();
        vm.setCpu(cpuHz);
        vm.setMemory(ramSize);
        vm.setState(State.Running);
        vm.setName(vmName);
        vm.setVncPort(vncPort);
        vm.setHostId(host.getId());
        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");
        }
        vm = _mockVmDao.persist((MockVMVO) vm);
    } else {
        if (vm.getState() == State.Stopped) {
            vm.setState(State.Running);
            _mockVmDao.update(vm.getId(), (MockVMVO) vm);
        }
    }
    if (vm.getState() == State.Running && vmName.startsWith("s-")) {
        String prvIp = null;
        String prvMac = null;
        String prvNetMask = null;
        for (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;
        String[] args = bootArgs.trim().split(" ");
        for (String arg : args) {
            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) MockHost(com.cloud.simulator.MockHost) MockVm(com.cloud.simulator.MockVm) NicTO(com.cloud.agent.api.to.NicTO)

Example 3 with MockVm

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

the class MockVmManagerImpl method getVmStates.

@Override
public Map<String, PowerState> getVmStates(final String hostGuid) {
    TransactionLegacy txn = TransactionLegacy.open(TransactionLegacy.SIMULATOR_DB);
    try {
        txn.start();
        final Map<String, PowerState> states = new HashMap<String, PowerState>();
        final List<MockVMVO> vms = _mockVmDao.findByHostGuid(hostGuid);
        if (vms.isEmpty()) {
            txn.commit();
            return states;
        }
        for (final MockVm vm : vms) {
            states.put(vm.getName(), vm.getPowerState());
        }
        txn.commit();
        return states;
    } catch (final Exception ex) {
        txn.rollback();
        throw new CloudRuntimeException("unable to fetch vms from host " + hostGuid, ex);
    } finally {
        txn.close();
        txn = TransactionLegacy.open(TransactionLegacy.CLOUD_DB);
        txn.close();
    }
}
Also used : MockVMVO(com.cloud.simulator.MockVMVO) TransactionLegacy(com.cloud.utils.db.TransactionLegacy) ConcurrentHashMap(java.util.concurrent.ConcurrentHashMap) HashMap(java.util.HashMap) CloudRuntimeException(com.cloud.utils.exception.CloudRuntimeException) PowerState(com.cloud.vm.VirtualMachine.PowerState) MockVm(com.cloud.simulator.MockVm) ConfigurationException(javax.naming.ConfigurationException) CloudRuntimeException(com.cloud.utils.exception.CloudRuntimeException)

Example 4 with MockVm

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

the class MockVmManagerImpl method stopVM.

@Override
public StopAnswer stopVM(final StopCommand cmd) {
    TransactionLegacy txn = TransactionLegacy.open(TransactionLegacy.SIMULATOR_DB);
    try {
        txn.start();
        final String vmName = cmd.getVmName();
        final MockVm vm = _mockVmDao.findByVmName(vmName);
        if (vm != null) {
            vm.setPowerState(PowerState.PowerOff);
            _mockVmDao.update(vm.getId(), (MockVMVO) vm);
        }
        if (vmName.startsWith("s-")) {
            _mockAgentMgr.handleSystemVMStop(vm.getId());
        }
        txn.commit();
        return new StopAnswer(cmd, null, true);
    } catch (final Exception ex) {
        txn.rollback();
        throw new CloudRuntimeException("unable to stop vm " + cmd.getVmName(), ex);
    } finally {
        txn.close();
        txn = TransactionLegacy.open(TransactionLegacy.CLOUD_DB);
        txn.close();
    }
}
Also used : TransactionLegacy(com.cloud.utils.db.TransactionLegacy) CloudRuntimeException(com.cloud.utils.exception.CloudRuntimeException) StopAnswer(com.cloud.agent.api.StopAnswer) MockVm(com.cloud.simulator.MockVm) ConfigurationException(javax.naming.ConfigurationException) CloudRuntimeException(com.cloud.utils.exception.CloudRuntimeException)

Example 5 with MockVm

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

the class MockVmManagerImpl method checkRouter.

@Override
public CheckRouterAnswer checkRouter(final CheckRouterCommand cmd) {
    final String router_name = cmd.getAccessDetail(NetworkElementCommand.ROUTER_NAME);
    final MockVm vm = _mockVmDao.findByVmName(router_name);
    final String args = vm.getBootargs();
    if (args.indexOf("router_pr=100") > 0) {
        s_logger.debug("Router priority is for MASTER");
        final CheckRouterAnswer ans = new CheckRouterAnswer(cmd, "Status: MASTER", true);
        ans.setState(VirtualRouter.RedundantState.MASTER);
        return ans;
    } else {
        s_logger.debug("Router priority is for BACKUP");
        final CheckRouterAnswer ans = new CheckRouterAnswer(cmd, "Status: BACKUP", true);
        ans.setState(VirtualRouter.RedundantState.BACKUP);
        return ans;
    }
}
Also used : MockVm(com.cloud.simulator.MockVm) CheckRouterAnswer(com.cloud.agent.api.CheckRouterAnswer)

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