Allon Mureinik has uploaded a new change for review.

Change subject: core: ImportVmCommand: fix disk alias generation
......................................................................

core: ImportVmCommand: fix disk alias generation

When ImportVmCommand auto generates the disks' aliases, it assigns them
all the same alias, vmName_DiskN, where N is the number of disks
attached to the imported VM.

This patch fixes these aliases, and gives each disk a different alias,
starting with VmName_Disk1 up to VmName_DiskN.

Change-Id: Ibdd6525529d3d5e0c8ee2c86b418562929118207
Bug-Url: https://bugzilla.redhat.com/882616
Signed-off-by: Allon Mureinik <amure...@redhat.com>
---
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(+), 7 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/29/9629/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 0c9a85e..5757145 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
@@ -110,13 +110,12 @@
     }
 
     public static boolean setDiskAlias(BaseDisk disk, VM vm) {
+        return setDiskAlias(disk, vm, nullSafeGetCount(vm));
+    }
+
+    public static boolean setDiskAlias(BaseDisk disk, VM vm, int count) {
         if (disk != null) {
-            String vmName = "";
-            int count = 1;
-            if (vm != null) {
-                vmName = vm.getvm_name();
-                count = vm.getDiskMapCount() + 1;
-            }
+            String vmName = nullSafeGetVmName(vm);
             disk.setDiskAlias(getSuggestedDiskAlias(disk, vmName, count));
             return true;
         } else {
@@ -125,6 +124,14 @@
         }
     }
 
+    private static String nullSafeGetVmName(VM vm) {
+        return vm == null ? "" : vm.getvm_name();
+    }
+
+    private static int nullSafeGetCount(VM vm) {
+        return vm == null ? 1 : vm.getDiskMapCount() + 1;
+    }
+
     /**
      * Retrieve disk alias name, if the alias name is null returns the default 
alias name.
      *
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 2a13daf..9e976f7 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
@@ -610,7 +610,9 @@
 
         if (getParameters().getCopyCollapse()) {
             Guid snapshotId = Guid.NewGuid();
+            int aliasCounter = 0;
             for (List<DiskImage> diskList : images.values()) {
+                ++aliasCounter;
                 DiskImage disk = diskList.get(diskList.size() - 1);
 
                 disk.setParentId(VmTemplateHandler.BlankVmTemplateId);
@@ -636,7 +638,7 @@
                 }
                 disk.setcreation_date(new Date());
                 BaseImagesCommand.saveImage(disk);
-                ImagesHandler.setDiskAlias(disk, getVm());
+                ImagesHandler.setDiskAlias(disk, getVm(), aliasCounter);
                 getBaseDiskDao().save(disk);
                 saveDiskImageDynamic(disk);
             }


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

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