Allon Mureinik has uploaded a new change for review. Change subject: core: RemoveSnapshot vmDown validation ......................................................................
core: RemoveSnapshot vmDown validation Added an explicit test for VM.isDown in RemoveSnapshotCommand.canDoAction() instead of using ImagesHandler.PerformImagesChecks to do it. In order to do this neatly, such a method was added to VmValidator, which is the standard way of writing canDoActions. Note: This patch is part of a series intended to remove the VM status check from ImagesHandler. Change-Id: Ifd281aa6778a3249162517499b5f0f48b04ed6b6 Signed-off-by: Allon Mureinik <amure...@redhat.com> --- M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveSnapshotCommand.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/validator/VmValidator.java 2 files changed, 15 insertions(+), 12 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/14/11014/1 diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveSnapshotCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveSnapshotCommand.java index 083dbe0..c2e212c 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveSnapshotCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveSnapshotCommand.java @@ -11,6 +11,7 @@ import org.ovirt.engine.core.bll.quota.QuotaManager; import org.ovirt.engine.core.bll.quota.QuotaStorageDependent; import org.ovirt.engine.core.bll.snapshots.SnapshotsValidator; +import org.ovirt.engine.core.bll.validator.VmValidator; import org.ovirt.engine.core.common.AuditLogType; import org.ovirt.engine.core.common.VdcObjectType; import org.ovirt.engine.core.common.action.ImagesContainterParametersBase; @@ -160,17 +161,10 @@ protected boolean canDoAction() { initializeObjectState(); - if (!validateVmNotDuringSnapshot()) { - handleCanDoActionFailure(); - return false; - } - - if (!validateSnapshotExists()) { - handleCanDoActionFailure(); - return false; - } - - if (!validateImagesAndVMStates()) { + if (!validateVmNotDuringSnapshot() || + !validateSnapshotExists() || + !validate(new VmValidator(getVm()).vmDown()) || + !validateImagesAndVMStates()) { handleCanDoActionFailure(); return false; } @@ -214,7 +208,7 @@ protected boolean validateImagesAndVMStates() { return ImagesHandler.PerformImagesChecks(getVm(), getReturnValue().getCanDoActionMessages(), getVm().getStoragePoolId(), Guid.Empty, - hasImages(), hasImages(), hasImages(), hasImages(), true, true, true, true, null); + hasImages(), hasImages(), hasImages(), hasImages(), true, false, true, true, null); } protected boolean validateImageNotInTemplate() { diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/validator/VmValidator.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/validator/VmValidator.java index 686243e..72c1781 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/validator/VmValidator.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/validator/VmValidator.java @@ -24,6 +24,15 @@ return ValidationResult.VALID; } + /** @return Validation result that indicates if the VM is down or not. */ + public ValidationResult vmDown() { + if (!vm.isDown()) { + return new ValidationResult(VdcBllMessages.ACTION_TYPE_FAILED_VM_IS_NOT_DOWN); + } + + return ValidationResult.VALID; + } + public ValidationResult vmNotRunningStateless() { if (DbFacade.getInstance().getSnapshotDao().exists(vm.getId(), SnapshotType.STATELESS)) { VdcBllMessages message = vm.isRunning() ? VdcBllMessages.ACTION_TYPE_FAILED_VM_RUNNING_STATELESS : -- To view, visit http://gerrit.ovirt.org/11014 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Ifd281aa6778a3249162517499b5f0f48b04ed6b6 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Allon Mureinik <amure...@redhat.com> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches