1
0
mirror of https://github.com/OpenNebula/one.git synced 2025-03-30 22:50:10 +03:00

F #5725: Better management of imported networks

This commit is contained in:
Ruben S. Montero 2022-04-11 12:43:25 +02:00
parent 3793f80671
commit 8a4dbb8491
No known key found for this signature in database
GPG Key ID: A0CEA6FA880A1D87
3 changed files with 25 additions and 30 deletions

View File

@ -17,6 +17,9 @@
#--------------------------------------------------------------------------- #
class VirtualNetworkXML
# Public attributes
attr_reader :imported, :pgtype
#-----------------------------------------------------------------------
# Class attributes
# - @vnet_xml [REXML] of the vnet
@ -35,7 +38,11 @@ class VirtualNetworkXML
raise "Error parsing XML document: #{vnet_raw}" unless @vnet_xml
@debug = VCenterDriver::CONFIG[:debug_information]
@debug = VCenterDriver::CONFIG[:debug_information]
@pgtype = self['TEMPLATE/VCENTER_PORTGROUP_TYPE']
@imported = self['TEMPLATE/VCENTER_IMPORTED'].casecmp('yes') == 0
return if @imported
#-----------------------------------------------------------------------
# Initialize Clusters

View File

@ -68,18 +68,12 @@ begin
_vnet_id = ARGV[0]
vnet_xml = VirtualNetworkXML.new(STDIN.read)
imported = vnet_xml['TEMPLATE/VCENTER_IMPORTED']
exit(0) unless imported.empty?
estr = "Error importing network:"
exit(0) if vnet_xml.imported
vnmad = vnet_xml['VN_MAD']
raise "#{estr} driver is not vcenter" if vnmad != 'vcenter'
raise "Error importing network: driver is not vcenter" if vnmad != 'vcenter'
pg_type = vnet_xml['TEMPLATE/VCENTER_PORTGROUP_TYPE']
raise "#{estr} Missing port group type (VCENTER_PORTGROUP_TYPE)" if pg_type.empty?
extra_info = case pg_type
extra_info = case vnet_xml.pgtype
when VCenterDriver::Network::NETWORK_TYPE_PG
vnet_xml.create_pg
when VCenterDriver::Network::NETWORK_TYPE_DPG
@ -89,7 +83,7 @@ begin
when VCenterDriver::Network::NETWORK_TYPE_NSXT
vnet_xml.create_nsxt
else
raise "Unknown portgroup type"
raise "Unknown portgroup (VCENTER_PORTGROUP_TYPE): #{vnet_xml.pgtype}"
end
STDOUT.puts extra_info

View File

@ -63,28 +63,22 @@ begin
_vnet_id = ARGV[0]
vnet_xml = VirtualNetworkXML.new(STDIN.read)
imported = vnet_xml['TEMPLATE/VCENTER_IMPORTED']
exit(0) unless imported.empty?
estr = "Error importing network:"
exit(0) if vnet_xml.imported
vnmad = vnet_xml['VN_MAD']
raise "#{estr} driver is not vcenter" if vnmad != 'vcenter'
raise "Error importing network: driver is not vcenter" if vnmad != 'vcenter'
pg_type = vnet_xml['TEMPLATE/VCENTER_PORTGROUP_TYPE']
raise "#{estr} Missing port group type (VCENTER_PORTGROUP_TYPE)" if pg_type.empty?
case pg_type
when VCenterDriver::Network::NETWORK_TYPE_PG
vnet_xml.delete_pg
when VCenterDriver::Network::NETWORK_TYPE_DPG
vnet_xml.delete_dpg
when VCenterDriver::Network::NETWORK_TYPE_NSXV
vnet_xml.delete_nsxv
when VCenterDriver::Network::NETWORK_TYPE_NSXT
vnet_xml.delete_nsxt
else
raise "Unknown portgroup type"
case vnet_xml.pgtype
when VCenterDriver::Network::NETWORK_TYPE_PG
vnet_xml.delete_pg
when VCenterDriver::Network::NETWORK_TYPE_DPG
vnet_xml.delete_dpg
when VCenterDriver::Network::NETWORK_TYPE_NSXV
vnet_xml.delete_nsxv
when VCenterDriver::Network::NETWORK_TYPE_NSXT
vnet_xml.delete_nsxt
else
raise "Unknown portgroup (VCENTER_PORTGROUP_TYPE): #{vnet_xml.pgtype}"
end
rescue StandardError => e
STDERR.puts e.message