mirror of
https://github.com/OpenNebula/one.git
synced 2025-03-21 14:50:08 +03:00
parent
277da84abd
commit
e7de63e36f
@ -331,6 +331,14 @@ def find_network_by_name(vnpool, name)
|
||||
return element
|
||||
end
|
||||
|
||||
def find_network_by_bridge(vnpool, name)
|
||||
element = vnpool.select do |e|
|
||||
e["BRIDGE"] == name
|
||||
end.first rescue nil
|
||||
|
||||
return element
|
||||
end
|
||||
|
||||
def find_network_ar(vnet, mac)
|
||||
mac_int = mac.delete(":").to_i(16)
|
||||
vnet.retrieve_xmlelements("AR_POOL/AR").each do |ar|
|
||||
@ -630,6 +638,7 @@ def vm_unmanaged_discover(devices, xml_doc, template_xml,
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
# If VirtualEthernetCard
|
||||
if !device.class.ancestors.index(RbVmomi::VIM::VirtualEthernetCard).nil?
|
||||
|
||||
@ -655,11 +664,12 @@ def vm_unmanaged_discover(devices, xml_doc, template_xml,
|
||||
network_type = "Port Group"
|
||||
end
|
||||
|
||||
network_name = "#{network_bridge} [#{vm_name}(#{vm_id})]"
|
||||
network_name = "#{network_bridge} [#{vcenter_name}]"
|
||||
|
||||
# Create network if doesn't exist
|
||||
if vm_wild
|
||||
network = find_network_by_name(vnpool, network_name)
|
||||
#network = find_network_by_name(vnpool, network_name)
|
||||
network = find_network_by_bridge(vnpool, network_bridge)
|
||||
else
|
||||
network = find_network(vnpool, network_ref, ccr_ref, template_ref, vcenter_uuid)
|
||||
end
|
||||
@ -667,6 +677,7 @@ def vm_unmanaged_discover(devices, xml_doc, template_xml,
|
||||
mac_address = device.macAddress rescue nil
|
||||
ar_id = nil
|
||||
|
||||
# network not found
|
||||
if !network
|
||||
one_net = ""
|
||||
one_net << "NAME=\"#{network_name}\"\n"
|
||||
@ -705,7 +716,9 @@ def vm_unmanaged_discover(devices, xml_doc, template_xml,
|
||||
raise "\n ERROR! Could not get network info for vnet #{network_name}. Reason #{rc.message}" if OpenNebula.is_error?(rc)
|
||||
network = one_vn
|
||||
STDOUT.puts "--- Network #{one_vn["NAME"]} with ID #{one_vn["ID"]} has been created"
|
||||
# network found:
|
||||
else
|
||||
|
||||
STDOUT.puts "--- Network #{network["NAME"]} with ID #{network["ID"]} already exists"
|
||||
|
||||
ar_id = find_network_ar(network, mac_address)
|
||||
@ -1985,6 +1998,17 @@ def prepare_vnet_xml_templates(vnet_ids, one_client)
|
||||
raise rc.message if OpenNebula.is_error?(rc)
|
||||
xml_doc = Nokogiri::XML(one_vnet.to_xml, nil, "UTF-8"){|c| c.default_xml.noblanks}
|
||||
xml_doc.root.xpath("TEMPLATE/VCENTER_TYPE").remove
|
||||
xml_doc.root.xpath("AR_POOL/AR/USED_LEASES").remove
|
||||
|
||||
xml_doc.search('.//MAC_END').remove
|
||||
xml_doc.search('.//LEASES').remove
|
||||
xml_doc.search('.//IP_END').remove
|
||||
xml_doc.search('.//IP6_ULA').remove
|
||||
xml_doc.search('.//IP6_ULA_END').remove
|
||||
xml_doc.search('.//IP6_GLOBAL').remove
|
||||
xml_doc.search('.//IP6_GLOBAL_END').remove
|
||||
|
||||
|
||||
File.open("#{TEMP_DIR}/one_migrate_vnet_#{vnet_id}","w"){|f| f.puts(xml_doc.root.to_s.gsub(/>\s*/, ">").gsub(/\s*</, "<"))}
|
||||
STDOUT.puts
|
||||
STDOUT.puts "New XML file #{TEMP_DIR}/one_migrate_vnet_#{vnet_id} for vnet \e[96m#{one_vnet["NAME"]}\e[39m \e[92mwas created and attributes were removed\e[39m\n"
|
||||
|
3163
vcenter_one54_pre.rb
Normal file
3163
vcenter_one54_pre.rb
Normal file
File diff suppressed because it is too large
Load Diff
Loading…
x
Reference in New Issue
Block a user