Libor Spevak has uploaded a new change for review. Change subject: engine: Do not add disk in snapshot preview ......................................................................
engine: Do not add disk in snapshot preview Do not allow to add image disk, sharable disk or LUN to a VM in snapshot preview mode (in shutdown or up states). The condition is indicated by the error dialog message: "Cannot add Virtual Machine Disk. VM is previewing a Snapshot." Change-Id: Ibfde0540f1d77456ed1412b015a0963f4682039f Bug-Url: https://bugzilla.redhat.com/909708 Signed-off-by: Libor Spevak <[email protected]> --- M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddDiskCommand.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AttachDiskToVmCommand.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/HotPlugDiskToVmCommand.java 3 files changed, 23 insertions(+), 4 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/27/13327/1 diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddDiskCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddDiskCommand.java index 2e4438b..1efe0a3 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddDiskCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddDiskCommand.java @@ -130,7 +130,10 @@ return failCanDoAction(VdcBllMessages.ACTION_TYPE_FAILED_DISK_LUN_IS_ALREADY_IN_USE); } - return true; + return + validate(getSnapshotValidator().vmNotDuringSnapshot(getVmId())) && + validate(getSnapshotValidator().vmNotInPreview(getVmId())) && + validate(new VmValidator(getVm()).vmNotLocked()); } private boolean checkIfImageDiskCanBeAdded(VM vm) { diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AttachDiskToVmCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AttachDiskToVmCommand.java index 8c5a503..15c1228 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AttachDiskToVmCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AttachDiskToVmCommand.java @@ -96,7 +96,11 @@ return failCanDoAction(VdcBllMessages.ACTION_TYPE_FAILED_STORAGE_POOL_NOT_MATCH); } - if (isImageDisk && !validate(new SnapshotsValidator().vmNotDuringSnapshot(getVm().getId()))) { + final boolean isNotDuringSnapshot = + validate(getSnapshotsValidator().vmNotDuringSnapshot(getVmId())) && + validate(getSnapshotsValidator().vmNotInPreview(getVmId())); + + if (isImageDisk && !isNotDuringSnapshot) { return false; } @@ -196,4 +200,9 @@ public String getDiskAlias() { return disk.getDiskAlias(); } + + protected SnapshotsValidator getSnapshotsValidator() { + return new SnapshotsValidator(); + } + } diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/HotPlugDiskToVmCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/HotPlugDiskToVmCommand.java index 9919893..ac5de9a 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/HotPlugDiskToVmCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/HotPlugDiskToVmCommand.java @@ -6,6 +6,7 @@ import org.ovirt.engine.core.bll.snapshots.SnapshotsValidator; import org.ovirt.engine.core.bll.utils.VmDeviceUtils; +import org.ovirt.engine.core.bll.validator.VmValidator; import org.ovirt.engine.core.common.AuditLogType; import org.ovirt.engine.core.common.action.HotPlugDiskToVmParameters; import org.ovirt.engine.core.common.businessentities.Disk; @@ -40,8 +41,14 @@ @Override protected boolean canDoAction() { disk = getDiskDao().get(getParameters().getDiskId()); - return isVmExist() && isVmUpOrDown() && isDiskExist(disk) && checkCanPerformPlugUnPlugDisk() - && validate(getSnapshotsValidator().vmNotDuringSnapshot(getVmId())); + return + isVmExist() && + isVmUpOrDown() && + isDiskExist(disk) && + checkCanPerformPlugUnPlugDisk() && + validate(getSnapshotsValidator().vmNotDuringSnapshot(getVmId())) && + validate(getSnapshotsValidator().vmNotInPreview(getVmId())) && + validate(new VmValidator(getVm()).vmNotLocked()); } private boolean checkCanPerformPlugUnPlugDisk() { -- To view, visit http://gerrit.ovirt.org/13327 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Ibfde0540f1d77456ed1412b015a0963f4682039f Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Libor Spevak <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
