From 5b0d816f1a118ae194338c34ebee62df7f9ebd08 Mon Sep 17 00:00:00 2001 From: Tino Vazquez Date: Thu, 13 May 2021 19:41:47 +0200 Subject: [PATCH] B #5368: Add snapshot and metadata earlier check Wild VMs won't be imported and left for delete-db action if they have snapshosts and not disk metadata --- src/vmm_mad/remotes/lib/vcenter_driver/virtual_machine.rb | 3 ++- src/vmm_mad/remotes/lib/vcenter_driver/vmm_importer.rb | 8 ++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) 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 eb857c72a8..8fed8d0d87 100644 --- a/src/vmm_mad/remotes/lib/vcenter_driver/virtual_machine.rb +++ b/src/vmm_mad/remotes/lib/vcenter_driver/virtual_machine.rb @@ -1054,7 +1054,8 @@ end else if snapshots? error = 'Disk metadata not present and snapshots exist. ' \ - 'OpenNebula cannot manage this VM.' + 'Please remove imported VM with "onevm recover ' \ + '--delete-db".' raise error end 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 6433fa9abd..6660ded825 100644 --- a/src/vmm_mad/remotes/lib/vcenter_driver/vmm_importer.rb +++ b/src/vmm_mad/remotes/lib/vcenter_driver/vmm_importer.rb @@ -54,6 +54,14 @@ module VCenterDriver vc_vm = VCenterDriver::VirtualMachine.new_without_id(@vi_client, vm_ref) + + # Importing Wild VMs with snapshots is not supported + # https://github.com/OpenNebula/one/issues/1268 + if vc_vm.snapshots? && vc_vm.disk_keys.empty? + raise 'Disk metadata not present and snapshots exist, '\ + 'cannot import this VM' + end + vname = vc_vm['name'] type = { :object => 'VM', :id => vname }