Federico Simoncelli has uploaded a new change for review. Change subject: backend: remove vm check from LiveMigrateDiskCommand ......................................................................
backend: remove vm check from LiveMigrateDiskCommand This patch shifts the VM status check from the LiveMigrateDiskCommand to VmReplicateDiskStartTaskHandler. This will: * prevent CreateImagePlaceholderTaskHandler from failing if the VM crashes during its execution * shift the failure to the appropriate handler (VmReplicateDiskStart) * allow the CreateImagePlaceholderTaskHandler compensation to take place and remove the destination image when necessary Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=957703 Change-Id: Iac42a5d10373a0c1fcf9a224fb902f0ce481d3b7 Signed-off-by: Federico Simoncelli <fsimo...@redhat.com> --- 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/VmReplicateDiskStartTaskHandler.java 2 files changed, 12 insertions(+), 2 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/76/19876/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 ffc1d42..ca72bce 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 @@ -35,8 +35,6 @@ getParameters().setDiskAlias(getDiskAlias()); getParameters().setImageGroupID(getImageGroupId()); getParameters().setCommandType(getActionType()); - getParameters().setTaskGroupSuccess(getParameters().getTaskGroupSuccess() - && getVm().getStatus().isRunningOrPaused()); } /* Overridden CommandBase Methods */ diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/lsm/VmReplicateDiskStartTaskHandler.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/lsm/VmReplicateDiskStartTaskHandler.java index c357dee..bc2d3fc 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/lsm/VmReplicateDiskStartTaskHandler.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/lsm/VmReplicateDiskStartTaskHandler.java @@ -6,6 +6,7 @@ import org.ovirt.engine.core.common.action.LiveMigrateDiskParameters; import org.ovirt.engine.core.common.asynctasks.AsyncTaskType; import org.ovirt.engine.core.common.errors.VdcBLLException; +import org.ovirt.engine.core.common.errors.VdcBllErrors; import org.ovirt.engine.core.common.vdscommands.SyncImageGroupDataVDSCommandParameters; import org.ovirt.engine.core.common.vdscommands.VDSCommandType; import org.ovirt.engine.core.common.vdscommands.VDSParametersBase; @@ -22,6 +23,11 @@ @Override protected void beforeTask() { + if (Guid.Empty.equals(getEnclosingCommand().getParameters().getVdsId())) { + throw new VdcBLLException(VdcBllErrors.down, + "VM " + getEnclosingCommand().getParameters().getVmId() + " is not running on any VDS"); + } + // Start disk migration VmReplicateDiskParameters migrationStartParams = new VmReplicateDiskParameters (getEnclosingCommand().getParameters().getVdsId(), @@ -65,6 +71,12 @@ @Override protected void revertTask() { + if (Guid.Empty.equals(getEnclosingCommand().getParameters().getVdsId())) { + log.errorFormat("VM {0} is not running on any VDS, skipping VmReplicateDiskFinish", + getEnclosingCommand().getParameters().getVmId()); + return; + } + // Undo the replicateStart - use replicateFinish back to the source VmReplicateDiskParameters migrationStartParams = new VmReplicateDiskParameters (getEnclosingCommand().getParameters().getVdsId(), -- To view, visit http://gerrit.ovirt.org/19876 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Iac42a5d10373a0c1fcf9a224fb902f0ce481d3b7 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Federico Simoncelli <fsimo...@redhat.com> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches