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:
parent
3793f80671
commit
8a4dbb8491
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user