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