vagrant-vcloud 0.2.0 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: beb3fb2a8c171a33da931289fe566246e416f1bb
4
- data.tar.gz: 2fbee46af8c1f58713c1279356bdf46ef81f05a8
3
+ metadata.gz: b7921deee4b96c4a9dff76fd076a0976595fcf32
4
+ data.tar.gz: 228f26b02b6eb32d08d62c59500a8c9618357382
5
5
  SHA512:
6
- metadata.gz: 539d00b06ce68283799b8a41208229649c6067eaa5ad4861e4cd8d4099045133e89fde9c22a71c5f64732e09661eb3471bac2c93f68a4488a52df595b9ec76e6
7
- data.tar.gz: 49afaa371cc4fc39b3c198d611790f2b1eadc26346ebfcd6a8330690f55e24bd6cb62b4a0f81816dd640ae12bcc5337c98b6f6a1154ff06790958c211a68d1c0
6
+ metadata.gz: 5d8076e0a367c99e6a8580b2d718eb7975e42c319d390b19cd9dff0fae6b8b983a891c454dbd8ca90ff9bfc512ea3f5f522c9651038cfe6805cc60589ffb926e
7
+ data.tar.gz: 5523a1fd974ad0d5617a5bc39c662d68e94fdc0022a5ba9cb02bd8629213086a17e8c79bfe5359b144ff774cca6d455de84feaa9204d29ed99451fa0397175f7
data/README.md CHANGED
@@ -1,16 +1,20 @@
1
1
  [Vagrant](http://www.vagrantup.com) provider for VMware vCloud Director®
2
2
  =============
3
3
 
4
- [Version 0.2.0](https://github.com/frapposelli/vagrant-vcloud/releases/tag/v0.2.0) has been released!
4
+ [Version 0.2.1](https://github.com/frapposelli/vagrant-vcloud/releases/tag/v0.2.1) has been released!
5
5
  -------------
6
6
 
7
7
  Please note that this software is still Alpha/Beta quality and is not recommended for production usage.
8
8
 
9
9
  Right now a [Precise32](http://vagrant.tsugliani.fr/precise32.box) is available for use, or you can roll your own as you please, make sure to install VMware tools in it.
10
10
 
11
+ Features of Version 0.2.1 are:
12
+
13
+ - Critical Bugfixes
14
+
11
15
  Features of Version 0.2.0 are:
12
16
 
13
- - It's now possible to connect to an existing VDC network without creating a vShield Edge [ISSUE #23].
17
+ - It's now possible to connect to an existing VDC network without creating a vShield Edge using ```network_bridge = true``` in the Vagrantfile [ISSUE #23]. *experimental*
14
18
  - Added a ```upload_chunksize``` parameter to specify the chunk dimension during box uploads [ISSUE #21].
15
19
  - Added support for [vCloud® Hybrid Service™](http://www.vmware.com/products/vcloud-hybrid-service) API version 5.7.
16
20
  - Added a new command to vagrant called ```vcloud-status``` that shows the current status of the vCloud instance relative to the Vagrant deployment. *experimental*
@@ -118,4 +122,4 @@ Vagrant.configure("2") do |config|
118
122
  end
119
123
  ```
120
124
 
121
- [![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/frapposelli/vagrant-vcloud/trend.png)](https://bitdeli.com/free "Bitdeli Badge")
125
+ [![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/frapposelli/vagrant-vcloud/trend.png)](https://bitdeli.com/free "Bitdeli Badge")
@@ -46,12 +46,10 @@ module VagrantPlugins
46
46
  else
47
47
 
48
48
  @logger.debug('Getting port forwarding rules...')
49
- rules = cnx.get_vapp_port_forwarding_rules(vAppId)
49
+ rules = cnx.get_vapp_port_forwarding_rules(vapp_id)
50
50
 
51
51
  rules.each do |rule|
52
- if rule[:vapp_scoped_local_id] == myhash[:vapp_scoped_local_id] \
53
- && rule[:nat_internal_port] == '22'
54
-
52
+ if rule[:vapp_scoped_local_id] == myhash[:vapp_scoped_local_id] && rule[:nat_internal_port] == '22'
55
53
  @external_ip = rule[:nat_external_ip]
56
54
  @external_port = rule[:nat_external_port]
57
55
  break
@@ -87,92 +87,110 @@ module VagrantPlugins
87
87
  # FIXME: this needs to be fixed to accomodate the bridged scenario
88
88
  # potentially showing only the assigned IPs in the VMs
89
89
 
90
- vapp_edge_ip = cnx.get_vapp_edge_public_ip(vapp_id)
91
- vapp_edge_rules = cnx.get_vapp_port_forwarding_rules(vapp_id)
92
- edge_gateway_rules = cnx.get_edge_gateway_rules(cfg.vdc_edge_gateway,
93
- cfg.vdc_id)
94
-
95
- # Create a new table for the network information
96
- network_table = Terminal::Table.new
97
- network_table.title = 'Vagrant vCloud Director Network Map'
98
-
99
- network_table << ['VM Name', 'Destination NAT Mapping', 'Enabled']
100
- network_table << :separator
101
-
102
- # Fetching Destination NAT Rules for each vApp/Edge/VM/Mapping
103
- edge_gateway_rules.each do |edge_gateway_rule|
104
- vapp_edge_rules.each do |vapp_edge_rule|
105
-
106
- # Only check DNAT and src/dst
107
- if edge_gateway_rule[:rule_type] == 'DNAT' &&
108
- edge_gateway_rule[:original_ip] == cfg.vdc_edge_gateway_ip &&
109
- edge_gateway_rule[:translated_ip] == vapp_edge_ip
110
-
111
- # Loop on every VM in the vApp
112
- vapp[:vms_hash].each do |vm|
113
- # Only Map valid vAppEdge scope to VM scope
114
- vm_scope = vm[1][:vapp_scoped_local_id]
115
- vapp_edge_scope = vapp_edge_rule[:vapp_scoped_local_id]
116
-
117
- if vm_scope == vapp_edge_scope
118
-
119
- # Generate DNAT Mappings for the valid machines
120
- # If rules don't match, you will not see them !
121
- network_table << [
122
- "#{vm[0]}",
123
- "#{cfg.vdc_edge_gateway_ip}:" +
124
- "#{vapp_edge_rule[:nat_external_port]}" +
125
- " -> #{vapp_edge_ip}:" +
126
- "#{vapp_edge_rule[:nat_external_port]}" +
127
- " -> #{vm[1][:addresses][0]}:" +
128
- "#{vapp_edge_rule[:nat_internal_port]}",
129
- edge_gateway_rule[:is_enabled]
130
- ]
90
+ if !cfg.network_bridge.nil?
91
+
92
+ # Create a new table for the network information
93
+ network_table = Terminal::Table.new
94
+ network_table.title = 'Network Map'
95
+
96
+ network_table << ['VM Name', 'IP Address', 'Connection']
97
+ network_table << :separator
98
+
99
+ # ap vapp[:vms_hash]
100
+
101
+ vapp[:vms_hash].each do |vm|
102
+ # ap vm
103
+
104
+ network_table << [vm[0], vm[1][:addresses][0], 'Direct']
105
+ end
106
+ else
107
+
108
+ vapp_edge_ip = cnx.get_vapp_edge_public_ip(vapp_id)
109
+ vapp_edge_rules = cnx.get_vapp_port_forwarding_rules(vapp_id)
110
+ edge_gateway_rules = cnx.get_edge_gateway_rules(cfg.vdc_edge_gateway,
111
+ cfg.vdc_id)
112
+
113
+ # Create a new table for the network information
114
+ network_table = Terminal::Table.new
115
+ network_table.title = 'Vagrant vCloud Director Network Map'
116
+
117
+ network_table << ['VM Name', 'Destination NAT Mapping', 'Enabled']
118
+ network_table << :separator
119
+
120
+ # Fetching Destination NAT Rules for each vApp/Edge/VM/Mapping
121
+ edge_gateway_rules.each do |edge_gateway_rule|
122
+ vapp_edge_rules.each do |vapp_edge_rule|
123
+
124
+ # Only check DNAT and src/dst
125
+ if edge_gateway_rule[:rule_type] == 'DNAT' &&
126
+ edge_gateway_rule[:original_ip] == cfg.vdc_edge_gateway_ip &&
127
+ edge_gateway_rule[:translated_ip] == vapp_edge_ip
128
+
129
+ # Loop on every VM in the vApp
130
+ vapp[:vms_hash].each do |vm|
131
+ # Only Map valid vAppEdge scope to VM scope
132
+ vm_scope = vm[1][:vapp_scoped_local_id]
133
+ vapp_edge_scope = vapp_edge_rule[:vapp_scoped_local_id]
134
+
135
+ if vm_scope == vapp_edge_scope
136
+
137
+ # Generate DNAT Mappings for the valid machines
138
+ # If rules don't match, you will not see them !
139
+ network_table << [
140
+ "#{vm[0]}",
141
+ "#{cfg.vdc_edge_gateway_ip}:" +
142
+ "#{vapp_edge_rule[:nat_external_port]}" +
143
+ " -> #{vapp_edge_ip}:" +
144
+ "#{vapp_edge_rule[:nat_external_port]}" +
145
+ " -> #{vm[1][:addresses][0]}:" +
146
+ "#{vapp_edge_rule[:nat_internal_port]}",
147
+ edge_gateway_rule[:is_enabled]
148
+ ]
149
+ end
131
150
  end
132
151
  end
133
152
  end
134
153
  end
135
- end
136
154
 
137
- # Fetching Source NAT Rules for the vApp
138
- network_table << :separator
139
- network_table << ['Network Name', 'Source NAT Mapping', 'Enabled']
140
- network_table << :separator
141
-
142
- edge_gateway_rules.each do |edge_gateway_rule|
143
- # Only check SNAT and src/dst
144
- if edge_gateway_rule[:rule_type] == 'SNAT' &&
145
- edge_gateway_rule[:original_ip] == vapp_edge_ip &&
146
- edge_gateway_rule[:translated_ip] == cfg.vdc_edge_gateway_ip
147
-
148
- network_table << [
149
- edge_gateway_rule[:interface_name],
150
- "#{vapp_edge_ip} -> #{cfg.vdc_edge_gateway_ip}",
151
- edge_gateway_rule[:is_enabled]
152
- ]
155
+ # Fetching Source NAT Rules for the vApp
156
+ network_table << :separator
157
+ network_table << ['Network Name', 'Source NAT Mapping', 'Enabled']
158
+ network_table << :separator
159
+
160
+ edge_gateway_rules.each do |edge_gateway_rule|
161
+ # Only check SNAT and src/dst
162
+ if edge_gateway_rule[:rule_type] == 'SNAT' &&
163
+ edge_gateway_rule[:original_ip] == vapp_edge_ip &&
164
+ edge_gateway_rule[:translated_ip] == cfg.vdc_edge_gateway_ip
165
+
166
+ network_table << [
167
+ edge_gateway_rule[:interface_name],
168
+ "#{vapp_edge_ip} -> #{cfg.vdc_edge_gateway_ip}",
169
+ edge_gateway_rule[:is_enabled]
170
+ ]
171
+ end
153
172
  end
154
- end
155
173
 
156
- # Fetching Edge Gateway Firewall Rules
157
- network_table << :separator
158
- network_table << ['Rule# - Description', 'Firewall Rules', 'Enabled']
159
- network_table << :separator
160
- edge_gateway_rules.each do |edge_gateway_rule|
161
- # Only add firewall rules
162
- if edge_gateway_rule[:rule_type] == 'Firewall'
163
- network_table << [
164
- "#{edge_gateway_rule[:id]} - " +
165
- "(#{edge_gateway_rule[:description]})",
166
- "#{edge_gateway_rule[:policy]} " +
167
- "SRC:#{edge_gateway_rule[:source_ip]}:" +
168
- "#{edge_gateway_rule[:source_portrange]} to " +
169
- "DST:#{edge_gateway_rule[:destination_ip]}:" +
170
- "#{edge_gateway_rule[:destination_portrange]}",
171
- "#{edge_gateway_rule[:is_enabled]}"
172
- ]
174
+ # Fetching Edge Gateway Firewall Rules
175
+ network_table << :separator
176
+ network_table << ['Rule# - Description', 'Firewall Rules', 'Enabled']
177
+ network_table << :separator
178
+ edge_gateway_rules.each do |edge_gateway_rule|
179
+ # Only add firewall rules
180
+ if edge_gateway_rule[:rule_type] == 'Firewall'
181
+ network_table << [
182
+ "#{edge_gateway_rule[:id]} - " +
183
+ "(#{edge_gateway_rule[:description]})",
184
+ "#{edge_gateway_rule[:policy]} " +
185
+ "SRC:#{edge_gateway_rule[:source_ip]}:" +
186
+ "#{edge_gateway_rule[:source_portrange]} to " +
187
+ "DST:#{edge_gateway_rule[:destination_ip]}:" +
188
+ "#{edge_gateway_rule[:destination_portrange]}",
189
+ "#{edge_gateway_rule[:is_enabled]}"
190
+ ]
191
+ end
173
192
  end
174
193
  end
175
-
176
194
  # Print the Network Table
177
195
  puts
178
196
  puts network_table
@@ -1251,7 +1251,7 @@ module VagrantPlugins
1251
1251
  nat_rule_1 = Nokogiri::XML::Node.new 'NatRule', response
1252
1252
  rule_type = Nokogiri::XML::Node.new 'RuleType', response
1253
1253
  rule_type.content = 'DNAT'
1254
- nat_rule_1.add_child ruleType
1254
+ nat_rule_1.add_child rule_type
1255
1255
 
1256
1256
  is_enabled = Nokogiri::XML::Node.new 'IsEnabled', response
1257
1257
  is_enabled.content = 'true'
@@ -1268,7 +1268,7 @@ module VagrantPlugins
1268
1268
 
1269
1269
  original_ip = Nokogiri::XML::Node.new 'OriginalIp', response
1270
1270
  original_ip.content = edge_gateway_ip
1271
- gatewayNatRule.add_child original_ip
1271
+ gateway_nat_rule.add_child original_ip
1272
1272
 
1273
1273
  original_port = Nokogiri::XML::Node.new 'OriginalPort', response
1274
1274
  original_port.content = 'any'
@@ -1301,11 +1301,11 @@ module VagrantPlugins
1301
1301
 
1302
1302
  is_enabled = Nokogiri::XML::Node.new 'IsEnabled', response
1303
1303
  is_enabled.content = 'true'
1304
- nat_rule_2.add_child isEnabled
1304
+ nat_rule_2.add_child is_enabled
1305
1305
 
1306
1306
  gateway_nat_rule = Nokogiri::XML::Node.new 'GatewayNatRule',
1307
1307
  response
1308
- nat_rule_2.add_child gatewayNatRule
1308
+ nat_rule_2.add_child gateway_nat_rule
1309
1309
 
1310
1310
  interface = Nokogiri::XML::Node.new 'Interface', response
1311
1311
  interface['href'] = edge_network_id
@@ -1314,7 +1314,7 @@ module VagrantPlugins
1314
1314
 
1315
1315
  original_ip = Nokogiri::XML::Node.new 'OriginalIp', response
1316
1316
  original_ip.content = edge_vapp_ip
1317
- gatewayNatRule.add_child original_ip
1317
+ gateway_nat_rule.add_child original_ip
1318
1318
 
1319
1319
  translated_ip = Nokogiri::XML::Node.new 'TranslatedIp', response
1320
1320
  translated_ip.content = edge_gateway_ip
@@ -1444,7 +1444,7 @@ module VagrantPlugins
1444
1444
 
1445
1445
  end
1446
1446
  if node.css('RuleType').text == 'SNAT'
1447
- gw_node = node.css('gatewayNatRule')
1447
+ gw_node = node.css('GatewayNatRule')
1448
1448
  nat_fw_rules << {
1449
1449
  :rule_type => 'SNAT',
1450
1450
  :interface_name => gw_node.css('Interface').first['name'],
@@ -1,5 +1,5 @@
1
1
  module VagrantPlugins
2
2
  module VCloud
3
- VERSION = '0.2.0'
3
+ VERSION = '0.2.1'
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vagrant-vcloud
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Fabio Rapposelli
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-04-02 00:00:00.000000000 Z
12
+ date: 2014-04-03 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: i18n