Maor Lipchuk has uploaded a new change for review.

Change subject: core: Re-extract validation to be used at the parent command.
......................................................................

core: Re-extract validation to be used at the parent command.

Re-extract the same validation logic from ImportVm and ImportVmTemplate
configuration, to be used in one method at MoveOrCopyTemplateCommand

Change-Id: Ic25f6f086fe3a8a55de33529a6fb92728d3e0d74
Signed-off-by: Maor Lipchuk <[email protected]>
---
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportVmFromConfigurationCommand.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportVmTemplateFromConfigurationCommand.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/MoveOrCopyTemplateCommand.java
3 files changed, 31 insertions(+), 43 deletions(-)


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

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportVmFromConfigurationCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportVmFromConfigurationCommand.java
index da51ca5..67010ea 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportVmFromConfigurationCommand.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportVmFromConfigurationCommand.java
@@ -6,7 +6,6 @@
 import java.util.List;
 
 import org.apache.commons.lang.StringUtils;
-import org.ovirt.engine.core.bll.validator.StorageDomainValidator;
 import org.ovirt.engine.core.common.AuditLogType;
 import org.ovirt.engine.core.common.action.AttachDetachVmDiskParameters;
 import org.ovirt.engine.core.common.action.ImportVmParameters;
@@ -15,7 +14,6 @@
 import org.ovirt.engine.core.common.businessentities.Disk;
 import org.ovirt.engine.core.common.businessentities.OvfEntityData;
 import org.ovirt.engine.core.common.businessentities.VM;
-import org.ovirt.engine.core.common.errors.VdcBllMessages;
 import org.ovirt.engine.core.compat.Guid;
 import org.ovirt.engine.core.dal.dbbroker.auditloghandling.AuditLogDirector;
 import org.ovirt.engine.core.utils.log.Log;
