Maor Lipchuk has uploaded a new change for review.

Change subject: core: Add storage space validator
......................................................................

core: Add storage space validator

Use the storage validator to validate if there is enough space in the
storage compared to the threshold.

The validator should replace the use of StorageDomainSpaceChecker.

Change-Id: I097965d6362bd54d12860d5409f5c14d569a8968
Signed-off-by: Maor Lipchuk <[email protected]>
---
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/validator/StorageDomainValidator.java
1 file changed, 25 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/11/11511/1

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 b30ac4c..a818684 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
@@ -6,9 +6,12 @@
 
 import org.ovirt.engine.core.bll.ValidationResult;
 import org.ovirt.engine.core.common.businessentities.DiskImage;
+import org.ovirt.engine.core.common.businessentities.StorageDomainDynamic;
 import org.ovirt.engine.core.common.businessentities.StorageDomainStatus;
 import org.ovirt.engine.core.common.businessentities.StorageDomainType;
 import org.ovirt.engine.core.common.businessentities.storage_domains;
+import org.ovirt.engine.core.common.config.Config;
+import org.ovirt.engine.core.common.config.ConfigValues;
 import org.ovirt.engine.core.compat.Guid;
 import org.ovirt.engine.core.dal.VdcBllMessages;
 import org.ovirt.engine.core.dal.dbbroker.DbFacade;
@@ -39,6 +42,28 @@
         return ValidationResult.VALID;
     }
 
+    public ValidationResult isDomainWithinThresholds() {
+        StorageDomainDynamic dynamic = storageDomain.getStorageDynamicData();
+        if (dynamic != null && dynamic.getfreeDiskInGB() > 
getLowDiskSpaceThreshold()) {
+            return new 
ValidationResult(VdcBllMessages.ACTION_TYPE_FAILED_DISK_SPACE_LOW_ON_TARGET_STORAGE_DOMAIN,
+                    storageName());
+        }
+        return ValidationResult.VALID;
+    }
+
+    private String storageName() {
+        return String.format("$%1$s %2$s", "storageName", 
storageDomain.getstorage_name());
+    }
+
+    public static boolean hasSpaceForRequest(final storage_domains domain, 
final long requestedSize) {
+        return domain.getavailable_disk_size() != null
+                && domain.getavailable_disk_size() - requestedSize >= 
getLowDiskSpaceThreshold();
+    }
+
+    private static Integer getLowDiskSpaceThreshold() {
+        return Config.<Integer> 
GetValue(ConfigValues.FreeSpaceCriticalLowInGB);
+    }
+
     public static Map<storage_domains, Integer> 
getSpaceRequirementsForStorageDomains(Collection<DiskImage> images,
             Map<Guid, storage_domains> storageDomains, Map<Guid, DiskImage> 
imageToDestinationDomainMap) {
         Map<DiskImage, storage_domains> spaceMap = new HashMap<DiskImage, 
storage_domains>();


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

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

Reply via email to