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

Reply via email to