mirror of
https://github.com/apache/cloudstack.git
synced 2025-10-26 08:42:29 +01:00
jobs: fixed duplicate id error when creating VM work jobs (#3871)
This PR removes related VMWorkjob records when the async_job table is cleaned out. Fixes: #3829
This commit is contained in:
parent
5ae65bfab0
commit
a443f31b78
@ -49,6 +49,7 @@ import org.apache.cloudstack.framework.jobs.AsyncJobDispatcher;
|
|||||||
import org.apache.cloudstack.framework.jobs.AsyncJobExecutionContext;
|
import org.apache.cloudstack.framework.jobs.AsyncJobExecutionContext;
|
||||||
import org.apache.cloudstack.framework.jobs.AsyncJobManager;
|
import org.apache.cloudstack.framework.jobs.AsyncJobManager;
|
||||||
import org.apache.cloudstack.framework.jobs.dao.AsyncJobDao;
|
import org.apache.cloudstack.framework.jobs.dao.AsyncJobDao;
|
||||||
|
import org.apache.cloudstack.framework.jobs.dao.VmWorkJobDao;
|
||||||
import org.apache.cloudstack.framework.jobs.dao.AsyncJobJoinMapDao;
|
import org.apache.cloudstack.framework.jobs.dao.AsyncJobJoinMapDao;
|
||||||
import org.apache.cloudstack.framework.jobs.dao.AsyncJobJournalDao;
|
import org.apache.cloudstack.framework.jobs.dao.AsyncJobJournalDao;
|
||||||
import org.apache.cloudstack.framework.jobs.dao.SyncQueueItemDao;
|
import org.apache.cloudstack.framework.jobs.dao.SyncQueueItemDao;
|
||||||
@ -131,6 +132,8 @@ public class AsyncJobManagerImpl extends ManagerBase implements AsyncJobManager,
|
|||||||
@Inject
|
@Inject
|
||||||
private VMInstanceDao _vmInstanceDao;
|
private VMInstanceDao _vmInstanceDao;
|
||||||
@Inject
|
@Inject
|
||||||
|
private VmWorkJobDao _vmWorkJobDao;
|
||||||
|
@Inject
|
||||||
private VolumeDetailsDao _volumeDetailsDao;
|
private VolumeDetailsDao _volumeDetailsDao;
|
||||||
@Inject
|
@Inject
|
||||||
private VolumeDao _volsDao;
|
private VolumeDao _volsDao;
|
||||||
@ -898,6 +901,9 @@ public class AsyncJobManagerImpl extends ManagerBase implements AsyncJobManager,
|
|||||||
Transaction.execute(new TransactionCallbackNoReturn() {
|
Transaction.execute(new TransactionCallbackNoReturn() {
|
||||||
@Override
|
@Override
|
||||||
public void doInTransactionWithoutResult(TransactionStatus status) {
|
public void doInTransactionWithoutResult(TransactionStatus status) {
|
||||||
|
if ("VmWork".equals(job.getType())) {
|
||||||
|
_vmWorkJobDao.expunge(job.getId());
|
||||||
|
}
|
||||||
_jobDao.expunge(job.getId());
|
_jobDao.expunge(job.getId());
|
||||||
// purge corresponding sync queue item
|
// purge corresponding sync queue item
|
||||||
_queueMgr.purgeAsyncJobQueueItemId(job.getId());
|
_queueMgr.purgeAsyncJobQueueItemId(job.getId());
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user