Liron Ar has uploaded a new change for review.

Change subject: core: OvfManager - package and functionality
......................................................................

core: OvfManager - package and functionality

1. Added to OvfManager a method that returns an "assembled" vm object,
rather then a objects lists that each caller is responsible to create vm
from.

2. OvfManager was moved to the bll from utils, as it contains bll logic.

Change-Id: I3bfc4094178d90e7b0583db4e427fc2b195a367d
Signed-off-by: Liron Aravot <[email protected]>
---
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/OvfDataUpdater.java
R 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/OvfManager.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveImageCommand.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/snapshots/SnapshotsManager.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/GetTemplatesFromExportDomainQuery.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/GetVmsFromExportDomainQuery.java
R 
backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/OvfManagerTest.java
M 
backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/RemoveImageCommandTest.java
9 files changed, 41 insertions(+), 42 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/26/15626/1

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 a66588b..766946e 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
@@ -51,7 +51,6 @@
 import org.ovirt.engine.core.dal.dbbroker.DbFacade;
 import org.ovirt.engine.core.utils.linq.LinqUtils;
 import org.ovirt.engine.core.utils.linq.Predicate;
-import org.ovirt.engine.core.utils.ovf.OvfManager;
 import org.ovirt.engine.core.utils.transaction.TransactionMethod;
 import org.ovirt.engine.core.utils.transaction.TransactionSupport;
 
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/OvfDataUpdater.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/OvfDataUpdater.java
index ddc6c4f..94dcf3e 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/OvfDataUpdater.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/OvfDataUpdater.java
@@ -39,7 +39,6 @@
 import org.ovirt.engine.core.utils.linq.LinqUtils;
 import org.ovirt.engine.core.utils.log.Log;
 import org.ovirt.engine.core.utils.log.LogFactory;
-import org.ovirt.engine.core.utils.ovf.OvfManager;
 import org.ovirt.engine.core.utils.timer.OnTimerMethodAnnotation;
 import org.ovirt.engine.core.utils.timer.SchedulerUtil;
 import org.ovirt.engine.core.utils.timer.SchedulerUtilQuartzImpl;
diff --git 
a/backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/ovf/OvfManager.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/OvfManager.java
similarity index 67%
rename from 
backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/ovf/OvfManager.java
rename to 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/OvfManager.java
index d0a4e4a..04be059b 100644
--- 
a/backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/ovf/OvfManager.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/OvfManager.java
@@ -1,7 +1,8 @@
-package org.ovirt.engine.core.utils.ovf;
+package org.ovirt.engine.core.bll;
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Map;
 
 import org.ovirt.engine.core.common.businessentities.DiskImage;
 import org.ovirt.engine.core.common.businessentities.VM;
@@ -10,6 +11,15 @@
 import org.ovirt.engine.core.compat.Guid;
 import org.ovirt.engine.core.compat.Version;
 import org.ovirt.engine.core.compat.backendcompat.XmlDocument;
+import org.ovirt.engine.core.utils.ovf.IOvfBuilder;
+import org.ovirt.engine.core.utils.ovf.OvfParser;
+import org.ovirt.engine.core.utils.ovf.OvfReader;
+import org.ovirt.engine.core.utils.ovf.OvfReaderException;
+import org.ovirt.engine.core.utils.ovf.OvfTemplateReader;
+import org.ovirt.engine.core.utils.ovf.OvfTemplateWriter;
+import org.ovirt.engine.core.utils.ovf.OvfVmReader;
+import org.ovirt.engine.core.utils.ovf.OvfVmWriter;
+import org.ovirt.engine.core.utils.ovf.OvfWriter;
 
 public class OvfManager {
 
@@ -66,6 +76,28 @@
         }
     }
 
+    public VM readVmFromOvf(String ovf) throws OvfReaderException{
+        VM toReturn = new VM();
+        ArrayList<DiskImage> diskImages = new ArrayList<DiskImage>();
+        ArrayList<VmNetworkInterface> interfaces = new 
ArrayList<VmNetworkInterface>();
+        ImportVm(ovf, toReturn, diskImages, interfaces);
+
+        // add images
+        toReturn.setImages(diskImages);
+        // add interfaces
+        toReturn.setInterfaces(interfaces);
+
+        // add disk map
+        Map<Guid, List<DiskImage>> images = ImagesHandler
+                .getImagesLeaf(diskImages);
+        for (Guid id : images.keySet()) {
+            List<DiskImage> list = images.get(id);
+            toReturn.getDiskMap().put(id, list.get(list.size() - 1));
+        }
+
+        return toReturn;
+    }
+
     public boolean IsOvfTemplate(String ovfstring) {
         return new OvfParser(ovfstring).IsTemplate();
     }
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveImageCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveImageCommand.java
index 96479a3..6306007 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveImageCommand.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveImageCommand.java
@@ -18,7 +18,6 @@
 import org.ovirt.engine.core.common.businessentities.Snapshot;
 import org.ovirt.engine.core.common.businessentities.VM;
 import org.ovirt.engine.core.common.businessentities.VmDeviceId;
