lib/vagrant-vcloud/command.rb in vagrant-vcloud-0.2.0 vs lib/vagrant-vcloud/command.rb in vagrant-vcloud-0.2.1
- old
+ new
@@ -85,95 +85,113 @@
if options[:all] == true
# FIXME: this needs to be fixed to accomodate the bridged scenario
# potentially showing only the assigned IPs in the VMs
- vapp_edge_ip = cnx.get_vapp_edge_public_ip(vapp_id)
- vapp_edge_rules = cnx.get_vapp_port_forwarding_rules(vapp_id)
- edge_gateway_rules = cnx.get_edge_gateway_rules(cfg.vdc_edge_gateway,
- cfg.vdc_id)
+ if !cfg.network_bridge.nil?
- # Create a new table for the network information
- network_table = Terminal::Table.new
- network_table.title = 'Vagrant vCloud Director Network Map'
+ # Create a new table for the network information
+ network_table = Terminal::Table.new
+ network_table.title = 'Network Map'
- network_table << ['VM Name', 'Destination NAT Mapping', 'Enabled']
- network_table << :separator
+ network_table << ['VM Name', 'IP Address', 'Connection']
+ network_table << :separator
- # Fetching Destination NAT Rules for each vApp/Edge/VM/Mapping
- edge_gateway_rules.each do |edge_gateway_rule|
- vapp_edge_rules.each do |vapp_edge_rule|
+ # ap vapp[:vms_hash]
- # Only check DNAT and src/dst
- if edge_gateway_rule[:rule_type] == 'DNAT' &&
- edge_gateway_rule[:original_ip] == cfg.vdc_edge_gateway_ip &&
- edge_gateway_rule[:translated_ip] == vapp_edge_ip
+ vapp[:vms_hash].each do |vm|
+ # ap vm
- # Loop on every VM in the vApp
- vapp[:vms_hash].each do |vm|
- # Only Map valid vAppEdge scope to VM scope
- vm_scope = vm[1][:vapp_scoped_local_id]
- vapp_edge_scope = vapp_edge_rule[:vapp_scoped_local_id]
+ network_table << [vm[0], vm[1][:addresses][0], 'Direct']
+ end
+ else
- if vm_scope == vapp_edge_scope
+ vapp_edge_ip = cnx.get_vapp_edge_public_ip(vapp_id)
+ vapp_edge_rules = cnx.get_vapp_port_forwarding_rules(vapp_id)
+ edge_gateway_rules = cnx.get_edge_gateway_rules(cfg.vdc_edge_gateway,
+ cfg.vdc_id)
- # Generate DNAT Mappings for the valid machines
- # If rules don't match, you will not see them !
- network_table << [
- "#{vm[0]}",
- "#{cfg.vdc_edge_gateway_ip}:" +
- "#{vapp_edge_rule[:nat_external_port]}" +
- " -> #{vapp_edge_ip}:" +
- "#{vapp_edge_rule[:nat_external_port]}" +
- " -> #{vm[1][:addresses][0]}:" +
- "#{vapp_edge_rule[:nat_internal_port]}",
- edge_gateway_rule[:is_enabled]
- ]
+ # Create a new table for the network information
+ network_table = Terminal::Table.new
+ network_table.title = 'Vagrant vCloud Director Network Map'
+
+ network_table << ['VM Name', 'Destination NAT Mapping', 'Enabled']
+ network_table << :separator
+
+ # Fetching Destination NAT Rules for each vApp/Edge/VM/Mapping
+ edge_gateway_rules.each do |edge_gateway_rule|
+ vapp_edge_rules.each do |vapp_edge_rule|
+
+ # Only check DNAT and src/dst
+ if edge_gateway_rule[:rule_type] == 'DNAT' &&
+ edge_gateway_rule[:original_ip] == cfg.vdc_edge_gateway_ip &&
+ edge_gateway_rule[:translated_ip] == vapp_edge_ip
+
+ # Loop on every VM in the vApp
+ vapp[:vms_hash].each do |vm|
+ # Only Map valid vAppEdge scope to VM scope
+ vm_scope = vm[1][:vapp_scoped_local_id]
+ vapp_edge_scope = vapp_edge_rule[:vapp_scoped_local_id]
+
+ if vm_scope == vapp_edge_scope
+
+ # Generate DNAT Mappings for the valid machines
+ # If rules don't match, you will not see them !
+ network_table << [
+ "#{vm[0]}",
+ "#{cfg.vdc_edge_gateway_ip}:" +
+ "#{vapp_edge_rule[:nat_external_port]}" +
+ " -> #{vapp_edge_ip}:" +
+ "#{vapp_edge_rule[:nat_external_port]}" +
+ " -> #{vm[1][:addresses][0]}:" +
+ "#{vapp_edge_rule[:nat_internal_port]}",
+ edge_gateway_rule[:is_enabled]
+ ]
+ end
end
end
end
end
- end
- # Fetching Source NAT Rules for the vApp
- network_table << :separator
- network_table << ['Network Name', 'Source NAT Mapping', 'Enabled']
- network_table << :separator
+ # Fetching Source NAT Rules for the vApp
+ network_table << :separator
+ network_table << ['Network Name', 'Source NAT Mapping', 'Enabled']
+ network_table << :separator
- edge_gateway_rules.each do |edge_gateway_rule|
- # Only check SNAT and src/dst
- if edge_gateway_rule[:rule_type] == 'SNAT' &&
- edge_gateway_rule[:original_ip] == vapp_edge_ip &&
- edge_gateway_rule[:translated_ip] == cfg.vdc_edge_gateway_ip
+ edge_gateway_rules.each do |edge_gateway_rule|
+ # Only check SNAT and src/dst
+ if edge_gateway_rule[:rule_type] == 'SNAT' &&
+ edge_gateway_rule[:original_ip] == vapp_edge_ip &&
+ edge_gateway_rule[:translated_ip] == cfg.vdc_edge_gateway_ip
- network_table << [
- edge_gateway_rule[:interface_name],
- "#{vapp_edge_ip} -> #{cfg.vdc_edge_gateway_ip}",
- edge_gateway_rule[:is_enabled]
- ]
+ network_table << [
+ edge_gateway_rule[:interface_name],
+ "#{vapp_edge_ip} -> #{cfg.vdc_edge_gateway_ip}",
+ edge_gateway_rule[:is_enabled]
+ ]
+ end
end
- end
- # Fetching Edge Gateway Firewall Rules
- network_table << :separator
- network_table << ['Rule# - Description', 'Firewall Rules', 'Enabled']
- network_table << :separator
- edge_gateway_rules.each do |edge_gateway_rule|
- # Only add firewall rules
- if edge_gateway_rule[:rule_type] == 'Firewall'
- network_table << [
- "#{edge_gateway_rule[:id]} - " +
- "(#{edge_gateway_rule[:description]})",
- "#{edge_gateway_rule[:policy]} " +
- "SRC:#{edge_gateway_rule[:source_ip]}:" +
- "#{edge_gateway_rule[:source_portrange]} to " +
- "DST:#{edge_gateway_rule[:destination_ip]}:" +
- "#{edge_gateway_rule[:destination_portrange]}",
- "#{edge_gateway_rule[:is_enabled]}"
- ]
+ # Fetching Edge Gateway Firewall Rules
+ network_table << :separator
+ network_table << ['Rule# - Description', 'Firewall Rules', 'Enabled']
+ network_table << :separator
+ edge_gateway_rules.each do |edge_gateway_rule|
+ # Only add firewall rules
+ if edge_gateway_rule[:rule_type] == 'Firewall'
+ network_table << [
+ "#{edge_gateway_rule[:id]} - " +
+ "(#{edge_gateway_rule[:description]})",
+ "#{edge_gateway_rule[:policy]} " +
+ "SRC:#{edge_gateway_rule[:source_ip]}:" +
+ "#{edge_gateway_rule[:source_portrange]} to " +
+ "DST:#{edge_gateway_rule[:destination_ip]}:" +
+ "#{edge_gateway_rule[:destination_portrange]}",
+ "#{edge_gateway_rule[:is_enabled]}"
+ ]
+ end
end
end
-
# Print the Network Table
puts
puts network_table
end