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