-import 
org.ovirt.engine.core.common.businessentities.network.VmNetworkInterface;
 import org.ovirt.engine.core.common.errors.VdcBLLException;
 import org.ovirt.engine.core.common.errors.VdcBllErrors;
 import org.ovirt.engine.core.common.errors.VdcBllMessages;
@@ -32,7 +31,6 @@
 import org.ovirt.engine.core.compat.TransactionScopeOption;
 import org.ovirt.engine.core.dao.VmDeviceDAO;
 import org.ovirt.engine.core.utils.lock.EngineLock;
-import org.ovirt.engine.core.utils.ovf.OvfManager;
 import org.ovirt.engine.core.utils.ovf.OvfReaderException;
 import org.ovirt.engine.core.utils.transaction.TransactionMethod;
 import org.ovirt.engine.core.utils.transaction.TransactionSupport;
@@ -243,16 +241,10 @@
             String snapConfig = snap.getVmConfiguration();
 
             if (snap.isVmConfigurationAvailable() && snapConfig != null) {
-                VM vmSnapshot = new VM();
-                ArrayList<DiskImage> snapshotImages = new 
ArrayList<DiskImage>();
-
-                ovfManager.ImportVm(snapConfig,
-                        vmSnapshot,
-                        snapshotImages,
-                        new ArrayList<VmNetworkInterface>());
+                VM vmSnapshot = ovfManager.readVmFromOvf(snapConfig);
 
                 // Remove the image form the disk list
-                Iterator<DiskImage> diskIter = snapshotImages.iterator();
+                Iterator<DiskImage> diskIter = 
vmSnapshot.getImages().iterator();
                 while (diskIter.hasNext()) {
                     DiskImage imageInList = diskIter.next();
                     if (imageInList.getImageId().equals(imageId)) {
@@ -262,7 +254,7 @@
                     }
                 }
 
-                String newOvf = ovfManager.ExportVm(vmSnapshot, 
snapshotImages, ClusterUtils.getCompatibilityVersion(vmSnapshot));
+                String newOvf = ovfManager.ExportVm(vmSnapshot, 
vmSnapshot.getImages(), ClusterUtils.getCompatibilityVersion(vmSnapshot));
                 snap.setVmConfiguration(newOvf);
             }
         } catch (OvfReaderException e) {
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/snapshots/SnapshotsManager.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/snapshots/SnapshotsManager.java
index 5428bfe..671642b 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/snapshots/SnapshotsManager.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/snapshots/SnapshotsManager.java
@@ -6,6 +6,7 @@
 
 import org.apache.commons.lang.StringUtils;
 import org.ovirt.engine.core.bll.ImagesHandler;
+import org.ovirt.engine.core.bll.OvfManager;
 import org.ovirt.engine.core.bll.context.CompensationContext;
 import org.ovirt.engine.core.bll.network.VmInterfaceManager;
 import org.ovirt.engine.core.bll.utils.ClusterUtils;
@@ -41,7 +42,6 @@
 import org.ovirt.engine.core.dao.network.VmNetworkInterfaceDao;
 import org.ovirt.engine.core.utils.log.Log;
 import org.ovirt.engine.core.utils.log.LogFactory;
-import org.ovirt.engine.core.utils.ovf.OvfManager;
 import org.ovirt.engine.core.utils.ovf.OvfReaderException;
 import org.ovirt.engine.core.utils.ovf.VMStaticOvfLogHandler;
 
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/GetTemplatesFromExportDomainQuery.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/GetTemplatesFromExportDomainQuery.java
index e61a496..69181d5 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/GetTemplatesFromExportDomainQuery.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/GetTemplatesFromExportDomainQuery.java
@@ -5,6 +5,7 @@
 import java.util.List;
 import java.util.Map;
 
+import org.ovirt.engine.core.bll.OvfManager;
 import org.ovirt.engine.core.common.AuditLogType;
 import org.ovirt.engine.core.common.businessentities.DiskImage;
 import org.ovirt.engine.core.common.businessentities.VmTemplate;
@@ -12,7 +13,6 @@
 import 
org.ovirt.engine.core.common.queries.GetAllFromExportDomainQueryParameters;
 import org.ovirt.engine.core.dal.dbbroker.auditloghandling.AuditLogDirector;
 import org.ovirt.engine.core.dal.dbbroker.auditloghandling.AuditLogableBase;
-import org.ovirt.engine.core.utils.ovf.OvfManager;
 import org.ovirt.engine.core.utils.ovf.OvfReaderException;
 
 public class GetTemplatesFromExportDomainQuery<P extends 
GetAllFromExportDomainQueryParameters>
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/GetVmsFromExportDomainQuery.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/GetVmsFromExportDomainQuery.java
index 2aa2e95..ed02ce4 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/GetVmsFromExportDomainQuery.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/GetVmsFromExportDomainQuery.java
@@ -2,18 +2,13 @@
 
 import java.util.ArrayList;
 import java.util.List;
-import java.util.Map;
 
-import org.ovirt.engine.core.bll.ImportVmCommand;
+import org.ovirt.engine.core.bll.OvfManager;
 import org.ovirt.engine.core.common.AuditLogType;
-import org.ovirt.engine.core.common.businessentities.DiskImage;
 import org.ovirt.engine.core.common.businessentities.VM;
-import 
org.ovirt.engine.core.common.businessentities.network.VmNetworkInterface;
 import 
org.ovirt.engine.core.common.queries.GetAllFromExportDomainQueryParameters;
-import org.ovirt.engine.core.compat.Guid;
 import org.ovirt.engine.core.dal.dbbroker.auditloghandling.AuditLogDirector;
 import org.ovirt.engine.core.dal.dbbroker.auditloghandling.AuditLogableBase;
-import org.ovirt.engine.core.utils.ovf.OvfManager;
 import org.ovirt.engine.core.utils.ovf.OvfReaderException;
 
 public class GetVmsFromExportDomainQuery<P extends 
GetAllFromExportDomainQueryParameters>
@@ -31,24 +26,7 @@
         for (String ovf : ovfList) {
             try {
                 if (!ovfManager.IsOvfTemplate(ovf)) {
-                    VM vm = new VM();
-                    ArrayList<DiskImage> diskImages = new 
ArrayList<DiskImage>();
-                    ArrayList<VmNetworkInterface> interfaces  = new 
ArrayList<VmNetworkInterface>();
-                    ovfManager.ImportVm(ovf, vm, diskImages, interfaces);
-
-                    // add images
-                    vm.setImages(diskImages);
-                    // add interfaces
-                    vm.setInterfaces(interfaces);
-
-                    // add disk map
-                    Map<Guid, List<DiskImage>> images = ImportVmCommand
-                            .getImagesLeaf(diskImages);
-                    for (Guid id : images.keySet()) {
-                        List<DiskImage> list = images.get(id);
-                        vm.getDiskMap().put(id, list.get(list.size() - 1));
-                    }
-                    vms.add(vm);
+                    vms.add(ovfManager.readVmFromOvf(ovf));
                 }
             } catch (OvfReaderException ex) {
                 AuditLogableBase logable = new AuditLogableBase();
diff --git 
a/backend/manager/modules/utils/src/test/java/org/ovirt/engine/core/utils/ovf/OvfManagerTest.java
 
b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/OvfManagerTest.java
similarity index 99%
rename from 
backend/manager/modules/utils/src/test/java/org/ovirt/engine/core/utils/ovf/OvfManagerTest.java
rename to 
backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/OvfManagerTest.java
index 3531284..7b26964 100644
--- 
a/backend/manager/modules/utils/src/test/java/org/ovirt/engine/core/utils/ovf/OvfManagerTest.java
+++ 
b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/OvfManagerTest.java
@@ -1,4 +1,4 @@
-package org.ovirt.engine.core.utils.ovf;
+package org.ovirt.engine.core.bll;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
diff --git 
a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/RemoveImageCommandTest.java
 
b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/RemoveImageCommandTest.java
index 4b17d1c..a096253 100644
--- 
a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/RemoveImageCommandTest.java
+++ 
b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/RemoveImageCommandTest.java
@@ -34,7 +34,6 @@
 import org.ovirt.engine.core.utils.MockConfigRule;
 import org.ovirt.engine.core.utils.RandomUtils;
 import org.ovirt.engine.core.utils.RandomUtilsSeedingRule;
-import org.ovirt.engine.core.utils.ovf.OvfManager;
 import org.ovirt.engine.core.utils.ovf.OvfReaderException;
 
 @RunWith(MockitoJUnitRunner.class)


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

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

Reply via email to