From 6db5ef920cebb734fbc47b631cdd74452e3a196d Mon Sep 17 00:00:00 2001 From: jagarrigo Date: Fri, 9 Mar 2018 16:36:58 +0100 Subject: [PATCH 1/2] Fix improve vcenter message when import wild or vm template with disk without back reference --- .../lib/vcenter_driver/virtual_machine.rb | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/vmm_mad/remotes/lib/vcenter_driver/virtual_machine.rb b/src/vmm_mad/remotes/lib/vcenter_driver/virtual_machine.rb index cb202f858da..2b549b53f71 100644 --- a/src/vmm_mad/remotes/lib/vcenter_driver/virtual_machine.rb +++ b/src/vmm_mad/remotes/lib/vcenter_driver/virtual_machine.rb @@ -249,10 +249,22 @@ def import_vcenter_disks(vc_uuid, dpool, ipool, type, sunstone=false) allocated_images = [] vc_disks.each do |disk| - datastore_found = VCenterDriver::Storage.get_one_image_ds_by_ref_and_dc(disk[:datastore]._ref, + + ds_ref = nil + + begin + + ds_ref = disk[:datastore]._ref + rescue + + raise "The ISO #{disk[:path_wo_ds].name} cannot be found because the datastore was removed or deleted" + end + + datastore_found = VCenterDriver::Storage.get_one_image_ds_by_ref_and_dc(ds_ref, dc_ref, vc_uuid, dpool) + if datastore_found.nil? error = "\n ERROR: datastore #{disk[:datastore].name}: has to be imported first as an image datastore!\n" @@ -522,7 +534,7 @@ def import_vcenter_nics(vc_uuid, npool, hpool, vcenter_instance_name, def get_vcenter_disk_key(unit_number, controller_key) key = nil - + @item["config.hardware.device"].each do |device| disk = {} From ca5bd026406e2d83726722e72fd8838401fb1712 Mon Sep 17 00:00:00 2001 From: jagarrigo Date: Tue, 13 Mar 2018 09:04:26 +0100 Subject: [PATCH 2/2] Fix style code --- src/vmm_mad/remotes/lib/vcenter_driver/virtual_machine.rb | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/src/vmm_mad/remotes/lib/vcenter_driver/virtual_machine.rb b/src/vmm_mad/remotes/lib/vcenter_driver/virtual_machine.rb index 2b549b53f71..86c8caeef1b 100644 --- a/src/vmm_mad/remotes/lib/vcenter_driver/virtual_machine.rb +++ b/src/vmm_mad/remotes/lib/vcenter_driver/virtual_machine.rb @@ -249,17 +249,12 @@ def import_vcenter_disks(vc_uuid, dpool, ipool, type, sunstone=false) allocated_images = [] vc_disks.each do |disk| - ds_ref = nil - begin - ds_ref = disk[:datastore]._ref - rescue - + rescue raise "The ISO #{disk[:path_wo_ds].name} cannot be found because the datastore was removed or deleted" end - datastore_found = VCenterDriver::Storage.get_one_image_ds_by_ref_and_dc(ds_ref, dc_ref, vc_uuid,