Daniel Erez has uploaded a new change for review. Change subject: core: RemoveDiskSnapshot rollback - fetch disk by DiskDao ......................................................................
core: RemoveDiskSnapshot rollback - fetch disk by DiskDao RemoveDiskSnapshotTaskHandler -> * endWithFailure: Fetching a disk by imageGroupId should be done using DiskDao. * endRemoveSnapshotSingleDisk: update TaskGroupSuccess appropriately. Change-Id: I9b6d811a86c353087479de1fc25276be62df4bec Bug-Url: https://bugzilla.redhat.com/1134382 Bug-Url: https://bugzilla.redhat.com/1134434 Signed-off-by: Daniel Erez <[email protected]> --- M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveDiskSnapshotTaskHandler.java 1 file changed, 10 insertions(+), 6 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/43/32143/1 diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveDiskSnapshotTaskHandler.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveDiskSnapshotTaskHandler.java index 7f48cc8..1d9daf9 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveDiskSnapshotTaskHandler.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveDiskSnapshotTaskHandler.java @@ -9,6 +9,7 @@ import org.ovirt.engine.core.common.action.VdcActionType; import org.ovirt.engine.core.common.action.VdcReturnValueBase; import org.ovirt.engine.core.common.asynctasks.AsyncTaskType; +import org.ovirt.engine.core.common.businessentities.Disk; import org.ovirt.engine.core.common.businessentities.DiskImage; import org.ovirt.engine.core.common.businessentities.ImageStatus; import org.ovirt.engine.core.compat.Guid; @@ -68,6 +69,7 @@ parameters.setParentParameters(enclosingCommand.getParameters()); parameters.setParentCommand(enclosingCommand.getActionType()); parameters.setSessionId(enclosingCommand.getParameters().getSessionId()); + parameters.setTaskGroupSuccess(false); return parameters; } @@ -86,7 +88,7 @@ @Override public void endSuccessfully() { - endRemoveSnapshotSingleDisk(); + endRemoveSnapshotSingleDisk(true); enclosingCommand.taskEndSuccessfully(); if (isLastTaskHandler()) { // Unlock on job finish @@ -97,20 +99,22 @@ @Override public void endWithFailure() { - endRemoveSnapshotSingleDisk(); + endRemoveSnapshotSingleDisk(false); // Unlock all images since failure aborts the entire job - DiskImage diskImage = DbFacade.getInstance().getDiskImageDao().get(imageGroupId); - if (diskImage.getImageStatus() == ImageStatus.LOCKED) { + Disk disk = DbFacade.getInstance().getDiskDao().get(imageGroupId); + if (((DiskImage) disk).getImageStatus() == ImageStatus.LOCKED) { updateImagesStatus(ImageStatus.OK); } enclosingCommand.preventRollback(); enclosingCommand.getReturnValue().setSucceeded(true); } - private void endRemoveSnapshotSingleDisk() { + private void endRemoveSnapshotSingleDisk(boolean taskGroupSuccess) { + ImagesContainterParametersBase parameters = buildRemoveSnapshotSingleDiskParameters(); + parameters.setTaskGroupSuccess(taskGroupSuccess); VdcReturnValueBase vdcReturnValue = Backend.getInstance().endAction( VdcActionType.RemoveSnapshotSingleDisk, - buildRemoveSnapshotSingleDiskParameters(), + parameters, getCommandContext()); enclosingCommand.getReturnValue().setSucceeded(vdcReturnValue.getSucceeded()); } -- To view, visit http://gerrit.ovirt.org/32143 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I9b6d811a86c353087479de1fc25276be62df4bec Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Daniel Erez <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
