Skip to content

Commit

Permalink
M #~: improve list in vcenter (#253)
Browse files Browse the repository at this point in the history
Signed-off-by: Carlos Herrera <[email protected]>
  • Loading branch information
carloshm91 authored and rsmontero committed Oct 6, 2020
1 parent 938e382 commit 160f02f
Show file tree
Hide file tree
Showing 2 changed files with 73 additions and 52 deletions.
2 changes: 2 additions & 0 deletions src/cli/onevcenter
Original file line number Diff line number Diff line change
Expand Up @@ -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])
Expand Down Expand Up @@ -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])
Expand Down
123 changes: 71 additions & 52 deletions src/vmm_mad/remotes/lib/vcenter_driver/datacenter.rb
Original file line number Diff line number Diff line change
Expand Up @@ -536,6 +536,8 @@ def process_network(params)
one_host = params[:one_host]
args = params[:args]

full_process = !args[:short]

# Initialize network hash
network = {}
# Add name to network hash
Expand All @@ -546,54 +548,62 @@ def process_network(params)
# 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,
one_host,
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
Expand Down Expand Up @@ -635,17 +645,26 @@ def process_network(params)
# 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]

network[vc_network._ref] = \
network[vc_network._ref].merge(VCenterDriver::Network
.to_one_template(opts))
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
end

Expand Down

0 comments on commit 160f02f

Please sign in to comment.