Maor Lipchuk has uploaded a new change for review.

Change subject: core:Import VM should not be blocked when collapse
......................................................................

core:Import VM should not be blocked when collapse

Import VM with disks to block device domain, will not be blocked for
images which has sparse volume type and RAW volume format,
while user sends the copy collapse option as true.

Signed-off-by: Maor Lipchuk <mlipc...@redhat.com>
Change-Id: Ic6f4b762fbd9770c5157fee6b24373fa9a0dca10
---
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
2 files changed, 16 insertions(+), 6 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/56/7756/1

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 96d08c6..8232484 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
@@ -409,10 +409,14 @@
 
     public static boolean CheckImageConfiguration(storage_domain_static 
storageDomain,
             DiskImageBase diskInfo, List<String> messages) {
+        return checkImageConfiguration(storageDomain, diskInfo, messages, 
false);
+    }
+
+    public static boolean checkImageConfiguration(storage_domain_static 
storageDomain,
+            DiskImageBase diskInfo, List<String> messages, boolean 
isCopyCollapse) {
         boolean result = true;
         if ((diskInfo.getvolume_type() == VolumeType.Preallocated && 
diskInfo.getvolume_format() == VolumeFormat.COW)
-                || ((storageDomain.getstorage_type() == StorageType.FCP || 
storageDomain.getstorage_type() == StorageType.ISCSI) && (diskInfo
-                        .getvolume_type() == VolumeType.Sparse && 
diskInfo.getvolume_format() == VolumeFormat.RAW))
+                || !isCopyCollapse && 
isVolTypeAndFormatSupportedByBlockDevice(storageDomain, diskInfo)
                 || (diskInfo.getvolume_format() == VolumeFormat.Unassigned || 
diskInfo.getvolume_type() == VolumeType.Unassigned)) {
             // not supported
             result = false;
@@ -421,6 +425,12 @@
         return result;
     }
 
+    private static boolean 
isVolTypeAndFormatSupportedByBlockDevice(storage_domain_static storageDomain,
+            DiskImageBase diskInfo) {
+        return (storageDomain.getstorage_type() == StorageType.FCP || 
storageDomain.getstorage_type() == StorageType.ISCSI) && (diskInfo
+                .getvolume_type() == VolumeType.Sparse && 
diskInfo.getvolume_format() == VolumeFormat.RAW);
+    }
+
     public static boolean CheckImagesConfiguration(Guid storageDomainId,
             Collection<? extends Disk> disksConfigList,
             List<String> messages) {
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 b2ed531..1ef17be 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
@@ -233,10 +233,10 @@
                             }
                         }
                         retVal =
-                                
ImagesHandler.CheckImageConfiguration(domainsMap.get(imageToDestinationDomainMap.get(image.getId()))
+                                
ImagesHandler.checkImageConfiguration(domainsMap.get(imageToDestinationDomainMap.get(image.getId()))
                                         .getStorageStaticData(),
                                         image,
-                                        canDoActionMessages);
+                                        canDoActionMessages, 
getParameters().getCopyCollapse());
                         if (!retVal) {
                             break;
                         } else {
@@ -297,10 +297,10 @@
                         .get(disk.getId());
                 if (key != null) {
                     retVal =
-                            
ImagesHandler.CheckImageConfiguration(domainsMap.get(imageToDestinationDomainMap.get(key.getId()))
+                            
ImagesHandler.checkImageConfiguration(domainsMap.get(imageToDestinationDomainMap.get(key.getId()))
                                     .getStorageStaticData(),
                                         (DiskImageBase) disk,
-                                    canDoActionMessages);
+                                    canDoActionMessages, 
getParameters().getCopyCollapse());
                     if (!retVal) {
                         break;
                     }


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

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

Reply via email to