Package org.apache.cloudstack.framework.jobs.impl

Examples of org.apache.cloudstack.framework.jobs.impl.VmWorkJobVO


                try {
                    List<VmWorkJobVO> pendingWorkJobs = _workJobDao.listPendingWorkJobs(
                            VirtualMachine.Type.Instance, vm.getId(),
                            VmWorkStorageMigration.class.getName());

                    VmWorkJobVO workJob = null;
                    if (pendingWorkJobs != null && pendingWorkJobs.size() > 0) {
                        assert (pendingWorkJobs.size() == 1);
                        workJob = pendingWorkJobs.get(0);
                    } else {

                        workJob = new VmWorkJobVO(context.getContextId());

                        workJob.setDispatcher(VmWorkConstants.VM_WORK_JOB_DISPATCHER);
                        workJob.setCmd(VmWorkStorageMigration.class.getName());

                        workJob.setAccountId(account.getId());
                        workJob.setUserId(user.getId());
                        workJob.setVmType(VirtualMachine.Type.Instance);
                        workJob.setVmInstanceId(vm.getId());
                        workJob.setRelated(AsyncJobExecutionContext.getOriginJobId());

                        // save work context info (there are some duplications)
                        VmWorkStorageMigration workInfo = new VmWorkStorageMigration(user.getId(), account.getId(), vm.getId(),
                                VirtualMachineManagerImpl.VM_WORK_JOB_HANDLER, destPool.getId());
                        workJob.setCmdInfo(VmWorkSerializer.serialize(workInfo));

                        _jobMgr.submitAsyncJob(workJob, VmWorkConstants.VM_WORK_QUEUE, vm.getId());
                    }

                    return new Object[] {workJob, new Long(workJob.getId())};
                } finally {
                    _vmDao.unlockFromLockTable(String.valueOf(vm.getId()));
                }
            }
        });
View Full Code Here


                try {
                    List<VmWorkJobVO> pendingWorkJobs = _workJobDao.listPendingWorkJobs(
                            VirtualMachine.Type.Instance, vm.getId(),
                            VmWorkAddVmToNetwork.class.getName());

                    VmWorkJobVO workJob = null;
                    if (pendingWorkJobs != null && pendingWorkJobs.size() > 0) {
                        assert (pendingWorkJobs.size() == 1);
                        workJob = pendingWorkJobs.get(0);
                    } else {

                        workJob = new VmWorkJobVO(context.getContextId());

                        workJob.setDispatcher(VmWorkConstants.VM_WORK_JOB_DISPATCHER);
                        workJob.setCmd(VmWorkAddVmToNetwork.class.getName());

                        workJob.setAccountId(account.getId());
                        workJob.setUserId(user.getId());
                        workJob.setVmType(VirtualMachine.Type.Instance);
                        workJob.setVmInstanceId(vm.getId());
                        workJob.setRelated(AsyncJobExecutionContext.getOriginJobId());

                        // save work context info (there are some duplications)
                        VmWorkAddVmToNetwork workInfo = new VmWorkAddVmToNetwork(user.getId(), account.getId(), vm.getId(),
                                VirtualMachineManagerImpl.VM_WORK_JOB_HANDLER, network.getId(), requested);
                        workJob.setCmdInfo(VmWorkSerializer.serialize(workInfo));

                        _jobMgr.submitAsyncJob(workJob, VmWorkConstants.VM_WORK_QUEUE, vm.getId());
                    }
                    return new Object[] {workJob, new Long(workJob.getId())};
                } finally {
                    _vmDao.unlockFromLockTable(String.valueOf(vm.getId()));
                }
            }
        });
