Allon Mureinik has uploaded a new change for review.

Change subject: core: VmPoolCommandBase: Direct domain validation
......................................................................

core: VmPoolCommandBase: Direct domain validation

Stopped using ImagesHandler to validate the storage domain in
VmPoolCommandBase, and instead directly called StorageDomainValidator.

This is done as a step in the ongoing effort to decouple
ImagesHandler.PerformImagesChecks, and remove irrelevant validations
(e.g., storage domains) from it.

Change-Id: I7d1854bc4a33f2f7ea218670082dd9bee7467cd9
Signed-off-by: Allon Mureinik <[email protected]>
---
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VmPoolCommandBase.java
1 file changed, 15 insertions(+), 3 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/25/12125/1

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 29b9ee3..26c986e 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
@@ -6,6 +6,7 @@
 import org.ovirt.engine.core.bll.snapshots.SnapshotsValidator;
 import org.ovirt.engine.core.bll.storage.StoragePoolValidator;
 import org.ovirt.engine.core.bll.utils.PermissionSubject;
+import org.ovirt.engine.core.bll.validator.StorageDomainValidator;
 import org.ovirt.engine.core.bll.validator.VmValidator;
 import org.ovirt.engine.core.common.VdcObjectType;
 import org.ovirt.engine.core.common.action.RunVmParams;
@@ -184,13 +185,24 @@
 
         List<Disk> disks = 
DbFacade.getInstance().getDiskDao().getAllForVm(vmId);
         List<DiskImage> vmImages = ImagesHandler.filterImageDisks(disks, true, 
true);
-        Guid storageDomainId = vmImages.size() > 0 ? 
vmImages.get(0).getstorage_ids().get(0) : Guid.Empty;
+
         VM vm = DbFacade.getInstance().getVmDao().get(vmId);
         storage_pool sp = 
DbFacade.getInstance().getStoragePoolDao().get(vm.getStoragePoolId());
-
         ValidationResult spUpResult = new StoragePoolValidator(sp).isUp();
         if (!spUpResult.isValid()) {
             return failVmFree(messages, spUpResult.getMessage().name());
+        }
+
+        Guid storageDomainId = vmImages.size() > 0 ? 
vmImages.get(0).getstorage_ids().get(0) : Guid.Empty;
+        if (!Guid.Empty.equals(storageDomainId)) {
+            StorageDomainValidator storageDomainValidator =
+                    new StorageDomainValidator(DbFacade.getInstance()
+                            .getStorageDomainDao()
+                            .getForStoragePool(storageDomainId, sp.getId()));
+            ValidationResult domainActiveResult = 
storageDomainValidator.isDomainExistAndActive();
+            if (!domainActiveResult.isValid()) {
+                return failVmFree(messages, 
domainActiveResult.getMessage().name());
+            }
         }
 
         if (!ImagesHandler.PerformImagesChecks(
@@ -201,7 +213,7 @@
                             true,
                             false,
                             false,
-                            !Guid.Empty.equals(storageDomainId),
+                            false,
                             true,
                             disks)) {
             return failVmFree(messages);


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I7d1854bc4a33f2f7ea218670082dd9bee7467cd9
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Allon Mureinik <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to