Allon Mureinik has uploaded a new change for review.

Change subject: core: storage domain validation refactoring
......................................................................

core: storage domain validation refactoring

Refactored StorageDoaminValidator to return a ValidationResult in all
relevant methods as validators ought to, instead of the old-fashioned
pattern of returning a boolean and accepting a List<String> parameter
for the error messages.

Change-Id: I64734303de8c9cfaaca4fba6bfeeccc93e18c9a6
Signed-off-by: Allon Mureinik <amure...@redhat.com>
---
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddDiskCommand.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmAndCloneImageCommand.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmCommand.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ExportVmCommand.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ExportVmTemplateCommand.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImagesHandler.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportVmCommand.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportVmTemplateCommand.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/MoveOrCopyDiskCommand.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveDiskCommand.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveVmTemplateFromImportExportCommand.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VmTemplateCommand.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/lsm/LiveMigrateVmDisksCommand.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/validator/StorageDomainValidator.java
A 
backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/validator/StorageDomainValidatorTest.java
15 files changed, 88 insertions(+), 48 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/15/11415/1

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddDiskCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddDiskCommand.java
index 7ecee77..9789194 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddDiskCommand.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddDiskCommand.java
@@ -134,8 +134,7 @@
 
         // vm agnostic checks
         returnValue =
-                new 
StorageDomainValidator(getStorageDomain()).isDomainExistAndActive(getReturnValue().getCanDoActionMessages())
-                        &&
+                validate(new 
StorageDomainValidator(getStorageDomain()).isDomainExistAndActive()) &&
                 checkImageConfiguration() &&
                 checkFreeSpace() &&
                 checkExceedingMaxBlockDiskSize() &&
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmAndCloneImageCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmAndCloneImageCommand.java
index cbb629d..7d2430a 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmAndCloneImageCommand.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmAndCloneImageCommand.java
@@ -197,8 +197,7 @@
             Map<Guid, storage_domains> storageDomainsMap = new HashMap<Guid, 
storage_domains>();
             for (storage_domains storageDomain : domains) {
                 StorageDomainValidator validator = new 
StorageDomainValidator(storageDomain);
-                ArrayList<String> messages = new ArrayList<String>();
-                if (validator.isDomainExistAndActive(messages) && 
validator.domainIsValidDestination(messages)) {
+                if (validate(validator.isDomainExistAndActive()) && 
validate(validator.domainIsValidDestination())) {
                     storageDomainsMap.put(storageDomain.getId(), 
storageDomain);
                 }
             }
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmCommand.java
index ce02097..f315613 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmCommand.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmCommand.java
@@ -385,8 +385,7 @@
                         storageDomainId, getStoragePoolId());
                 StorageDomainValidator validator =
                         new StorageDomainValidator(storage);