View Full Code Here

                try {
                    List<VmWorkJobVO> pendingWorkJobs = _workJobDao.listPendingWorkJobs(
                            VirtualMachine.Type.Instance, vm.getId(),
                            VmWorkRemoveNicFromVm.class.getName());

                    VmWorkJobVO workJob = null;
                    if (pendingWorkJobs != null && pendingWorkJobs.size() > 0) {
                        assert (pendingWorkJobs.size() == 1);
                        workJob = pendingWorkJobs.get(0);
                    } else {

                        workJob = new VmWorkJobVO(context.getContextId());

                        workJob.setDispatcher(VmWorkConstants.VM_WORK_JOB_DISPATCHER);
                        workJob.setCmd(VmWorkRemoveNicFromVm.class.getName());

                        workJob.setAccountId(account.getId());
                        workJob.setUserId(user.getId());
                        workJob.setVmType(VirtualMachine.Type.Instance);
                        workJob.setVmInstanceId(vm.getId());
                        workJob.setRelated(AsyncJobExecutionContext.getOriginJobId());

                        // save work context info (there are some duplications)
                        VmWorkRemoveNicFromVm workInfo = new VmWorkRemoveNicFromVm(user.getId(), account.getId(), vm.getId(),
                                VirtualMachineManagerImpl.VM_WORK_JOB_HANDLER, nic.getId());
                        workJob.setCmdInfo(VmWorkSerializer.serialize(workInfo));

                        _jobMgr.submitAsyncJob(workJob, VmWorkConstants.VM_WORK_QUEUE, vm.getId());
                    }
                    return new Object[] {workJob, new Long(workJob.getId())};
                } finally {
                    _vmDao.unlockFromLockTable(String.valueOf(vm.getId()));
                }
            }
        });
View Full Code Here

                try {
                    List<VmWorkJobVO> pendingWorkJobs = _workJobDao.listPendingWorkJobs(
                            VirtualMachine.Type.Instance, vm.getId(),
                            VmWorkRemoveVmFromNetwork.class.getName());

                    VmWorkJobVO workJob = null;
                    if (pendingWorkJobs != null && pendingWorkJobs.size() > 0) {
                        assert (pendingWorkJobs.size() == 1);
                        workJob = pendingWorkJobs.get(0);
                    } else {

                        workJob = new VmWorkJobVO(context.getContextId());

                        workJob.setDispatcher(VmWorkConstants.VM_WORK_JOB_DISPATCHER);
                        workJob.setCmd(VmWorkRemoveVmFromNetwork.class.getName());

                        workJob.setAccountId(account.getId());
                        workJob.setUserId(user.getId());
                        workJob.setVmType(VirtualMachine.Type.Instance);
                        workJob.setVmInstanceId(vm.getId());
                        workJob.setRelated(AsyncJobExecutionContext.getOriginJobId());

                        // save work context info (there are some duplications)
                        VmWorkRemoveVmFromNetwork workInfo = new VmWorkRemoveVmFromNetwork(user.getId(), account.getId(), vm.getId(),
                                VirtualMachineManagerImpl.VM_WORK_JOB_HANDLER, network, broadcastUri);
                        workJob.setCmdInfo(VmWorkSerializer.serialize(workInfo));

                        _jobMgr.submitAsyncJob(workJob, VmWorkConstants.VM_WORK_QUEUE, vm.getId());
                    }
                    return new Object[] {workJob, new Long(workJob.getId())};
                } finally {
                    _vmDao.unlockFromLockTable(String.valueOf(vm.getId()));
                }
            }
        });
View Full Code Here

                try {
                    List<VmWorkJobVO> pendingWorkJobs = _workJobDao.listPendingWorkJobs(
                            VirtualMachine.Type.Instance, vm.getId(),
                            VmWorkReconfigure.class.getName());

                    VmWorkJobVO workJob = null;
                    if (pendingWorkJobs != null && pendingWorkJobs.size() > 0) {
                        assert (pendingWorkJobs.size() == 1);
                        workJob = pendingWorkJobs.get(0);
                    } else {

                        workJob = new VmWorkJobVO(context.getContextId());

                        workJob.setDispatcher(VmWorkConstants.VM_WORK_JOB_DISPATCHER);
                        workJob.setCmd(VmWorkReconfigure.class.getName());

                        workJob.setAccountId(account.getId());
                        workJob.setUserId(user.getId());
                        workJob.setVmType(VirtualMachine.Type.Instance);
                        workJob.setVmInstanceId(vm.getId());
                        workJob.setRelated(AsyncJobExecutionContext.getOriginJobId());

                        // save work context info (there are some duplications)
                        VmWorkReconfigure workInfo = new VmWorkReconfigure(user.getId(), account.getId(), vm.getId(),
                                VirtualMachineManagerImpl.VM_WORK_JOB_HANDLER, newServiceOffering.getId(), reconfiguringOnExistingHost);
                        workJob.setCmdInfo(VmWorkSerializer.serialize(workInfo));

                        _jobMgr.submitAsyncJob(workJob, VmWorkConstants.VM_WORK_QUEUE, vm.getId());
                    }
                    return new Object[] {workJob, new Long(workJob.getId())};
                } finally {
                    _vmDao.unlockFromLockTable(String.valueOf(vm.getId()));
                }
            }
        });
