diff --git a/src/vmm_mad/remotes/lib/vcenter_driver/network.rb b/src/vmm_mad/remotes/lib/vcenter_driver/network.rb index f2c5615b63..c5149ffdbd 100644 --- a/src/vmm_mad/remotes/lib/vcenter_driver/network.rb +++ b/src/vmm_mad/remotes/lib/vcenter_driver/network.rb @@ -374,6 +374,10 @@ class NetImporter < VCenterDriver::VcImporter def defaults { size: "255", type: "ether" } end + + def attr + "TEMPLATE/VCENTER_NET_REF" + end end end # module VCenterDriver diff --git a/src/vmm_mad/remotes/lib/vcenter_driver/vcenter_importer.rb b/src/vmm_mad/remotes/lib/vcenter_driver/vcenter_importer.rb index 4566062410..6aa850767f 100644 --- a/src/vmm_mad/remotes/lib/vcenter_driver/vcenter_importer.rb +++ b/src/vmm_mad/remotes/lib/vcenter_driver/vcenter_importer.rb @@ -27,6 +27,10 @@ module VCenterDriver def import(selected) raise MESS end ######################################## + def attr + false + end + public ######################################## # Constructors @@ -136,6 +140,12 @@ module VCenterDriver id = resource['ID'] @rollback << Raction.new(resource, :delete) rc = block.call(resource, id) + + # update vCenter cache (future work) + #if attr + # VCenterDriver::VIHelper.add_ref_hash(attr, resource) + # @rollback << Raction.new(VCenterDriver::VIHelper, :remove_ref_hash, [attr, resource]) + #end end def list_empty? diff --git a/src/vmm_mad/remotes/lib/vcenter_driver/vi_helper.rb b/src/vmm_mad/remotes/lib/vcenter_driver/vi_helper.rb index 1f416b8063..1f03e40d31 100644 --- a/src/vmm_mad/remotes/lib/vcenter_driver/vi_helper.rb +++ b/src/vmm_mad/remotes/lib/vcenter_driver/vi_helper.rb @@ -122,11 +122,27 @@ class VIHelper hash end - def self.clean_ref_hash(attr = nil) - if attr.nil? - @ref_hash = {} - else - @ref_hash[attr] = {} unless @ref_hash.nil? + def self.clean_ref_hash() + @ref_hash = {} + end + + def self.add_ref_hash(attr, one_object) + raise "cache is empty!" unless @ref_hash + + refkey = get_ref_key(one_object, attr) + + if @ref_hash[attr] + @ref_hash[attr][refkey] = one_object + end + end + + def self.remove_ref_hash(attr, one_object) + raise "cache is empty!" unless @ref_hash + + refkey = get_ref_key(one_object, attr) + + if @ref_hash[attr] + @ref_hash[attr].delete(refkey) end end 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 fb8903234c..a58980ae0b 100644 --- a/src/vmm_mad/remotes/lib/vcenter_driver/virtual_machine.rb +++ b/src/vmm_mad/remotes/lib/vcenter_driver/virtual_machine.rb @@ -3339,8 +3339,8 @@ class VmImporter < VCenterDriver::VcImporter @rollback.unshift(Raction.new(n, :delete)) end raise error if !error.empty? - working_template[:one] << template_nics + working_template[:one] << template_nics working_template[:one] << rp_opts(opts[:type], opts[:resourcepool]) one_object.update(working_template[:one]) @@ -3360,5 +3360,9 @@ class VmImporter < VCenterDriver::VcImporter } end + def attr + "TEMPLATE/VCENTER_TEMPLATE_REF" + end + end end # module VCenterDriver