From 9ac5f03a6021b443958fdea15bf3871608d97db1 Mon Sep 17 00:00:00 2001 From: "Carlos J. Herrera" <37907824+carloshm91@users.noreply.github.com> Date: Wed, 18 Dec 2019 10:34:12 -0500 Subject: [PATCH] B #3844: Add references when import wilds (#4055) Signed-off-by: Carlos Herrera (cherry picked from commit 6141ebbb86a9a30f363b12d1e436f56ba165cc84) --- .../lib/vcenter_driver/virtual_machine.rb | 19 +++++++++++++++++++ .../lib/vcenter_driver/vmm_importer.rb | 3 +++ 2 files changed, 22 insertions(+) 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