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 ffba14a721..3f19e84695 100644 --- a/src/vmm_mad/remotes/lib/vcenter_driver/virtual_machine.rb +++ b/src/vmm_mad/remotes/lib/vcenter_driver/virtual_machine.rb @@ -930,6 +930,25 @@ module VCenterDriver {} end + def reference_all_disks + extraconfig = [] + disks_each(:synced?) do |disk| + begin + key_prefix = disk.managed? ? "opennebula.mdisk." : "opennebula.disk." + k = "#{key_prefix}#{disk.id}" + v = "#{disk.key}" + + extraconfig << {key: k, value: v} + rescue StandardError => e + next + end + end + + spec_hash = {:extraConfig => extraconfig} + spec = RbVmomi::VIM.VirtualMachineConfigSpec(spec_hash) + @item.ReconfigVM_Task(:spec => spec).wait_for_completion + end + # Build extraconfig section to reference disks # by key and avoid problems with changing paths # (mainly due to snapshots) diff --git a/src/vmm_mad/remotes/lib/vcenter_driver/vmm_importer.rb b/src/vmm_mad/remotes/lib/vcenter_driver/vmm_importer.rb index ab1a3da061..7ad70eeaa6 100644 --- a/src/vmm_mad/remotes/lib/vcenter_driver/vmm_importer.rb +++ b/src/vmm_mad/remotes/lib/vcenter_driver/vmm_importer.rb @@ -105,6 +105,9 @@ module VCenterDriver request_vnc(vc_vm) + # Sync disks with extraConfig + vc_vm.reference_all_disks + vm.id end