Liron Ar has uploaded a new change for review.

Change subject: core: move images handling  methods to ImagesHandler
......................................................................

core: move images handling  methods to ImagesHandler

Currently there are images related methods placed in ImportVmCommand
that are also being executed from other commands than ImportVm -
therefore in this patch those methods are moved to ImagesHandler.

Change-Id: Ic548bd5a805c0b7d702c0d363434234f6484fc25
Signed-off-by: Liron Aravot <[email protected]>
---
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, 67 insertions(+), 67 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/27/15627/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 97f925a..c5eb912 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
@@ -43,6 +43,7 @@
 import org.ovirt.engine.core.common.vdscommands.VDSCommandType;
 import org.ovirt.engine.core.compat.Guid;
 import org.ovirt.engine.core.dal.dbbroker.DbFacade;
+import org.ovirt.engine.core.utils.collections.MultiValueMapUtils;
 import org.ovirt.engine.core.utils.log.Log;
 import org.ovirt.engine.core.utils.log.LogFactory;
 
@@ -544,6 +545,70 @@
 
     }
 
+    // the last image in each list is the leaf
+    public static Map<Guid, List<DiskImage>> getImagesLeaf(List<DiskImage> 
images) {
+        Map<Guid, List<DiskImage>> retVal = new HashMap<Guid, 
List<DiskImage>>();
+        for (DiskImage image : images) {
+            MultiValueMapUtils.addToMap(image.getId(), image, retVal);
+        }
+
+        for (List<DiskImage> list : retVal.values()) {
+            sortImageList(list);
+        }
+        return retVal;
+    }
+
+    private static void sortImageList(List<DiskImage> images) {
+        List<DiskImage> hold = new ArrayList<DiskImage>();
+        DiskImage curr = null;
+
+        // find the first image
+        for (int i = 0; i < images.size(); i++) {
+            int pos = getFirstImage(images, images.get(i));
+            if (pos == -1) {
+                curr = images.get(i);
+                hold.add(images.get(i));
+                images.remove(images.get(i));
+                break;
+            }
+        }
+
+        while (images.size() > 0) {
+            int pos = getNextImage(images, curr);
+            if (pos == -1) {
+                log.error("Image list error in SortImageList");
+                break;
+            }
+            curr = images.get(pos);
+            hold.add(images.get(pos));
+            images.remove(images.get(pos));
+        }
+
+        for (DiskImage image : hold) {
+            images.add(image);
+        }
+    }
+
+    // function return the index of image that is its child
+    private static int getNextImage(List<DiskImage> images, DiskImage curr) {
+        for (int i = 0; i < images.size(); i++) {
+            if (images.get(i).getParentId().equals(curr.getImageId())) {
+                return i;
+            }
+        }
+        return -1;
+    }
+
+    // function return the index of the image that has no parent
+    private static int getFirstImage(List<DiskImage> images, DiskImage curr) {
+        for (int i = 0; i < images.size(); i++) {
+            if (curr.getParentId().equals(images.get(i).getImageId())) {
+                return i;
+            }
+        }
+        return -1;
+    }
+
     public static void removeImage(DiskImage diskImage) {
         DbFacade.getInstance()
                 .getImageStorageDomainMapDao()
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 b44c18b..d5b43a2 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
@@ -69,7 +69,6 @@
 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.collections.MultiValueMapUtils;
 import org.ovirt.engine.core.utils.linq.Function;
 import org.ovirt.engine.core.utils.linq.LinqUtils;
 import org.ovirt.engine.core.utils.linq.Predicate;
@@ -256,7 +255,7 @@
                 image.setStorageIds(new 
ArrayList<Guid>(Arrays.asList(getParameters().getSourceDomainId())));
             }
 
-            Map<Guid, List<DiskImage>> images = 
getImagesLeaf(getVm().getImages());
+            Map<Guid, List<DiskImage>> images = 
ImagesHandler.getImagesLeaf(getVm().getImages());
             for (Map.Entry<Guid, List<DiskImage>> entry : images.entrySet()) {
                 Guid id = entry.getKey();
                 List<DiskImage> diskList = entry.getValue();
@@ -612,7 +611,7 @@
     }
 
     protected void addVmImagesAndSnapshots() {
-        Map<Guid, List<DiskImage>> images = getImagesLeaf(getVm().getImages());
+        Map<Guid, List<DiskImage>> images = 
ImagesHandler.getImagesLeaf(getVm().getImages());
 
         if (getParameters().getCopyCollapse()) {
             Guid snapshotId = Guid.NewGuid();
@@ -772,70 +771,6 @@
                         "Active VM snapshot",
                         new Date(),
                         null));
-    }
-
-    // the last image in each list is the leaf
-    public static Map<Guid, List<DiskImage>> getImagesLeaf(List<DiskImage> 
images) {
-        Map<Guid, List<DiskImage>> retVal = new HashMap<Guid, 
List<DiskImage>>();
-        for (DiskImage image : images) {
-            MultiValueMapUtils.addToMap(image.getId(), image, retVal);
-        }
-
-        for (List<DiskImage> list : retVal.values()) {
-            sortImageList(list);
-        }
-        return retVal;
-    }
-
-    private static void sortImageList(List<DiskImage> images) {
-        List<DiskImage> hold = new ArrayList<DiskImage>();
-        DiskImage curr = null;
-
-        // find the first image
-        for (int i = 0; i < images.size(); i++) {
-            int pos = getFirstImage(images, images.get(i));
-            if (pos == -1) {
-                curr = images.get(i);
-                hold.add(images.get(i));
-                images.remove(images.get(i));
-                break;
-            }
-        }
-
-        while (images.size() > 0) {
-            int pos = getNextImage(images, curr);
-            if (pos == -1) {
-                log.error("Image list error in SortImageList");
-                break;
-            }
-            curr = images.get(pos);
-            hold.add(images.get(pos));
-            images.remove(images.get(pos));
-        }
-
-        for (DiskImage image : hold) {
-            images.add(image);
-        }
-    }
-
-    // function return the index of the image that has no parent
-    private static int getFirstImage(List<DiskImage> images, DiskImage curr) {
-        for (int i = 0; i < images.size(); i++) {
-            if (curr.getParentId().equals(images.get(i).getImageId())) {
-                return i;
-            }
-        }
-        return -1;
-    }
-
-    // function return the index of image that is its child
-    private static int getNextImage(List<DiskImage> images, DiskImage curr) {
-        for (int i = 0; i < images.size(); i++) {
-            if (images.get(i).getParentId().equals(curr.getImageId())) {
-                return i;
-            }
-        }
-        return -1;
     }
 
     protected void addVmStatic() {


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

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