Liron Ar has uploaded a new change for review. Change subject: core: allow to remove storage pool when the only disks are ovf stores ......................................................................
core: allow to remove storage pool when the only disks are ovf stores Change-Id: Ifca867af242984aa9292938b88f568f51a4a147c Signed-off-by: Liron Aravot <[email protected]> --- M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/RemoveStoragePoolCommand.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/validator/StorageDomainValidator.java 2 files changed, 23 insertions(+), 3 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/44/24644/1 diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/RemoveStoragePoolCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/RemoveStoragePoolCommand.java index 4fb1ef8..6e8b815 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/RemoveStoragePoolCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/RemoveStoragePoolCommand.java @@ -13,6 +13,7 @@ import org.ovirt.engine.core.bll.context.CommandContext; import org.ovirt.engine.core.bll.network.ExternalNetworkManager; import org.ovirt.engine.core.bll.network.MacPoolManager; +import org.ovirt.engine.core.bll.validator.StorageDomainValidator; import org.ovirt.engine.core.common.AuditLogType; import org.ovirt.engine.core.common.action.DetachStorageDomainFromPoolParameters; import org.ovirt.engine.core.common.action.RemoveStorageDomainParameters; @@ -326,9 +327,11 @@ } for (StorageDomain domain : poolDomains) { // check that there are no images on data domains - if ((domain.getStorageDomainType() == StorageDomainType.Data || domain.getStorageDomainType() == StorageDomainType.Master) - && getDbFacade().getDiskImageDao().getAllSnapshotsForStorageDomain(domain.getId()).size() != 0) { - return failCanDoAction(VdcBllMessages.ERROR_CANNOT_REMOVE_STORAGE_POOL_WITH_IMAGES); + if ((domain.getStorageDomainType() == StorageDomainType.Data || domain.getStorageDomainType() == StorageDomainType.Master)) { + StorageDomainValidator storageDomainValidator = new StorageDomainValidator(domain); + if (!validate(storageDomainValidator.isDomainHasNoImages(VdcBllMessages.ERROR_CANNOT_REMOVE_STORAGE_POOL_WITH_IMAGES, true))) { + return false; + } } } final List<VmStatic> vms = getVmStaticDAO().getAllByStoragePoolId(getStoragePool().getId()); diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/validator/StorageDomainValidator.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/validator/StorageDomainValidator.java index 4d92435..992e702 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/validator/StorageDomainValidator.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/validator/StorageDomainValidator.java @@ -76,6 +76,23 @@ return ValidationResult.VALID; } + public ValidationResult isDomainHasNoImages(VdcBllMessages message, boolean allowOvfDisk) { + int numOfAllowedDisks = 0; + if (allowOvfDisk && getDbFacade().getStorageDomainOvfInfoDao().get(storageDomain.getId()) != null) { + numOfAllowedDisks = 1; + } + + if (getDbFacade().getDiskImageDao().getAllSnapshotsForStorageDomain(storageDomain.getId()).size() > numOfAllowedDisks) { + return new ValidationResult(message); + } + + return ValidationResult.VALID; + } + + private DbFacade getDbFacade() { + return DbFacade.getInstance(); + } + private static Integer getLowDiskSpaceThreshold() { return Config.<Integer> getValue(ConfigValues.FreeSpaceCriticalLowInGB); } -- To view, visit http://gerrit.ovirt.org/24644 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Ifca867af242984aa9292938b88f568f51a4a147c Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Liron Ar <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
