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

Reply via email to