mirror of
https://github.com/apache/cloudstack.git
synced 2025-10-26 08:42:29 +01:00
CLOUDSTACK-669: put system vm work under new vmsync model
This commit is contained in:
parent
96eeceba8b
commit
aa72b76aec
@ -20,11 +20,16 @@
|
|||||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
xmlns:context="http://www.springframework.org/schema/context"
|
xmlns:context="http://www.springframework.org/schema/context"
|
||||||
xmlns:aop="http://www.springframework.org/schema/aop"
|
xmlns:aop="http://www.springframework.org/schema/aop"
|
||||||
|
xmlns:util="http://www.springframework.org/schema/util"
|
||||||
|
|
||||||
xsi:schemaLocation="http://www.springframework.org/schema/beans
|
xsi:schemaLocation="http://www.springframework.org/schema/beans
|
||||||
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
|
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
|
||||||
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
|
http://www.springframework.org/schema/aop
|
||||||
|
http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
|
||||||
http://www.springframework.org/schema/context
|
http://www.springframework.org/schema/context
|
||||||
http://www.springframework.org/schema/context/spring-context-3.0.xsd"
|
http://www.springframework.org/schema/context/spring-context-3.0.xsd
|
||||||
|
http://www.springframework.org/schema/util
|
||||||
|
http://www.springframework.org/schema/util/spring-util-3.0.xsd"
|
||||||
>
|
>
|
||||||
|
|
||||||
<bean id="clusterBasedAgentLoadBalancerPlanner"
|
<bean id="clusterBasedAgentLoadBalancerPlanner"
|
||||||
@ -68,5 +73,10 @@
|
|||||||
<bean id="virtualMachineEntityImpl" class="org.apache.cloudstack.engine.cloud.entity.api.VirtualMachineEntityImpl" />
|
<bean id="virtualMachineEntityImpl" class="org.apache.cloudstack.engine.cloud.entity.api.VirtualMachineEntityImpl" />
|
||||||
|
|
||||||
<bean id="virtualMachinePowerStateSyncImpl" class="com.cloud.vm.VirtualMachinePowerStateSyncImpl" />
|
<bean id="virtualMachinePowerStateSyncImpl" class="com.cloud.vm.VirtualMachinePowerStateSyncImpl" />
|
||||||
|
<bean id= "vmWorkJobDispatcher" class="com.cloud.vm.VmWorkJobDispatcher">
|
||||||
|
<property name="name">
|
||||||
|
<util:constant static-field="com.cloud.vm.VmWorkJobDispatcher.VM_WORK_JOB_DISPATCHER"/>
|
||||||
|
</property>
|
||||||
|
</bean>
|
||||||
|
|
||||||
</beans>
|
</beans>
|
||||||
|
|||||||
@ -4137,6 +4137,10 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// TODO build a common pattern to reduce code duplication in following methods
|
||||||
|
// no time for this at current iteration
|
||||||
|
//
|
||||||
public Outcome<VirtualMachine> startVmThroughJobQueue(final String vmUuid,
|
public Outcome<VirtualMachine> startVmThroughJobQueue(final String vmUuid,
|
||||||
final Map<VirtualMachineProfile.Param, Object> params,
|
final Map<VirtualMachineProfile.Param, Object> params,
|
||||||
final DeploymentPlan planToDeploy) {
|
final DeploymentPlan planToDeploy) {
|
||||||
@ -4147,8 +4151,7 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
|
|||||||
|
|
||||||
final VMInstanceVO vm = _vmDao.findByUuid(vmUuid);
|
final VMInstanceVO vm = _vmDao.findByUuid(vmUuid);
|
||||||
|
|
||||||
Transaction.execute(new TransactionCallbackNoReturn() {
|
Transaction.execute(new TransactionCallbackNoReturn () {
|
||||||
@Override
|
|
||||||
public void doInTransactionWithoutResult(TransactionStatus status) {
|
public void doInTransactionWithoutResult(TransactionStatus status) {
|
||||||
VmWorkJobVO workJob = null;
|
VmWorkJobVO workJob = null;
|
||||||
|
|
||||||
@ -4182,7 +4185,7 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
|
|||||||
|
|
||||||
// Transaction syntax sugar has a cost here
|
// Transaction syntax sugar has a cost here
|
||||||
context.putContextParameter("workJob", workJob);
|
context.putContextParameter("workJob", workJob);
|
||||||
context.putContextParameter("jobId", new Long(vm.getId()));
|
context.putContextParameter("jobId", new Long(workJob.getId()));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -4200,8 +4203,7 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
|
|||||||
|
|
||||||
final VMInstanceVO vm = _vmDao.findByUuid(vmUuid);
|
final VMInstanceVO vm = _vmDao.findByUuid(vmUuid);
|
||||||
|
|
||||||
Transaction.execute(new TransactionCallbackNoReturn() {
|
Transaction.execute(new TransactionCallbackNoReturn () {
|
||||||
@Override
|
|
||||||
public void doInTransactionWithoutResult(TransactionStatus status) {
|
public void doInTransactionWithoutResult(TransactionStatus status) {
|
||||||
_vmDao.lockRow(vm.getId(), true);
|
_vmDao.lockRow(vm.getId(), true);
|
||||||
|
|
||||||
@ -4233,7 +4235,7 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
|
|||||||
}
|
}
|
||||||
|
|
||||||
context.putContextParameter("workJob", workJob);
|
context.putContextParameter("workJob", workJob);
|
||||||
context.putContextParameter("jobId", new Long(vm.getId()));
|
context.putContextParameter("jobId", new Long(workJob.getId()));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -4253,8 +4255,7 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
|
|||||||
|
|
||||||
final VMInstanceVO vm = _vmDao.findByUuid(vmUuid);
|
final VMInstanceVO vm = _vmDao.findByUuid(vmUuid);
|
||||||
|
|
||||||
Transaction.execute(new TransactionCallbackNoReturn() {
|
Transaction.execute(new TransactionCallbackNoReturn () {
|
||||||
@Override
|
|
||||||
public void doInTransactionWithoutResult(TransactionStatus status) {
|
public void doInTransactionWithoutResult(TransactionStatus status) {
|
||||||
_vmDao.lockRow(vm.getId(), true);
|
_vmDao.lockRow(vm.getId(), true);
|
||||||
|
|
||||||
@ -4286,7 +4287,7 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
|
|||||||
}
|
}
|
||||||
|
|
||||||
context.putContextParameter("workJob", workJob);
|
context.putContextParameter("workJob", workJob);
|
||||||
context.putContextParameter("jobId", new Long(vm.getId()));
|
context.putContextParameter("jobId", new Long(workJob.getId()));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -4304,8 +4305,7 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
|
|||||||
|
|
||||||
final VMInstanceVO vm = _vmDao.findByUuid(vmUuid);
|
final VMInstanceVO vm = _vmDao.findByUuid(vmUuid);
|
||||||
|
|
||||||
Transaction.execute(new TransactionCallbackNoReturn() {
|
Transaction.execute(new TransactionCallbackNoReturn () {
|
||||||
@Override
|
|
||||||
public void doInTransactionWithoutResult(TransactionStatus status) {
|
public void doInTransactionWithoutResult(TransactionStatus status) {
|
||||||
|
|
||||||
_vmDao.lockRow(vm.getId(), true);
|
_vmDao.lockRow(vm.getId(), true);
|
||||||
@ -4337,7 +4337,7 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
|
|||||||
_jobMgr.submitAsyncJob(workJob, VmWorkJobDispatcher.VM_WORK_QUEUE, vm.getId());
|
_jobMgr.submitAsyncJob(workJob, VmWorkJobDispatcher.VM_WORK_QUEUE, vm.getId());
|
||||||
}
|
}
|
||||||
context.putContextParameter("workJob", workJob);
|
context.putContextParameter("workJob", workJob);
|
||||||
context.putContextParameter("jobId", new Long(vm.getId()));
|
context.putContextParameter("jobId", new Long(workJob.getId()));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -4358,8 +4358,7 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
|
|||||||
|
|
||||||
final VMInstanceVO vm = _vmDao.findByUuid(vmUuid);
|
final VMInstanceVO vm = _vmDao.findByUuid(vmUuid);
|
||||||
|
|
||||||
Transaction.execute(new TransactionCallbackNoReturn() {
|
Transaction.execute(new TransactionCallbackNoReturn () {
|
||||||
@Override
|
|
||||||
public void doInTransactionWithoutResult(TransactionStatus status) {
|
public void doInTransactionWithoutResult(TransactionStatus status) {
|
||||||
|
|
||||||
_vmDao.lockRow(vm.getId(), true);
|
_vmDao.lockRow(vm.getId(), true);
|
||||||
@ -4392,7 +4391,7 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
|
|||||||
_jobMgr.submitAsyncJob(workJob, VmWorkJobDispatcher.VM_WORK_QUEUE, vm.getId());
|
_jobMgr.submitAsyncJob(workJob, VmWorkJobDispatcher.VM_WORK_QUEUE, vm.getId());
|
||||||
}
|
}
|
||||||
context.putContextParameter("workJob", workJob);
|
context.putContextParameter("workJob", workJob);
|
||||||
context.putContextParameter("jobId", new Long(vm.getId()));
|
context.putContextParameter("jobId", new Long(workJob.getId()));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -4403,10 +4402,6 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
|
|||||||
VirtualMachine.PowerState.PowerOn, vm.getId(), destHostId);
|
VirtualMachine.PowerState.PowerOn, vm.getId(), destHostId);
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
|
||||||
// TODO build a common pattern to reduce code duplication in following methods
|
|
||||||
// no time for this at current iteration
|
|
||||||
//
|
|
||||||
public Outcome<VirtualMachine> migrateVmForScaleThroughJobQueue(
|
public Outcome<VirtualMachine> migrateVmForScaleThroughJobQueue(
|
||||||
final String vmUuid, final long srcHostId, final DeployDestination dest, final Long newSvcOfferingId) {
|
final String vmUuid, final long srcHostId, final DeployDestination dest, final Long newSvcOfferingId) {
|
||||||
|
|
||||||
@ -4416,8 +4411,7 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
|
|||||||
|
|
||||||
final VMInstanceVO vm = _vmDao.findByUuid(vmUuid);
|
final VMInstanceVO vm = _vmDao.findByUuid(vmUuid);
|
||||||
|
|
||||||
Transaction.execute(new TransactionCallbackNoReturn() {
|
Transaction.execute(new TransactionCallbackNoReturn () {
|
||||||
@Override
|
|
||||||
public void doInTransactionWithoutResult(TransactionStatus status) {
|
public void doInTransactionWithoutResult(TransactionStatus status) {
|
||||||
|
|
||||||
_vmDao.lockRow(vm.getId(), true);
|
_vmDao.lockRow(vm.getId(), true);
|
||||||
@ -4450,7 +4444,7 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
|
|||||||
_jobMgr.submitAsyncJob(workJob, VmWorkJobDispatcher.VM_WORK_QUEUE, vm.getId());
|
_jobMgr.submitAsyncJob(workJob, VmWorkJobDispatcher.VM_WORK_QUEUE, vm.getId());
|
||||||
}
|
}
|
||||||
context.putContextParameter("workJob", workJob);
|
context.putContextParameter("workJob", workJob);
|
||||||
context.putContextParameter("jobId", new Long(vm.getId()));
|
context.putContextParameter("jobId", new Long(workJob.getId()));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -4469,8 +4463,7 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
|
|||||||
|
|
||||||
final VMInstanceVO vm = _vmDao.findByUuid(vmUuid);
|
final VMInstanceVO vm = _vmDao.findByUuid(vmUuid);
|
||||||
|
|
||||||
Transaction.execute(new TransactionCallbackNoReturn() {
|
Transaction.execute(new TransactionCallbackNoReturn () {
|
||||||
@Override
|
|
||||||
public void doInTransactionWithoutResult(TransactionStatus status) {
|
public void doInTransactionWithoutResult(TransactionStatus status) {
|
||||||
|
|
||||||
_vmDao.lockRow(vm.getId(), true);
|
_vmDao.lockRow(vm.getId(), true);
|
||||||
@ -4503,7 +4496,7 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
|
|||||||
_jobMgr.submitAsyncJob(workJob, VmWorkJobDispatcher.VM_WORK_QUEUE, vm.getId());
|
_jobMgr.submitAsyncJob(workJob, VmWorkJobDispatcher.VM_WORK_QUEUE, vm.getId());
|
||||||
}
|
}
|
||||||
context.putContextParameter("workJob", workJob);
|
context.putContextParameter("workJob", workJob);
|
||||||
context.putContextParameter("jobId", new Long(vm.getId()));
|
context.putContextParameter("jobId", new Long(workJob.getId()));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -4520,8 +4513,7 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
|
|||||||
final User user = context.getCallingUser();
|
final User user = context.getCallingUser();
|
||||||
final Account account = context.getCallingAccount();
|
final Account account = context.getCallingAccount();
|
||||||
|
|
||||||
Transaction.execute(new TransactionCallbackNoReturn() {
|
Transaction.execute(new TransactionCallbackNoReturn () {
|
||||||
@Override
|
|
||||||
public void doInTransactionWithoutResult(TransactionStatus status) {
|
public void doInTransactionWithoutResult(TransactionStatus status) {
|
||||||
|
|
||||||
_vmDao.lockRow(vm.getId(), true);
|
_vmDao.lockRow(vm.getId(), true);
|
||||||
@ -4554,7 +4546,7 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
|
|||||||
_jobMgr.submitAsyncJob(workJob, VmWorkJobDispatcher.VM_WORK_QUEUE, vm.getId());
|
_jobMgr.submitAsyncJob(workJob, VmWorkJobDispatcher.VM_WORK_QUEUE, vm.getId());
|
||||||
}
|
}
|
||||||
context.putContextParameter("workJob", workJob);
|
context.putContextParameter("workJob", workJob);
|
||||||
context.putContextParameter("jobId", new Long(vm.getId()));
|
context.putContextParameter("jobId", new Long(workJob.getId()));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -4571,8 +4563,7 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
|
|||||||
final User user = context.getCallingUser();
|
final User user = context.getCallingUser();
|
||||||
final Account account = context.getCallingAccount();
|
final Account account = context.getCallingAccount();
|
||||||
|
|
||||||
Transaction.execute(new TransactionCallbackNoReturn() {
|
Transaction.execute(new TransactionCallbackNoReturn () {
|
||||||
@Override
|
|
||||||
public void doInTransactionWithoutResult(TransactionStatus status) {
|
public void doInTransactionWithoutResult(TransactionStatus status) {
|
||||||
|
|
||||||
_vmDao.lockRow(vm.getId(), true);
|
_vmDao.lockRow(vm.getId(), true);
|
||||||
@ -4605,7 +4596,7 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
|
|||||||
_jobMgr.submitAsyncJob(workJob, VmWorkJobDispatcher.VM_WORK_QUEUE, vm.getId());
|
_jobMgr.submitAsyncJob(workJob, VmWorkJobDispatcher.VM_WORK_QUEUE, vm.getId());
|
||||||
}
|
}
|
||||||
context.putContextParameter("workJob", workJob);
|
context.putContextParameter("workJob", workJob);
|
||||||
context.putContextParameter("jobId", new Long(vm.getId()));
|
context.putContextParameter("jobId", new Long(workJob.getId()));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -4622,8 +4613,7 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
|
|||||||
final User user = context.getCallingUser();
|
final User user = context.getCallingUser();
|
||||||
final Account account = context.getCallingAccount();
|
final Account account = context.getCallingAccount();
|
||||||
|
|
||||||
Transaction.execute(new TransactionCallbackNoReturn() {
|
Transaction.execute(new TransactionCallbackNoReturn () {
|
||||||
@Override
|
|
||||||
public void doInTransactionWithoutResult(TransactionStatus status) {
|
public void doInTransactionWithoutResult(TransactionStatus status) {
|
||||||
|
|
||||||
_vmDao.lockRow(vm.getId(), true);
|
_vmDao.lockRow(vm.getId(), true);
|
||||||
@ -4656,7 +4646,7 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
|
|||||||
_jobMgr.submitAsyncJob(workJob, VmWorkJobDispatcher.VM_WORK_QUEUE, vm.getId());
|
_jobMgr.submitAsyncJob(workJob, VmWorkJobDispatcher.VM_WORK_QUEUE, vm.getId());
|
||||||
}
|
}
|
||||||
context.putContextParameter("workJob", workJob);
|
context.putContextParameter("workJob", workJob);
|
||||||
context.putContextParameter("jobId", new Long(vm.getId()));
|
context.putContextParameter("jobId", new Long(workJob.getId()));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -4675,8 +4665,7 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
|
|||||||
|
|
||||||
final VMInstanceVO vm = _vmDao.findByUuid(vmUuid);
|
final VMInstanceVO vm = _vmDao.findByUuid(vmUuid);
|
||||||
|
|
||||||
Transaction.execute(new TransactionCallbackNoReturn() {
|
Transaction.execute(new TransactionCallbackNoReturn () {
|
||||||
@Override
|
|
||||||
public void doInTransactionWithoutResult(TransactionStatus status) {
|
public void doInTransactionWithoutResult(TransactionStatus status) {
|
||||||
|
|
||||||
_vmDao.lockRow(vm.getId(), true);
|
_vmDao.lockRow(vm.getId(), true);
|
||||||
@ -4709,7 +4698,7 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
|
|||||||
_jobMgr.submitAsyncJob(workJob, VmWorkJobDispatcher.VM_WORK_QUEUE, vm.getId());
|
_jobMgr.submitAsyncJob(workJob, VmWorkJobDispatcher.VM_WORK_QUEUE, vm.getId());
|
||||||
}
|
}
|
||||||
context.putContextParameter("workJob", workJob);
|
context.putContextParameter("workJob", workJob);
|
||||||
context.putContextParameter("jobId", new Long(vm.getId()));
|
context.putContextParameter("jobId", new Long(workJob.getId()));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@ -160,7 +160,9 @@
|
|||||||
|
|
||||||
<bean id="snapshotManagerImpl" class="com.cloud.storage.snapshot.SnapshotManagerImpl" />
|
<bean id="snapshotManagerImpl" class="com.cloud.storage.snapshot.SnapshotManagerImpl" />
|
||||||
|
|
||||||
<bean id="snapshotSchedulerImpl" class="com.cloud.storage.snapshot.SnapshotSchedulerImpl" />
|
<bean id="snapshotSchedulerImpl" class="com.cloud.storage.snapshot.SnapshotSchedulerImpl" >
|
||||||
|
<property name="asyncJobDispatcher" ref="ApiAsyncJobDispatcher" />
|
||||||
|
</bean>
|
||||||
<bean id="storageNetworkManagerImpl" class="com.cloud.network.StorageNetworkManagerImpl" />
|
<bean id="storageNetworkManagerImpl" class="com.cloud.network.StorageNetworkManagerImpl" />
|
||||||
<bean id="taggedResourceManagerImpl" class="com.cloud.tags.TaggedResourceManagerImpl" />
|
<bean id="taggedResourceManagerImpl" class="com.cloud.tags.TaggedResourceManagerImpl" />
|
||||||
<bean id="resourceMetaDataManagerImpl" class="com.cloud.metadata.ResourceMetaDataManagerImpl" />
|
<bean id="resourceMetaDataManagerImpl" class="com.cloud.metadata.ResourceMetaDataManagerImpl" />
|
||||||
|
|||||||
@ -83,7 +83,7 @@ public class SnapshotSchedulerImpl extends ManagerBase implements SnapshotSchedu
|
|||||||
protected VolumeDao _volsDao;
|
protected VolumeDao _volsDao;
|
||||||
@Inject
|
@Inject
|
||||||
protected ConfigurationDao _configDao;
|
protected ConfigurationDao _configDao;
|
||||||
@Inject
|
|
||||||
protected AsyncJobDispatcher _asyncDispatcher;
|
protected AsyncJobDispatcher _asyncDispatcher;
|
||||||
|
|
||||||
private static final int ACQUIRE_GLOBAL_LOCK_TIMEOUT_FOR_COOPERATION = 5; // 5 seconds
|
private static final int ACQUIRE_GLOBAL_LOCK_TIMEOUT_FOR_COOPERATION = 5; // 5 seconds
|
||||||
@ -92,6 +92,14 @@ public class SnapshotSchedulerImpl extends ManagerBase implements SnapshotSchedu
|
|||||||
private Date _currentTimestamp;
|
private Date _currentTimestamp;
|
||||||
private TestClock _testTimerTask;
|
private TestClock _testTimerTask;
|
||||||
|
|
||||||
|
public AsyncJobDispatcher getAsyncJobDispatcher() {
|
||||||
|
return _asyncDispatcher;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAsyncJobDispatcher(AsyncJobDispatcher dispatcher) {
|
||||||
|
_asyncDispatcher = dispatcher;
|
||||||
|
}
|
||||||
|
|
||||||
private Date getNextScheduledTime(long policyId, Date currentTimestamp) {
|
private Date getNextScheduledTime(long policyId, Date currentTimestamp) {
|
||||||
SnapshotPolicyVO policy = _snapshotPolicyDao.findById(policyId);
|
SnapshotPolicyVO policy = _snapshotPolicyDao.findById(policyId);
|
||||||
Date nextTimestamp = null;
|
Date nextTimestamp = null;
|
||||||
|
|||||||
@ -21,7 +21,8 @@ import java.util.concurrent.ScheduledExecutorService;
|
|||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
import org.apache.log4j.Logger;
|
import org.apache.log4j.Logger;
|
||||||
|
import org.apache.cloudstack.context.CallContext;
|
||||||
|
import org.apache.cloudstack.framework.jobs.AsyncJobExecutionContext;
|
||||||
import org.apache.cloudstack.managed.context.ManagedContextRunnable;
|
import org.apache.cloudstack.managed.context.ManagedContextRunnable;
|
||||||
|
|
||||||
import com.cloud.utils.Pair;
|
import com.cloud.utils.Pair;
|
||||||
@ -71,7 +72,15 @@ public class SystemVmLoadScanner<T> {
|
|||||||
@Override
|
@Override
|
||||||
protected void runInContext() {
|
protected void runInContext() {
|
||||||
try {
|
try {
|
||||||
|
CallContext callContext = CallContext.current();
|
||||||
|
assert(callContext != null);
|
||||||
|
|
||||||
|
AsyncJobExecutionContext.registerPseudoExecutionContext(
|
||||||
|
callContext.getCallingAccountId(), callContext.getCallingUserId());
|
||||||
|
|
||||||
reallyRun();
|
reallyRun();
|
||||||
|
|
||||||
|
AsyncJobExecutionContext.unregister();
|
||||||
} catch (Throwable e) {
|
} catch (Throwable e) {
|
||||||
s_logger.warn("Unexpected exception " + e.getMessage(), e);
|
s_logger.warn("Unexpected exception " + e.getMessage(), e);
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user