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

M #~: improve list in vcenter (#253)

Signed-off-by: Carlos Herrera <cherrera@opennebula.io>
This commit is contained in:
Carlos J. Herrera 2020-09-28 10:46:08 -04:00 committed by GitHub
parent c69a9c5e2e
commit 146030e82a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 72 additions and 51 deletions

View File

@ -155,6 +155,7 @@ CommandParser::CmdParser.new(ARGV) do
begin
args = helper.parse_opts(options)
args[:filter] = true
args[:short] = true
vi_client = VCenterDriver::VIClient.new_from_host(options[:host])
importer = VCenterDriver::VcImporter
.new_child(helper.client, vi_client, options[:object])
@ -185,6 +186,7 @@ CommandParser::CmdParser.new(ARGV) do
begin
args = helper.parse_opts(options)
args[:filter] = false
args[:short] = true
vi_client = VCenterDriver::VIClient.new_from_host(options[:host])
importer = VCenterDriver::VcImporter
.new_child(helper.client, vi_client, options[:object])

View File

@ -536,6 +536,8 @@ module VCenterDriver
one_host = params[:one_host]
args = params[:args]
full_process = !args[:short]
# Initialize network hash
network = {}
# Add name to network hash
@ -546,9 +548,12 @@ module VCenterDriver
# Initialize opts hash used to inject data into one template
opts = {}
# Add network type to network hash
network_type = VCenterDriver::Network.get_network_type(vc_network)
network[vc_network._ref][:network_type] = network_type
if full_process
# Add network type to network hash
network_type = \
VCenterDriver::Network.get_network_type(vc_network)
network[vc_network._ref][:network_type] = network_type
end
# Determine if the network must be excluded
network[vc_network._ref][:excluded] = exclude_network?(vc_network,
@ -556,44 +561,49 @@ module VCenterDriver
args)
return if network[vc_network._ref][:excluded] == true
case network[vc_network._ref][:network_type]
# Distributed PortGroups
when VCenterDriver::Network::NETWORK_TYPE_DPG
network[vc_network._ref][:sw_name] = \
vc_network.config.distributedVirtualSwitch.name
# For DistributedVirtualPortgroups there is networks and uplinks
network[vc_network._ref][:uplink] = \
vc_network.config.uplink
# network[vc_network._ref][:uplink] = false
# NSX-V PortGroups
when VCenterDriver::Network::NETWORK_TYPE_NSXV
network[vc_network._ref][:sw_name] = \
vc_network.config.distributedVirtualSwitch.name
# For NSX-V ( is the same as DistributedVirtualPortgroups )
# there is networks and uplinks
network[vc_network._ref][:uplink] = \
vc_network.config.uplink
network[vc_network._ref][:uplink] = false
# Standard PortGroups
when VCenterDriver::Network::NETWORK_TYPE_PG
# There is no uplinks for standard portgroups, so all Standard
# PortGroups are networks and no uplinks
network[vc_network._ref][:uplink] = false
network[vc_network._ref][:sw_name] =
VCenterDriver::Network
.virtual_switch(
vc_network
)
# NSX-T PortGroups
when VCenterDriver::Network::NETWORK_TYPE_NSXT
network[vc_network._ref][:sw_name] = \
vc_network.summary.opaqueNetworkType
# There is no uplinks for NSX-T networks, so all NSX-T networks
# are networks and no uplinks
network[vc_network._ref][:uplink] = false
else
raise 'Unknown network type: ' \
"#{network[vc_network._ref][:network_type]}"
if full_process
case network[vc_network._ref][:network_type]
# Distributed PortGroups
when VCenterDriver::Network::NETWORK_TYPE_DPG
network[vc_network._ref][:sw_name] = \
vc_network.config.distributedVirtualSwitch.name
# For DistributedVirtualPortgroups there
# is networks and uplinks
network[vc_network._ref][:uplink] = \
vc_network.config.uplink
# network[vc_network._ref][:uplink] = false
# NSX-V PortGroups
when VCenterDriver::Network::NETWORK_TYPE_NSXV
network[vc_network._ref][:sw_name] = \
vc_network.config.distributedVirtualSwitch.name
# For NSX-V ( is the same as DistributedVirtualPortgroups )
# there is networks and uplinks
network[vc_network._ref][:uplink] = \
vc_network.config.uplink
network[vc_network._ref][:uplink] = false
# Standard PortGroups
when VCenterDriver::Network::NETWORK_TYPE_PG
# There is no uplinks for standard portgroups,
# so all Standard
# PortGroups are networks and no uplinks
network[vc_network._ref][:uplink] = false
network[vc_network._ref][:sw_name] =
VCenterDriver::Network
.virtual_switch(
vc_network
)
# NSX-T PortGroups
when VCenterDriver::Network::NETWORK_TYPE_NSXT
network[vc_network._ref][:sw_name] = \
vc_network.summary.opaqueNetworkType
# There is no uplinks for NSX-T networks,
# so all NSX-T networks
# are networks and no uplinks
network[vc_network._ref][:uplink] = false
else
raise 'Unknown network type: ' \
"#{network[vc_network._ref][:network_type]}"
end
end
# Multicluster nets support
@ -635,17 +645,26 @@ module VCenterDriver
# Mark network as processed
network[vc_network._ref][:processed] = true
# General net_info related to datacenter
opts[:vcenter_uuid] = vcenter_uuid
opts[:vcenter_instance_name] = vcenter_instance_name
opts[:network_name] = network[vc_network._ref]['name']
opts[:network_ref] = network.keys.first
opts[:network_type] = network[vc_network._ref][:network_type]
opts[:sw_name] = network[vc_network._ref][:sw_name]
if full_process
# General net_info related to datacenter
opts[:vcenter_uuid] = vcenter_uuid
opts[:vcenter_instance_name] = vcenter_instance_name
opts[:network_name] = network[vc_network._ref]['name']
opts[:network_ref] = network.keys.first
opts[:network_type] = network[vc_network._ref][:network_type]
opts[:sw_name] = network[vc_network._ref][:sw_name]
network[vc_network._ref] = \
network[vc_network._ref]
.merge(VCenterDriver::Network
.to_one_template(opts))
else
network[vc_network._ref][:ref] = \
vc_network._ref
network[vc_network._ref][:name] = \
network[vc_network._ref]['name']
end
network[vc_network._ref] = \
network[vc_network._ref].merge(VCenterDriver::Network
.to_one_template(opts))
network
end