@@ -42,25 +40,8 @@
 
     @Override
     protected boolean canDoAction() {
-        if (isImagesAlreadyOnTarget()) {
-            if (ovfEntityData == null && 
!getParameters().isImportAsNewEntity()) {
-                
addCanDoActionMessage(VdcBllMessages.ACTION_TYPE_FAILED_UNSUPPORTED_OVF);
-                return false;
-            }
-            if (vmFromConfiguration == null) {
-                
addCanDoActionMessage(VdcBllMessages.ACTION_TYPE_FAILED_OVF_CONFIGURATION_NOT_SUPPORTED);
-                return false;
-            }
-            setStorageDomainId(ovfEntityData.getStorageDomainId());
-            if (!validate(new 
StorageDomainValidator(getStorageDomain()).isDomainExistAndActive())) {
-                return false;
-            }
-            setImagesWithStoragePoolId(getStorageDomain().getStoragePoolId(), 
getVm().getImages());
-            if (!getStorageDomain().getStorageDomainType().isDataDomain()) {
-                return 
failCanDoAction(VdcBllMessages.ACTION_TYPE_FAILED_STORAGE_DOMAIN_TYPE_UNSUPPORTED,
-                        String.format("$domainId %1$s", 
getParameters().getStorageDomainId()),
-                        String.format("$domainType %1$s", 
getStorageDomain().getStorageDomainType()));
-            }
+        if (isImagesAlreadyOnTarget() && 
!validateImagesOnStorage(vmFromConfiguration, ovfEntityData)) {
+            return false;
         }
         return super.canDoAction();
     }
@@ -112,7 +93,8 @@
         super.executeCommand();
         if (getSucceeded()) {
             if (isImagesAlreadyOnTarget()) {
-                
getUnregisteredOVFDataDao().removeEntity(ovfEntityData.getEntityId(), 
ovfEntityData.getStorageDomainId());
+                
getUnregisteredOVFDataDao().removeEntity(ovfEntityData.getEntityId(),
+                        ovfEntityData.getStorageDomainId());
             } else if (!vmDisksToAttach.isEmpty()) {
                 AuditLogDirector.log(this, 
attemptToAttachDisksToImportedVm(vmDisksToAttach));
             }
@@ -126,7 +108,7 @@
         vm.getDiskList().clear();
     }
 
-    private AuditLogType attemptToAttachDisksToImportedVm(Collection<Disk> 
disks){
+    private AuditLogType attemptToAttachDisksToImportedVm(Collection<Disk> 
disks) {
         List<String> failedDisks = new LinkedList<>();
         for (Disk disk : disks) {
             AttachDetachVmDiskParameters params = new 
AttachDetachVmDiskParameters(getVm().getId(),
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportVmTemplateFromConfigurationCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportVmTemplateFromConfigurationCommand.java
index 9af4aac..d3ea4e3 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportVmTemplateFromConfigurationCommand.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportVmTemplateFromConfigurationCommand.java
@@ -2,12 +2,10 @@
 
 import java.util.ArrayList;
 
-import org.ovirt.engine.core.bll.validator.StorageDomainValidator;
 import org.ovirt.engine.core.common.action.ImportVmTemplateParameters;
 import org.ovirt.engine.core.common.businessentities.DiskImage;
 import org.ovirt.engine.core.common.businessentities.OvfEntityData;
 import org.ovirt.engine.core.common.businessentities.VmTemplate;
-import org.ovirt.engine.core.common.errors.VdcBllMessages;
 import org.ovirt.engine.core.compat.Guid;
 import org.ovirt.engine.core.utils.log.Log;
 import org.ovirt.engine.core.utils.log.LogFactory;
@@ -41,24 +39,8 @@
     @Override
     protected boolean canDoAction() {
         initVmTemplate();
-        if (isImagesAlreadyOnTarget()) {
-            if (ovfEntityData == null && 
!getParameters().isImportAsNewEntity()) {
-                
addCanDoActionMessage(VdcBllMessages.ACTION_TYPE_FAILED_UNSUPPORTED_OVF);
-                return false;
-            }
-            if (vmTemplateFromConfiguration == null) {
-                
addCanDoActionMessage(VdcBllMessages.ACTION_TYPE_FAILED_OVF_CONFIGURATION_NOT_SUPPORTED);
-                return false;
-            }
-            setStorageDomainId(ovfEntityData.getStorageDomainId());
-            if (!validate(new 
StorageDomainValidator(getStorageDomain()).isDomainExistAndActive())) {
-                return false;
-            }
-            if (!getStorageDomain().getStorageDomainType().isDataDomain()) {
-                return 
failCanDoAction(VdcBllMessages.ACTION_TYPE_FAILED_STORAGE_DOMAIN_TYPE_UNSUPPORTED,
-                        String.format("$domainId %1$s", 
getParameters().getStorageDomainId()),
-                        String.format("$domainType %1$s", 
getStorageDomain().getStorageDomainType()));
-            }
+        if (isImagesAlreadyOnTarget() && 
!validateImagesOnStorage(vmTemplateFromConfiguration, ovfEntityData)) {
+            return false;
         }
         ArrayList<DiskImage> disks = new 
ArrayList(getVmTemplate().getDiskTemplateMap().values());
         setImagesWithStoragePoolId(getStorageDomain().getStoragePoolId(), 
disks);
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/MoveOrCopyTemplateCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/MoveOrCopyTemplateCommand.java
index 208ac75..dcad577 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/MoveOrCopyTemplateCommand.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/MoveOrCopyTemplateCommand.java
@@ -26,7 +26,9 @@
 import org.ovirt.engine.core.common.action.VdcReturnValueBase;
 import org.ovirt.engine.core.common.asynctasks.EntityInfo;
 import org.ovirt.engine.core.common.businessentities.DiskImage;
+import org.ovirt.engine.core.common.businessentities.IVdcQueryable;
 import org.ovirt.engine.core.common.businessentities.ImageOperation;
+import org.ovirt.engine.core.common.businessentities.OvfEntityData;
 import org.ovirt.engine.core.common.businessentities.Snapshot;
 import org.ovirt.engine.core.common.businessentities.StorageDomain;
 import org.ovirt.engine.core.common.businessentities.StorageDomainStatus;
@@ -146,6 +148,28 @@
         return retValue;
     }
 
+    protected boolean validateImagesOnStorage(IVdcQueryable 
entityFromConfiguration, OvfEntityData ovfEntityData) {
+        if (ovfEntityData == null && !getParameters().isImportAsNewEntity()) {
+            
addCanDoActionMessage(VdcBllMessages.ACTION_TYPE_FAILED_UNSUPPORTED_OVF);
+            return false;
+        }
+        if (entityFromConfiguration == null) {
+            
addCanDoActionMessage(VdcBllMessages.ACTION_TYPE_FAILED_OVF_CONFIGURATION_NOT_SUPPORTED);
+            return false;
+        }
+        setStorageDomainId(ovfEntityData.getStorageDomainId());
+        if (!validate(new 
StorageDomainValidator(getStorageDomain()).isDomainExistAndActive())) {
+            return false;
+        }
+        setImagesWithStoragePoolId(getStorageDomain().getStoragePoolId(), 
getVm().getImages());
+        if (!getStorageDomain().getStorageDomainType().isDataDomain()) {
+            return 
failCanDoAction(VdcBllMessages.ACTION_TYPE_FAILED_STORAGE_DOMAIN_TYPE_UNSUPPORTED,
+                    String.format("$domainId %1$s", 
getParameters().getStorageDomainId()),
+                    String.format("$domainType %1$s", 
getStorageDomain().getStorageDomainType()));
+        }
+        return true;
+    }
+
     protected boolean isImagesAlreadyOnTarget() {
         return getParameters().isImagesExistOnTargetStorageDomain();
     }


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ic25f6f086fe3a8a55de33529a6fb92728d3e0d74
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