Arik Hadas has uploaded a new change for review.

Change subject: core: fix creation of instance-type
......................................................................

core: fix creation of instance-type

The addition of cinder disks broke creation of instance-type. While
trying to create an instance-type, one would have get NPE in the
AddVmTemplateCommand where cinder disks were about to be added.

The problem was that instance-types are not based on any existing VM so
getVm() returns null. The solution is to check if getVm()!=null before
trying to add cinder disks. This is ok because instance-type don't have
disks and in particular don't have cinder disks.

Change-Id: Idb8b7e439f675fcfe29f403770a5ca52357ab6c4
Signed-off-by: Arik Hadas <aha...@redhat.com>
---
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmTemplateCommand.java
1 file changed, 6 insertions(+), 4 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/01/41301/1

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmTemplateCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmTemplateCommand.java
index 8ed73f0..d324f7f 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmTemplateCommand.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmTemplateCommand.java
@@ -294,9 +294,7 @@
             public Void runInTransaction() {
                 addPermission();
                 addVmTemplateImages(srcDeviceIdToTargetDeviceIdMapping);
-                List<CinderDisk> cinderDisks = 
ImagesHandler.filterDisksBasedOnCinder(getVm().getDiskMap().values());
-                if (!cinderDisks.isEmpty() && 
!addVmTemplateCinderDisks(cinderDisks, srcDeviceIdToTargetDeviceIdMapping)) {
-                    setSucceeded(false);
+                if (getVm() != null && 
!addVmTemplateCinderDisks(srcDeviceIdToTargetDeviceIdMapping)) {
                     return null;
                 }
                 addVmInterfaces(srcDeviceIdToTargetDeviceIdMapping);
@@ -719,7 +717,11 @@
         }
     }
 
-    protected boolean addVmTemplateCinderDisks(List<CinderDisk> cinderDisks, 
Map<Guid, Guid> srcDeviceIdToTargetDeviceIdMapping) {
+    protected boolean addVmTemplateCinderDisks(Map<Guid, Guid> 
srcDeviceIdToTargetDeviceIdMapping) {
+        List<CinderDisk> cinderDisks = 
ImagesHandler.filterDisksBasedOnCinder(getVm().getDiskMap().values());
+        if (cinderDisks.isEmpty()) {
+            return true;
+        }
         // Create Cinder disk templates
         Future<VdcReturnValueBase> future = 
CommandCoordinatorUtil.executeAsyncCommand(
                 VdcActionType.CloneCinderDisks,


-- 
To view, visit https://gerrit.ovirt.org/41301
To unsubscribe, visit https://gerrit.ovirt.org/settings

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

Reply via email to