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