View Full Code Here

    public Pair<JobInfo.Status, String> handleVmWorkJob(VmWork work) throws Exception {
        return _jobHandlerProxy.handleVmWorkJob(work);
    }

    private VmWorkJobVO createPlaceHolderWork(long instanceId) {
        VmWorkJobVO workJob = new VmWorkJobVO("");

        workJob.setDispatcher(VmWorkConstants.VM_WORK_JOB_PLACEHOLDER);
        workJob.setCmd("");
        workJob.setCmdInfo("");

        workJob.setAccountId(0);
        workJob.setUserId(0);
        workJob.setStep(VmWorkJobVO.Step.Starting);
        workJob.setVmType(VirtualMachine.Type.Instance);
        workJob.setVmInstanceId(instanceId);
        workJob.setInitMsid(ManagementServerNode.getManagementServerId());

        _workJobDao.persist(workJob);

        return workJob;
    }
View Full Code Here

        return this.listBy(sc, filter);
    }

    @Override
    public void updateStep(long workJobId, Step step) {
        VmWorkJobVO jobVo = findById(workJobId);
        jobVo.setStep(step);
        jobVo.setLastUpdated(DateUtil.currentGMTTime());
        update(workJobId, jobVo);
    }
View Full Code Here

            // serialize VM operation
            AsyncJobExecutionContext jobContext = AsyncJobExecutionContext.getCurrentExecutionContext();
            if (!VmJobEnabled.value() || jobContext.isJobDispatchedBy(VmWorkConstants.VM_WORK_JOB_DISPATCHER)) {
                // avoid re-entrance

                VmWorkJobVO placeHolder = null;
                if (VmJobEnabled.value()) {
                    placeHolder = createPlaceHolderWork(userVm.getId());
                }
                try {
                return orchestrateResizeVolume(volume.getId(), currentSize, newSize,
                        newDiskOffering != null ? cmd.getNewDiskOfferingId() : null, shrinkOk);
                } finally {
                    if (VmJobEnabled.value())
                        _workJobDao.expunge(placeHolder.getId());
                }

            } else {
                Outcome<Volume> outcome = resizeVolumeThroughJobQueue(userVm.getId(), volume.getId(), currentSize, newSize,
                        newDiskOffering != null ? cmd.getNewDiskOfferingId() : null, shrinkOk);
View Full Code Here

        AsyncJobExecutionContext jobContext = AsyncJobExecutionContext.getCurrentExecutionContext();
        if (!VmJobEnabled.value() || jobContext.isJobDispatchedBy(VmWorkConstants.VM_WORK_JOB_DISPATCHER)) {
            // avoid re-entrance

            VmWorkJobVO placeHolder = null;
            if (VmJobEnabled.value()) {
                placeHolder = createPlaceHolderWork(command.getVirtualMachineId());
            }
            try {
            return orchestrateAttachVolumeToVM(command.getVirtualMachineId(), command.getId(), command.getDeviceId());
            } finally {
                if (VmJobEnabled.value())
                    _workJobDao.expunge(placeHolder.getId());
            }

        } else {
            Outcome<Volume> outcome = attachVolumeToVmThroughJobQueue(command.getVirtualMachineId(), command.getId(), command.getDeviceId());
View Full Code Here

        }

        AsyncJobExecutionContext jobContext = AsyncJobExecutionContext.getCurrentExecutionContext();
        if (!VmJobEnabled.value() || jobContext.isJobDispatchedBy(VmWorkConstants.VM_WORK_JOB_DISPATCHER)) {
            // avoid re-entrance
            VmWorkJobVO placeHolder = null;
            if (VmJobEnabled.value()) {
                placeHolder = createPlaceHolderWork(vmId);
            }
            try {
            return orchestrateDetachVolumeFromVM(vmId, volumeId);
            } finally {
                if (VmJobEnabled.value())
                    _workJobDao.expunge(placeHolder.getId());
            }
        } else {
            Outcome<Volume> outcome = detachVolumeFromVmThroughJobQueue(vmId, volumeId);

            Volume vol = null;
View Full Code Here

TOP

Related Classes of org.apache.cloudstack.framework.jobs.impl.VmWorkJobVO

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.