Federico Simoncelli has uploaded a new change for review. Change subject: core: new job when reverting ImportRepoImage ......................................................................
core: new job when reverting ImportRepoImage Spawning a new task when reverting a task handler generates all sorts of glitches, e.g.: - task might asynchronously complete when the command execution index reached -1 causing an endless loop in internalEndWithFailure because getSucceeded is false (ImportRepoImage hasnt succeeded, not clearing tasks) - the audit log would report (immediately) that the reverting task has failed even if it's still running (probably because the end result is per command and not per single task) It seems that the correct way to revert a task using a new async task is to create a new separate job which would track its execution. Change-Id: I2fea15129eb9e1b0dc1ed6d7d09d8dd63cddd5db Signed-off-by: Federico Simoncelli <fsimo...@redhat.com> --- M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportRepoImageCreateTaskHandler.java 1 file changed, 4 insertions(+), 23 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/56/17756/1 diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportRepoImageCreateTaskHandler.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportRepoImageCreateTaskHandler.java index 83e9eb1..f10d2b6 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportRepoImageCreateTaskHandler.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportRepoImageCreateTaskHandler.java @@ -8,9 +8,9 @@ import org.ovirt.engine.core.common.VdcObjectType; import org.ovirt.engine.core.common.action.AddImageFromScratchParameters; import org.ovirt.engine.core.common.action.ImportRepoImageParameters; +import org.ovirt.engine.core.common.action.RemoveDiskParameters; import org.ovirt.engine.core.common.action.VdcActionType; import org.ovirt.engine.core.common.action.VdcReturnValueBase; -import org.ovirt.engine.core.common.asynctasks.AsyncTaskCreationInfo; import org.ovirt.engine.core.common.asynctasks.AsyncTaskType; import org.ovirt.engine.core.common.asynctasks.EntityInfo; import org.ovirt.engine.core.common.businessentities.DiskImage; @@ -18,9 +18,6 @@ import org.ovirt.engine.core.common.businessentities.StorageDomain; import org.ovirt.engine.core.common.businessentities.VolumeFormat; import org.ovirt.engine.core.common.businessentities.VolumeType; -import org.ovirt.engine.core.common.vdscommands.DeleteImageGroupVDSCommandParameters; -import org.ovirt.engine.core.common.vdscommands.VDSCommandType; -import org.ovirt.engine.core.common.vdscommands.VDSReturnValue; import org.ovirt.engine.core.compat.Guid; import org.ovirt.engine.core.dal.dbbroker.DbFacade; @@ -113,25 +110,9 @@ } protected void deleteImageGroup() { - VDSReturnValue vdsReturnValue = - Backend.getInstance().getResourceManager().RunVdsCommand(VDSCommandType.DeleteImageGroup, - new DeleteImageGroupVDSCommandParameters( - enclosingCommand.getParameters().getStoragePoolId(), - enclosingCommand.getParameters().getStorageDomainId(), - enclosingCommand.getParameters().getImageGroupID(), - true, true)); - - AsyncTaskCreationInfo taskCreationInfo = vdsReturnValue.getCreationInfo(); - enclosingCommand.getReturnValue().getInternalVdsmTaskIdList().add(enclosingCommand.createTask( - Guid.Empty, - taskCreationInfo, - enclosingCommand.getActionType(), - VdcObjectType.Disk, - new Guid[] { enclosingCommand.getParameters().getImageGroupID() }) - ); - - Guid vdsmTaskId = taskCreationInfo.getVdsmTaskId(); - enclosingCommand.getReturnValue().getVdsmTaskIdList().add(vdsmTaskId); + Backend.getInstance().runInternalAction(VdcActionType.RemoveDisk, + new RemoveDiskParameters(enclosingCommand.getParameters().getImageGroupID()), + ExecutionHandler.createInternalJobContext()); } @Override -- To view, visit http://gerrit.ovirt.org/17756 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I2fea15129eb9e1b0dc1ed6d7d09d8dd63cddd5db Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Federico Simoncelli <fsimo...@redhat.com> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches