Daniel Erez has uploaded a new change for review. Change subject: core: LSM - rollback on non-running VM ......................................................................
core: LSM - rollback on non-running VM LiveMigrateDiskCommand: Initiating rollback if the VM stops during migration. On each step of the migration process a new command is created (in order to execute the next task), if the VM is no longer running the previous tasks should be reverted/cleared. LiveSnapshotTaskHandler: On compensation, image's status should be reverted to OK. Updating status using DestinationImageId since ImageId might be obsolete - depending on which step the failure occurred (when taking a snapshot, a new active image is generated). Change-Id: I7aafc5cd63f961470124c984afb2e7a9d74a0de2 Bug-Url: https://bugzilla.redhat.com/872316 Signed-off-by: Daniel Erez <[email protected]> --- 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 2 files changed, 15 insertions(+), 0 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/98/8998/1 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 bdf9ae6..857cbfa 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,6 +34,11 @@ public LiveMigrateDiskCommand(T parameters) { super(parameters); + if (VMStatus.Up != getVm().getstatus()) { + endWithFailure(); + return; + } + setVdsId(getVm().getrun_on_vds().getValue()); getParameters().setVdsId(getVdsId()); @@ -134,4 +139,13 @@ public VdcActionType getActionType() { return super.getActionType(); } + + @Override + protected void endWithFailure() { + 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 cf981e2..424b242 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 @@ -73,6 +73,7 @@ public void compensate() { // Unlock the image we left locked ImagesHandler.updateImageStatus(enclosingCommand.getParameters().getImageId(), ImageStatus.OK); + ImagesHandler.updateImageStatus(enclosingCommand.getParameters().getDestinationImageId(), ImageStatus.OK); } @Override -- To view, visit http://gerrit.ovirt.org/8998 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I7aafc5cd63f961470124c984afb2e7a9d74a0de2 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
