Gilad Chaplik has uploaded a new change for review.

Change subject: core: RunVmCommand.canDoAction clean-up (7)
......................................................................

core: RunVmCommand.canDoAction clean-up (7)

extract storage pool validation.

Change-Id: I37e73f99f15b69b9e41527a1ae8de66d80c36a17
Signed-off-by: Gilad Chaplik <gchap...@redhat.com>
---
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RunVmCommand.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VmPoolCommandBase.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VmRunHandler.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/validator/RunVmValidator.java
M 
backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/RunVmCommandTest.java
5 files changed, 21 insertions(+), 11 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/60/13660/1

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RunVmCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RunVmCommand.java
index db9f1e3..7438683 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RunVmCommand.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RunVmCommand.java
@@ -19,6 +19,7 @@
 import org.ovirt.engine.core.bll.quota.QuotaConsumptionParameter;
 import org.ovirt.engine.core.bll.quota.QuotaVdsDependent;
 import org.ovirt.engine.core.bll.quota.QuotaVdsGroupConsumptionParameter;
+import org.ovirt.engine.core.bll.storage.StoragePoolValidator;
 import org.ovirt.engine.core.bll.utils.PermissionSubject;
 import org.ovirt.engine.core.bll.utils.VmDeviceUtils;
 import org.ovirt.engine.core.bll.validator.RunVmValidator;
@@ -692,6 +693,7 @@
                                     vmDisks,
                                     isInternalExecution(),
                                     messages) &&
+                            validate(new 
StoragePoolValidator(getStoragePoolDAO().get(vm.getStoragePoolId())).isUp()) &&
                             canRunVm(vm) &&
                             validateNetworkInterfaces();
             if (!canDoAction) {
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VmPoolCommandBase.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VmPoolCommandBase.java
index fc86858..b3ad6f6 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VmPoolCommandBase.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VmPoolCommandBase.java
@@ -268,7 +268,8 @@
                 messages,
                 getDiskDao().getAllForVm(vm.getId(), true),
                 runVmParams.getBootSequence(),
-                false)
+                false,
+                fetchStoragePool(vm.getStoragePoolId()))
                 &&
                 VmRunHandler.getInstance().canRunVm(vm,
                         messages,
@@ -281,6 +282,10 @@
         return DbFacade.getInstance().getDiskDao();
     }
 
+    private static storage_pool fetchStoragePool(Guid storagePoolId) {
+        return DbFacade.getInstance().getStoragePoolDao().get(storagePoolId);
+    }
+
     private static RunVmValidator getRunVmValidator() {
         return new RunVmValidator();
     }
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VmRunHandler.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VmRunHandler.java
index c138685..984901e 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VmRunHandler.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VmRunHandler.java
@@ -10,7 +10,6 @@
 import org.apache.commons.lang.StringUtils;
 import org.ovirt.engine.core.bll.interfaces.BackendInternal;
 import org.ovirt.engine.core.bll.snapshots.SnapshotsValidator;
-import org.ovirt.engine.core.bll.storage.StoragePoolValidator;
 import org.ovirt.engine.core.bll.validator.StorageDomainValidator;
 import org.ovirt.engine.core.common.VdcActionUtils;
 import org.ovirt.engine.core.common.action.RunVmParams;
@@ -24,7 +23,6 @@
 import org.ovirt.engine.core.common.businessentities.VDSStatus;
 import org.ovirt.engine.core.common.businessentities.VM;
 import org.ovirt.engine.core.common.businessentities.VMStatus;
-import org.ovirt.engine.core.common.businessentities.storage_pool;
 import org.ovirt.engine.core.common.config.Config;
 import org.ovirt.engine.core.common.config.ConfigValues;
 import org.ovirt.engine.core.common.queries.GetImagesListParameters;
@@ -61,13 +59,6 @@
     public boolean canRunVm(VM vm, ArrayList<String> message, RunVmParams 
runParams,
             VdsSelector vdsSelector, SnapshotsValidator snapshotsValidator) {
         boolean retValue = true;
-
-        storage_pool sp = getStoragePoolDAO().get(vm.getStoragePoolId());
-        ValidationResult spUpResult = new StoragePoolValidator(sp).isUp();
-        if (!spUpResult.isValid()) {
-            message.add(spUpResult.getMessage().name());
-            retValue = false;
-        }
 
         // Check if iso and floppy path exists
         if (retValue && !vm.isAutoStartup()
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/validator/RunVmValidator.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/validator/RunVmValidator.java
index 40bef98..1f479a8 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/validator/RunVmValidator.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/validator/RunVmValidator.java
@@ -7,10 +7,12 @@
 import org.ovirt.engine.core.bll.ValidationResult;
 import org.ovirt.engine.core.bll.VmHandler;
 import org.ovirt.engine.core.bll.snapshots.SnapshotsValidator;
+import org.ovirt.engine.core.bll.storage.StoragePoolValidator;
 import org.ovirt.engine.core.common.businessentities.BootSequence;
 import org.ovirt.engine.core.common.businessentities.Disk;
 import org.ovirt.engine.core.common.businessentities.DiskImage;
 import org.ovirt.engine.core.common.businessentities.VM;
+import org.ovirt.engine.core.common.businessentities.storage_pool;
 import org.ovirt.engine.core.compat.Guid;
 import org.ovirt.engine.core.dal.VdcBllMessages;
 import org.ovirt.engine.core.dal.dbbroker.DbFacade;
@@ -96,7 +98,8 @@
             List<String> messages,
             List<Disk> vmDisks,
             BootSequence bootSequence,
-            boolean isInternalExecution) {
+            boolean isInternalExecution,
+            storage_pool storagePool) {
         if (!validateVmProperties(vm, messages)) {
             return false;
         }
@@ -118,6 +121,11 @@
         if (validateImagesForRunVm(vm, vmDisks, isInternalExecution, 
messages)) {
             return false;
         }
+        result = new StoragePoolValidator(storagePool).isUp();
+        if (!result.isValid()) {
+            messages.add(result.getMessage().toString());
+            return false;
+        }
         return true;
     }
 
diff --git 
a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/RunVmCommandTest.java
 
b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/RunVmCommandTest.java
index b7813c3..4bcf6d7 100644
--- 
a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/RunVmCommandTest.java
+++ 
b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/RunVmCommandTest.java
@@ -462,6 +462,10 @@
                 Matchers.anyListOf(Disk.class),
                 anyBoolean(),
                 Matchers.anyListOf(String.class))).thenReturn(true);
+        storage_pool sp = new storage_pool();
+        sp.setstatus(StoragePoolStatus.Up);
+        when(spDao.get(any(Guid.class))).thenReturn(sp);
+        doReturn(spDao).when(command).getStoragePoolDAO();
         doReturn(runVmValidator).when(command).getRunVmValidator();
         return runVmValidator;
     }


--
To view, visit http://gerrit.ovirt.org/13660
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I37e73f99f15b69b9e41527a1ae8de66d80c36a17
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Gilad Chaplik <gchap...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to