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.AsyncJobManager;
|
||||
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.AsyncJobJournalDao;
|
||||
import org.apache.cloudstack.framework.jobs.dao.SyncQueueItemDao;
|
||||
@ -131,6 +132,8 @@ public class AsyncJobManagerImpl extends ManagerBase implements AsyncJobManager,
|
||||
@Inject
|
||||
private VMInstanceDao _vmInstanceDao;
|
||||
@Inject
|
||||
private VmWorkJobDao _vmWorkJobDao;
|
||||
@Inject
|
||||
private VolumeDetailsDao _volumeDetailsDao;
|
||||
@Inject
|
||||
private VolumeDao _volsDao;
|
||||
@ -898,6 +901,9 @@ public class AsyncJobManagerImpl extends ManagerBase implements AsyncJobManager,
|
||||
Transaction.execute(new TransactionCallbackNoReturn() {
|
||||
@Override
|
||||
public void doInTransactionWithoutResult(TransactionStatus status) {
|
||||
if ("VmWork".equals(job.getType())) {
|
||||
_vmWorkJobDao.expunge(job.getId());
|
||||
}
|
||||
_jobDao.expunge(job.getId());
|
||||
// purge corresponding sync queue item
|
||||
_queueMgr.purgeAsyncJobQueueItemId(job.getId());
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user