Daniel Erez has uploaded a new change for review.

Change subject: core: lsm - live snapshots rollback
......................................................................

core: lsm - live snapshots rollback

* LiveMigrateDiskCommand:
** Marking taskGroupSuccesses as false when VM is UP.
** Overriding vdsId getter for nullity check.

* LiveSnapshotTaskHandler:
** Executing only when taskGroupSuccess is true.
** CreateAllSnapshotsFromVmParameters - updating taskGroupSuccess
   (needed for CreateAllSnapshotsFromVmCommand -> endVmCommand).

* AbstractSPMAsyncTaskHandler -> execute:
** Executing only when taskGroupSuccess is true.

Change-Id: I24f9bc88623a9cd0addade874c7f2beeab67d423
Bug-Url: https://bugzilla.redhat.com/873329
Signed-off-by: Daniel Erez <de...@redhat.com>
---
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AbstractSPMAsyncTaskHandler.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/lsm/LiveMigrateDiskCommand.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/lsm/LiveSnapshotTaskHandler.java
3 files changed, 24 insertions(+), 26 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/42/9142/1

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AbstractSPMAsyncTaskHandler.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AbstractSPMAsyncTaskHandler.java
index 83a831a..de26985 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AbstractSPMAsyncTaskHandler.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AbstractSPMAsyncTaskHandler.java
@@ -28,10 +28,13 @@
 
     @Override
     public void execute() {
-        getEnclosingCommand().getReturnValue().setSucceeded(false);
-        beforeTask();
-        addTask(Backend.getInstance().getResourceManager()
-                .RunVdsCommand(getVDSCommandType(), getVDSParameters()));
+        if (getEnclosingCommand().getParameters().getTaskGroupSuccess()) {
+            getReturnValue().setSucceeded(false);
+            beforeTask();
+            addTask(Backend.getInstance().getResourceManager()
+                    .RunVdsCommand(getVDSCommandType(), getVDSParameters()));
+        }
+
         getReturnValue().setSucceeded(true);
     }
 
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/lsm/LiveMigrateDiskCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/lsm/LiveMigrateDiskCommand.java
index 7af21ec..3f324a4 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/lsm/LiveMigrateDiskCommand.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/lsm/LiveMigrateDiskCommand.java
@@ -34,21 +34,14 @@
     public LiveMigrateDiskCommand(T parameters) {
         super(parameters);
 
-        if (VMStatus.Up != getVm().getstatus()) {
-            log.infoFormat("Rollback LiveMigrateDiskCommand - VM {0} is not 
UP", getVm().getvm_name());
-            handleVmNotUp();
-            return;
-        }
-
-        setVdsId(getVm().getrun_on_vds().getValue());
-        getParameters().setVdsId(getVdsId());
-
         setStoragePoolId(getVm().getstorage_pool_id());
         getParameters().setStoragePoolId(getStoragePoolId().getValue());
 
+        getParameters().setVdsId(getVdsId());
         getParameters().setDiskAlias(getDiskAlias());
         getParameters().setImageGroupID(getImageGroupId());
         getParameters().setCommandType(getActionType());
+        getParameters().setTaskGroupSuccess(VMStatus.Up == getVm().getstatus() 
&& getParameters().getTaskGroupSuccess());
     }
 
     /* Overridden CommandBase Methods */
@@ -119,6 +112,11 @@
         return vm;
     }
 
+    @Override
+    public Guid getVdsId() {
+        return getVm().getrun_on_vds() != null ? 
getVm().getrun_on_vds().getValue() : Guid.Empty;
+    }
+
     /* Overridden stubs declared as public in order to implement 
ITaskHandlerCommand */
 
     @Override
@@ -137,13 +135,5 @@
     @Override
     public VdcActionType getActionType() {
         return super.getActionType();
-    }
-
-    protected void handleVmNotUp() {
-        if (isEndSuccessfully()) {
-            getParameters().incrementExecutionIndex();
-        }
-        getParameters().setTaskGroupSuccess(false);
-        setSucceeded(true);
     }
 }
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/lsm/LiveSnapshotTaskHandler.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/lsm/LiveSnapshotTaskHandler.java
index 424b242..12b3487 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/lsm/LiveSnapshotTaskHandler.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/lsm/LiveSnapshotTaskHandler.java
@@ -28,11 +28,14 @@
 
     @Override
     public void execute() {
-        VdcReturnValueBase vdcReturnValue =
-                
Backend.getInstance().runInternalAction(VdcActionType.CreateAllSnapshotsFromVm,
-                        getCreateSnapshotParameters(),
-                        
ExecutionHandler.createDefaultContexForTasks(enclosingCommand.getExecutionContext()));
-        
enclosingCommand.getReturnValue().getTaskIdList().addAll(vdcReturnValue.getInternalTaskIdList());
+        if (enclosingCommand.getParameters().getTaskGroupSuccess()) {
+            VdcReturnValueBase vdcReturnValue =
+                    
Backend.getInstance().runInternalAction(VdcActionType.CreateAllSnapshotsFromVm,
+                            getCreateSnapshotParameters(),
+                            
ExecutionHandler.createDefaultContexForTasks(enclosingCommand.getExecutionContext()));
+            
enclosingCommand.getReturnValue().getTaskIdList().addAll(vdcReturnValue.getInternalTaskIdList());
+        }
+
         enclosingCommand.getReturnValue().setSucceeded(true);
     }
 
@@ -67,6 +70,7 @@
     public void endWithFailure() {
         updateDestinitationImageId();
         endCreateAllSnapshots();
+        enclosingCommand.getReturnValue().setSucceeded(true);
     }
 
     @Override
@@ -98,6 +102,7 @@
         params.setSnapshotType(SnapshotType.REGULAR);
         params.setParentParameters(enclosingCommand.getParameters());
         
params.setImagesParameters(enclosingCommand.getParameters().getImagesParameters());
+        
params.setTaskGroupSuccess(enclosingCommand.getParameters().getTaskGroupSuccess());
         params.setNeedsLocking(false);
 
         return params;


--
To view, visit http://gerrit.ovirt.org/9142
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I24f9bc88623a9cd0addade874c7f2beeab67d423
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Daniel Erez <de...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to