-                if 
(!validator.isDomainExistAndActive(getReturnValue().getCanDoActionMessages())
-                        || 
!validator.domainIsValidDestination(getReturnValue().getCanDoActionMessages())) 
{
+                if (!validate(validator.isDomainExistAndActive()) || 
!validate(validator.domainIsValidDestination())) {
                     return false;
                 }
                 destStorages.put(storage.getId(), storage);
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ExportVmCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ExportVmCommand.java
index 0c2b66d..cd5fb10 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ExportVmCommand.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ExportVmCommand.java
@@ -88,8 +88,7 @@
 
         // check that target domain exists
         StorageDomainValidator targetstorageDomainValidator = new 
StorageDomainValidator(getStorageDomain());
-        if 
(!targetstorageDomainValidator.isDomainExistAndActive(getReturnValue()
-                .getCanDoActionMessages())) {
+        if (!validate(targetstorageDomainValidator.isDomainExistAndActive())) {
             return false;
         }
 
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ExportVmTemplateCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ExportVmTemplateCommand.java
index d936904..9ba5cb2 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ExportVmTemplateCommand.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ExportVmTemplateCommand.java
@@ -88,7 +88,7 @@
             setDescription(getVmTemplateName());
         }
         StorageDomainValidator storageDomainValidator = new 
StorageDomainValidator(getStorageDomain());
-        boolean retVal = 
storageDomainValidator.isDomainExistAndActive(getReturnValue().getCanDoActionMessages());
+        boolean retVal = 
validate(storageDomainValidator.isDomainExistAndActive());
 
         if (retVal) {
             // export must be to export domain
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImagesHandler.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImagesHandler.java
index 363a475..0bbd43c 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImagesHandler.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImagesHandler.java
@@ -78,8 +78,7 @@
         Map<Guid, storage_domains> storageDomainsMap = new HashMap<Guid, 
storage_domains>();
         for (storage_domains storageDomain : domains) {
             StorageDomainValidator validator = new 
StorageDomainValidator(storageDomain);
-            ArrayList<String> messages = new ArrayList<String>();
-            if (validator.isDomainExistAndActive(messages) && 
validator.domainIsValidDestination(messages)
+            if (validator.isDomainExistAndActive().isValid() && 
validator.domainIsValidDestination().isValid()
                     && (notCheckSize || 
StorageDomainSpaceChecker.isBelowThresholds(storageDomain))) {
                 storageDomainsMap.put(storageDomain.getId(), storageDomain);
             }
@@ -532,9 +531,10 @@
                 if (checkStorageDomain) {
                     StorageDomainValidator storageDomainValidator =
                             new StorageDomainValidator(domain);
-                    returnValue = 
storageDomainValidator.isDomainExistAndActive(messages);
+                    ValidationResult res = 
storageDomainValidator.isDomainExistAndActive();
+                    returnValue = res.isValid();
                     if (!returnValue) {
-                        break;
+                        messages.add(res.getMessage().toString());
                     }
                 }
                 if (diskSpaceCheck && returnValue && 
!StorageDomainSpaceChecker.isBelowThresholds(domain)) {
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportVmCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportVmCommand.java
index 33a6ee0..4068af4 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportVmCommand.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportVmCommand.java
@@ -40,8 +40,6 @@
 import org.ovirt.engine.core.common.businessentities.Snapshot;
 import org.ovirt.engine.core.common.businessentities.Snapshot.SnapshotStatus;
 import org.ovirt.engine.core.common.businessentities.Snapshot.SnapshotType;
-import org.ovirt.engine.core.common.businessentities.network.Network;
-import 
org.ovirt.engine.core.common.businessentities.network.VmNetworkInterface;
 import org.ovirt.engine.core.common.businessentities.StorageDomainType;
 import org.ovirt.engine.core.common.businessentities.VDSGroup;
 import org.ovirt.engine.core.common.businessentities.VM;
@@ -52,6 +50,8 @@
 import org.ovirt.engine.core.common.businessentities.VmTemplate;
 import org.ovirt.engine.core.common.businessentities.VmTemplateStatus;
 import org.ovirt.engine.core.common.businessentities.storage_domains;
+import org.ovirt.engine.core.common.businessentities.network.Network;
+import 
org.ovirt.engine.core.common.businessentities.network.VmNetworkInterface;
 import org.ovirt.engine.core.common.errors.VdcBLLException;
 import 
org.ovirt.engine.core.common.queries.GetAllFromExportDomainQueryParameters;
 import 
org.ovirt.engine.core.common.queries.GetStorageDomainsByVmTemplateIdQueryParameters;
@@ -174,8 +174,7 @@
         for (Guid destGuid : destGuids) {
             storage_domains storageDomain = getStorageDomain(destGuid);
             StorageDomainValidator validator = new 
StorageDomainValidator(storageDomain);
-            if (!validator.isDomainExistAndActive(canDoActionMessages)
-                    || 
!validator.domainIsValidDestination(canDoActionMessages)) {
+            if (!validate(validator.isDomainExistAndActive()) || 
!validate(validator.domainIsValidDestination())) {
                 return false;
             }
 
@@ -188,7 +187,7 @@
 
         setSourceDomainId(getParameters().getSourceDomainId());
         StorageDomainValidator validator = new 
StorageDomainValidator(getSourceDomain());
-        if (validator.isDomainExistAndActive(canDoActionMessages) &&
+        if (validator.isDomainExistAndActive().isValid() &&
                 getSourceDomain().getstorage_domain_type() != 
StorageDomainType.ImportExport) {
             return 
failCanDoAction(VdcBllMessages.ACTION_TYPE_FAILED_STORAGE_DOMAIN_TYPE_ILLEGAL);
         }
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportVmTemplateCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportVmTemplateCommand.java
index de155ee..608cd67 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportVmTemplateCommand.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportVmTemplateCommand.java
@@ -24,6 +24,7 @@
 import org.ovirt.engine.core.common.businessentities.DiskImage;
 import org.ovirt.engine.core.common.businessentities.DiskImageDynamic;
 import org.ovirt.engine.core.common.businessentities.Entities;
+import org.ovirt.engine.core.common.businessentities.StorageDomainStatic;
 import org.ovirt.engine.core.common.businessentities.StorageDomainType;
 import org.ovirt.engine.core.common.businessentities.StorageType;
 import org.ovirt.engine.core.common.businessentities.VmDeviceId;
@@ -32,7 +33,6 @@
 import org.ovirt.engine.core.common.businessentities.VolumeFormat;
 import org.ovirt.engine.core.common.businessentities.VolumeType;
 import org.ovirt.engine.core.common.businessentities.image_storage_domain_map;
-import org.ovirt.engine.core.common.businessentities.StorageDomainStatic;
 import org.ovirt.engine.core.common.businessentities.storage_domains;
 import org.ovirt.engine.core.common.businessentities.network.Network;
 import 
org.ovirt.engine.core.common.businessentities.network.VmNetworkInterface;
@@ -88,8 +88,9 @@
             // set the source domain and check that it is ImportExport type 
and active
             setSourceDomainId(getParameters().getSourceDomainId());
             StorageDomainValidator sourceDomainValidator = new 
StorageDomainValidator(getSourceDomain());
-            retVal = 
sourceDomainValidator.isDomainExistAndActive(getReturnValue().getCanDoActionMessages());
+            retVal = validate(sourceDomainValidator.isDomainExistAndActive());
         }
+
         if (retVal && getSourceDomain().getstorage_domain_type() != 
StorageDomainType.ImportExport) {
             
addCanDoActionMessage(VdcBllMessages.ACTION_TYPE_FAILED_STORAGE_DOMAIN_TYPE_ILLEGAL);
             retVal = false;
@@ -121,8 +122,8 @@
                     storage_domains storageDomain =
                             
getStorageDomain(imageToDestinationDomainMap.get(image.getId()));
                     StorageDomainValidator validator = new 
StorageDomainValidator(storageDomain);
-                    retVal = 
validator.isDomainExistAndActive(getReturnValue().getCanDoActionMessages()) &&
-                            
validator.domainIsValidDestination(getReturnValue().getCanDoActionMessages());
+                    retVal = validate(validator.isDomainExistAndActive()) &&
+                            validate(validator.domainIsValidDestination());
                     if (!retVal) {
                         break;
                     }
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/MoveOrCopyDiskCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/MoveOrCopyDiskCommand.java
index 5013bc9..834a902 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/MoveOrCopyDiskCommand.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/MoveOrCopyDiskCommand.java
@@ -74,8 +74,8 @@
                 && acquireLockInternal()
                 && isImageNotLocked()
                 && isSourceAndDestTheSame()
-                && validateSourceStorageDomain(canDoActionMessages)
-                && validateDestStorage(canDoActionMessages)
+                && validateSourceStorageDomain()
+                && validateDestStorage()
                 && checkTemplateInDestStorageDomain()
                 && validateSpaceRequirements()
                 && checkImageConfiguration(canDoActionMessages)
@@ -136,10 +136,10 @@
         return retValue;
     }
 
-    protected boolean validateDestStorage(ArrayList<String> 
canDoActionMessages) {
+    protected boolean validateDestStorage() {
         StorageDomainValidator validator = new 
StorageDomainValidator(getStorageDomain());
-        return validator.isDomainExistAndActive(canDoActionMessages)
-                && validator.domainIsValidDestination(canDoActionMessages);
+        return validate(validator.isDomainExistAndActive())
+                && validate(validator.domainIsValidDestination());
     }
 
     /**
@@ -188,10 +188,8 @@
     /**
      * Validate a source storage domain of image, when a source storage domain 
is not provided
      * any of the domains image will be used
-     * @param canDoActionMessages
-     * @return
      */
-    protected boolean validateSourceStorageDomain(ArrayList<String> 
canDoActionMessages) {
+    protected boolean validateSourceStorageDomain() {
         NGuid sourceDomainId = getParameters().getSourceDomainId();
         if (sourceDomainId == null || Guid.Empty.equals(sourceDomainId)) {
             sourceDomainId = getImage().getstorage_ids().get(0);
@@ -200,7 +198,7 @@
         StorageDomainValidator validator =
                 new 
StorageDomainValidator(getStorageDomainDAO().getForStoragePool(sourceDomainId.getValue(),
                         getImage().getstorage_pool_id()));
-        return validator.isDomainExistAndActive(canDoActionMessages);
+        return validate(validator.isDomainExistAndActive());
     }
 
     protected boolean checkImageConfiguration(List<String> 
canDoActionMessages) {
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveDiskCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveDiskCommand.java
index 3cac6ed..335cf5f 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveDiskCommand.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveDiskCommand.java
@@ -130,8 +130,8 @@
 
         StorageDomainValidator validator = new 
StorageDomainValidator(getStorageDomain());
         retValue =
-                retValue && 
validator.isDomainExistAndActive(getReturnValue().getCanDoActionMessages())
-                        && 
validator.domainIsValidDestination(getReturnValue().getCanDoActionMessages());
+                retValue && validate(validator.isDomainExistAndActive())
+                        && validate(validator.domainIsValidDestination());
 
         if (retValue && diskImage.getimageStatus() == ImageStatus.LOCKED) {
             retValue = false;
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveVmTemplateFromImportExportCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveVmTemplateFromImportExportCommand.java
index d410703..66e47f5 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveVmTemplateFromImportExportCommand.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveVmTemplateFromImportExportCommand.java
@@ -65,7 +65,7 @@
 
         if (retVal) {
             StorageDomainValidator validator = new 
StorageDomainValidator(getStorageDomain());
-            retVal = 
validator.isDomainExistAndActive(getReturnValue().getCanDoActionMessages());
+            retVal = validate(validator.isDomainExistAndActive());
         }
         if (retVal && getStorageDomain().getstorage_domain_type() != 
StorageDomainType.ImportExport) {
             
addCanDoActionMessage(VdcBllMessages.ACTION_TYPE_FAILED_STORAGE_DOMAIN_TYPE_ILLEGAL);
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VmTemplateCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VmTemplateCommand.java
index 46f038b..16472bc 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VmTemplateCommand.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VmTemplateCommand.java
@@ -76,7 +76,11 @@
             StorageDomainValidator storageDomainValidator =
                     new 
StorageDomainValidator(DbFacade.getInstance().getStorageDomainDao().getForStoragePool(
                             storageDomainId, vmTemplate.getstorage_pool_id()));
-            returnValue = 
storageDomainValidator.isDomainExistAndActive(reasons);
+            ValidationResult res = 
storageDomainValidator.isDomainExistAndActive();
+            returnValue = res.isValid();
+            if (!returnValue) {
+                reasons.add(res.getMessage().toString());
+            }
         }
         if (returnValue && checkImagesExists) {
             if (vmtImages == null) {
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/lsm/LiveMigrateVmDisksCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/lsm/LiveMigrateVmDisksCommand.java
index 94c9d44..4ac6a6b 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/lsm/LiveMigrateVmDisksCommand.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/lsm/LiveMigrateVmDisksCommand.java
@@ -258,14 +258,14 @@
     private boolean validateSourceStorageDomain(Guid imageId, Guid 
sourceDomainId) {
         StorageDomainValidator validator = getValidator(imageId, 
sourceDomainId);
 
-        return 
validator.isDomainExistAndActive(getReturnValue().getCanDoActionMessages());
+        return validate(validator.isDomainExistAndActive());
     }
 
     private boolean validateDestStorage(Guid imageId, Guid destDomainId) {
         StorageDomainValidator validator = getValidator(imageId, destDomainId);
 
         return validateSourceStorageDomain(imageId, destDomainId)
-                && 
validator.domainIsValidDestination(getReturnValue().getCanDoActionMessages());
+                && validate(validator.domainIsValidDestination());
     }
 
     private StorageDomainValidator getValidator(Guid imageId, Guid domainId) {
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 e77ca97..b30ac4c 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
@@ -2,9 +2,9 @@
 
 import java.util.Collection;
 import java.util.HashMap;
-import java.util.List;
 import java.util.Map;
 
+import org.ovirt.engine.core.bll.ValidationResult;
 import org.ovirt.engine.core.common.businessentities.DiskImage;
 import org.ovirt.engine.core.common.businessentities.StorageDomainStatus;
 import org.ovirt.engine.core.common.businessentities.StorageDomainType;
@@ -21,25 +21,22 @@
         storageDomain = domain;
     }
 
-    public boolean isDomainExistAndActive(List<String> messages) {
+    public ValidationResult isDomainExistAndActive() {
         if (storageDomain == null) {
-            
messages.add(VdcBllMessages.ACTION_TYPE_FAILED_STORAGE_DOMAIN_NOT_EXIST.toString());
-            return false;
+            return new 
ValidationResult(VdcBllMessages.ACTION_TYPE_FAILED_STORAGE_DOMAIN_NOT_EXIST);
         }
         if (storageDomain.getstatus() == null || storageDomain.getstatus() != 
StorageDomainStatus.Active) {
-            
messages.add(VdcBllMessages.ACTION_TYPE_FAILED_STORAGE_DOMAIN_STATUS_ILLEGAL.toString());
-            return false;
+            return new 
ValidationResult(VdcBllMessages.ACTION_TYPE_FAILED_STORAGE_DOMAIN_STATUS_ILLEGAL);
         }
-        return true;
+        return ValidationResult.VALID;
     }
 
-    public boolean domainIsValidDestination(List<String> messages) {
+    public ValidationResult domainIsValidDestination() {
         if (storageDomain.getstorage_domain_type() == StorageDomainType.ISO
                 || storageDomain.getstorage_domain_type() == 
StorageDomainType.ImportExport) {
-            
messages.add(VdcBllMessages.ACTION_TYPE_FAILED_STORAGE_DOMAIN_TYPE_ILLEGAL.toString());
-            return false;
+            return new 
ValidationResult(VdcBllMessages.ACTION_TYPE_FAILED_STORAGE_DOMAIN_TYPE_ILLEGAL);
         }
-        return true;
+        return ValidationResult.VALID;
     }
 
     public static Map<storage_domains, Integer> 
getSpaceRequirementsForStorageDomains(Collection<DiskImage> images,
diff --git 
a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/validator/StorageDomainValidatorTest.java
 
b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/validator/StorageDomainValidatorTest.java
new file mode 100644
index 0000000..0171176
--- /dev/null
+++ 
b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/validator/StorageDomainValidatorTest.java
@@ -0,0 +1,45 @@
+package org.ovirt.engine.core.bll.validator;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.ovirt.engine.core.common.businessentities.StorageDomainStatus;
+import org.ovirt.engine.core.common.businessentities.storage_domains;
+import org.ovirt.engine.core.dal.VdcBllMessages;
+
+/** A test case for the {@link StorageDomainValidator} class. */
+public class StorageDomainValidatorTest {
+
+    private storage_domains domain;
+    private StorageDomainValidator validator;
+
+    @Before
+    public void setUp() {
+        domain = new storage_domains();
+        validator = new StorageDomainValidator(domain);
+    }
+
+    @Test
+    public void testIsDomainExistAndActiveDomainNotExists() {
+        validator = new StorageDomainValidator(null);
+        assertEquals("Wrong failure for null domain",
+                VdcBllMessages.ACTION_TYPE_FAILED_STORAGE_DOMAIN_NOT_EXIST,
+                validator.isDomainExistAndActive().getMessage());
+    }
+
+    @Test
+    public void testIsDomainExistAndActiveDomainNotUp() {
+        domain.setstatus(StorageDomainStatus.InActive);
+        assertEquals("Wrong failure for inactive domain",
+                
VdcBllMessages.ACTION_TYPE_FAILED_STORAGE_DOMAIN_STATUS_ILLEGAL,
+                validator.isDomainExistAndActive().getMessage());
+    }
+
+    @Test
+    public void testIsDomainExistAndActiveDomainUp() {
+        domain.setstatus(StorageDomainStatus.Active);
+        assertTrue("domain should be up", 
validator.isDomainExistAndActive().isValid());
+    }
+}


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

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

Reply via email to