chef-provisioning-vsphere 2.0.4 → 2.0.5
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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: db6d5c3d59108b03b2a029d28ea964177b662d3f
|
4
|
+
data.tar.gz: 002c4faa621c11d98ac61aa0520cf01beda33f5e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 19483a0d6ce2f112ddaa71021f01bb5e6bb01079d7ca48e060201fe167666e004b4476154d07b709be62fb02ad6e76ec0c0730c35566e4b7fa7d23ddc40c69fd
|
7
|
+
data.tar.gz: bd2984e7b7daf67e1acf20d03969346cb949c423566adce6a45bf70f663da1d5aa14591b166b0846fa7e59bef2ea1a0667e28f0bc3a65430b44992c08e840d49
|
data/.gitignore
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,7 +1,19 @@
|
|
1
1
|
# Change Log
|
2
2
|
|
3
|
-
## [2.0.
|
4
|
-
[Full Changelog](https://github.com/chef-partners/chef-provisioning-vsphere/compare/v2.0.
|
3
|
+
## [2.0.5](https://github.com/chef-partners/chef-provisioning-vsphere/tree/2.0.5) (2017-06-06)
|
4
|
+
[Full Changelog](https://github.com/chef-partners/chef-provisioning-vsphere/compare/v2.0.4...2.0.5)
|
5
|
+
|
6
|
+
**Closed issues:**
|
7
|
+
|
8
|
+
- kitchen destroy not destroying machines [\#37](https://github.com/chef-partners/chef-provisioning-vsphere/issues/37)
|
9
|
+
|
10
|
+
**Merged pull requests:**
|
11
|
+
|
12
|
+
- @vm\_helper.ip is this global structure, which gets set to the current… [\#41](https://github.com/chef-partners/chef-provisioning-vsphere/pull/41) ([jjlimepoint](https://github.com/jjlimepoint))
|
13
|
+
- Handle blank guest IP address that generates multiple different errors. [\#38](https://github.com/chef-partners/chef-provisioning-vsphere/pull/38) ([Belogix](https://github.com/Belogix))
|
14
|
+
|
15
|
+
## [v2.0.4](https://github.com/chef-partners/chef-provisioning-vsphere/tree/v2.0.4) (2017-05-24)
|
16
|
+
[Full Changelog](https://github.com/chef-partners/chef-provisioning-vsphere/compare/v2.0.3...v2.0.4)
|
5
17
|
|
6
18
|
**Merged pull requests:**
|
7
19
|
|
@@ -283,14 +283,14 @@ module ChefProvisioningVsphere
|
|
283
283
|
|
284
284
|
machine = machine_for(machine_spec, machine_options)
|
285
285
|
|
286
|
-
setup_extra_nics(action_handler, bootstrap_options, vm, machine)
|
286
|
+
setup_extra_nics(action_handler, bootstrap_options, vm, machine, machine_spec)
|
287
287
|
|
288
288
|
if has_static_ip(bootstrap_options) && !is_windows?(vm)
|
289
289
|
setup_ubuntu_dns(machine, bootstrap_options, machine_spec)
|
290
290
|
end
|
291
291
|
|
292
292
|
## Check if true available after added nic
|
293
|
-
@vm_helper.open_port?(
|
293
|
+
@vm_helper.open_port?(machine_spec.location["ipaddress"], @vm_helper.port) unless machine_spec.location["ipaddress"].nil?
|
294
294
|
machine
|
295
295
|
end
|
296
296
|
|
@@ -300,7 +300,7 @@ module ChefProvisioningVsphere
|
|
300
300
|
# @param [Object] bootstrap_options taken from Chef provisioning for all the bootstrap options.
|
301
301
|
# @param [Object] vm The VM object.
|
302
302
|
# @param [Object] machine The machine object.
|
303
|
-
def setup_extra_nics(action_handler, bootstrap_options, vm, machine)
|
303
|
+
def setup_extra_nics(action_handler, bootstrap_options, vm, machine, machine_spec)
|
304
304
|
networks = bootstrap_options[:network_name]
|
305
305
|
networks = [networks] if networks.is_a?(String)
|
306
306
|
return if networks.nil? || networks.count < 2
|
@@ -311,7 +311,7 @@ module ChefProvisioningVsphere
|
|
311
311
|
bootstrap_options,
|
312
312
|
vm
|
313
313
|
)
|
314
|
-
if is_windows?(vm) && !new_nics.nil? && @vm_helper.open_port?(
|
314
|
+
if is_windows?(vm) && !new_nics.nil? && @vm_helper.open_port?(machine_spec.location["ipaddress"], @vm_helper.port)
|
315
315
|
new_nics.each do |nic|
|
316
316
|
nic_label = nic.device.deviceInfo.label
|
317
317
|
machine.execute_always(
|
@@ -346,6 +346,7 @@ module ChefProvisioningVsphere
|
|
346
346
|
# or the ip reported back by the vm if using dhcp
|
347
347
|
# it *may* be nil if just cloned
|
348
348
|
vm_ip = ip_to_bootstrap(bootstrap_options, vm) || vm.guest.ipAddress
|
349
|
+
machine_spec.location["ipaddress"] = vm_ip
|
349
350
|
transport = nil
|
350
351
|
unless vm_ip.nil?
|
351
352
|
transport = transport_for(machine_spec, bootstrap_options[:ssh], vm_ip)
|
@@ -356,7 +357,7 @@ module ChefProvisioningVsphere
|
|
356
357
|
end
|
357
358
|
machine_spec.location["ipaddress"] = vm_ip # vm.guest.ipAddress vmWare ip_address here can be 0.0.0.0
|
358
359
|
action_handler.report_progress(
|
359
|
-
"IP address obtained: #{machine_spec.location[
|
360
|
+
"IP address obtained: #{machine_spec.location["ipaddress"]}"
|
360
361
|
)
|
361
362
|
end
|
362
363
|
|
@@ -390,6 +391,7 @@ module ChefProvisioningVsphere
|
|
390
391
|
# @param [Object] machine_spec The spec required to talk to the VM.
|
391
392
|
def attempt_ip(machine_options, action_handler, vm, machine_spec)
|
392
393
|
vm_ip = ip_to_bootstrap(machine_options[:bootstrap_options], vm)
|
394
|
+
machine_spec.location["ipaddress"] = vm_ip
|
393
395
|
|
394
396
|
wait_for_ip(vm, machine_options, machine_spec, action_handler)
|
395
397
|
|
@@ -457,11 +459,12 @@ module ChefProvisioningVsphere
|
|
457
459
|
ip_to_bootstrap(bootstrap_options, vm)
|
458
460
|
ready_timeout = machine_options[:ready_timeout] || 300
|
459
461
|
msg1 = "waiting up to #{ready_timeout} seconds for customization"
|
460
|
-
msg2 = " and find #{
|
462
|
+
msg2 = " and find #{machine_spec.location["ipaddress"]}" unless machine_spec.location["ipaddress"].nil? # unless vm_ip == vm.guest.ipAddress # RuntimeError: can't modify frozen String
|
461
463
|
msg = [msg1, msg2].join
|
462
464
|
action_handler.report_progress msg
|
463
465
|
|
464
466
|
vm_ip = ip_to_bootstrap(bootstrap_options, vm) || vm.guest.ipAddress
|
467
|
+
machine_spec.location["ipaddress"] = vm_ip
|
465
468
|
until transport_for(
|
466
469
|
machine_spec,
|
467
470
|
machine_options[:bootstrap_options][:ssh],
|
@@ -471,6 +474,7 @@ module ChefProvisioningVsphere
|
|
471
474
|
"IP addresses found: #{all_ips_for(vm)}"
|
472
475
|
)
|
473
476
|
vm_ip = ip_to_bootstrap(bootstrap_options, vm) || vm.guest.ipAddress
|
477
|
+
machine_spec.location["ipaddress"] = vm_ip
|
474
478
|
if has_ip?(vm_ip, vm)
|
475
479
|
transport_for(
|
476
480
|
machine_spec,
|
@@ -869,24 +873,25 @@ module ChefProvisioningVsphere
|
|
869
873
|
# @param [Object] vm The VM object from Chef-Provisioning
|
870
874
|
def ip_to_bootstrap(bootstrap_options, vm)
|
871
875
|
@vm_helper.find_port?(vm, bootstrap_options) unless vm_helper.port?
|
876
|
+
vm_ip = nil
|
872
877
|
if has_static_ip(bootstrap_options)
|
873
878
|
if bootstrap_options[:customization_spec].is_a?(String)
|
874
879
|
spec = vsphere_helper.find_customization_spec(bootstrap_options[:customization_spec])
|
875
|
-
|
880
|
+
vm_ip = spec.nicSettingMap[0].adapter.ip.ipAddress
|
876
881
|
else
|
877
882
|
## Check if true available
|
878
|
-
|
879
|
-
print "." until @vm_helper.open_port?(
|
883
|
+
vm_ip = bootstrap_options[:customization_spec][:ipsettings][:ip] unless vm_helper.ip?
|
884
|
+
print "." until @vm_helper.open_port?(vm_ip, @vm_helper.port, 1)
|
880
885
|
end
|
881
886
|
else
|
882
887
|
if use_ipv4_during_bootstrap?(bootstrap_options)
|
883
|
-
until @vm_helper.open_port?(
|
888
|
+
until @vm_helper.open_port?(vm_ip, @vm_helper.port, 1)
|
884
889
|
wait_for_ipv4(bootstrap_ip_timeout(bootstrap_options), vm)
|
885
890
|
end
|
886
891
|
end
|
887
|
-
|
892
|
+
vm_ip = vm.guest.ipAddress until vm_guest_ip?(vm) && @vm_helper.open_port?(vm_ip, @vm_helper.port, 1) # Don't set empty ip
|
888
893
|
end
|
889
|
-
|
894
|
+
vm_ip.to_s
|
890
895
|
end
|
891
896
|
|
892
897
|
# Force IPv4 a bootstrap, default: false
|
@@ -922,10 +927,10 @@ module ChefProvisioningVsphere
|
|
922
927
|
while start_search_ip && (tries += 1) <= max_tries
|
923
928
|
print "."
|
924
929
|
sleep sleep_time
|
925
|
-
|
926
|
-
start_search_ip = false if @vm_helper.open_port?(
|
930
|
+
vm_ip = vm.guest.ipAddress if vm_guest_ip?(vm)
|
931
|
+
start_search_ip = false if @vm_helper.open_port?(vm_ip, @vm_helper.port, 1)
|
927
932
|
end
|
928
|
-
raise "Timed out waiting for ipv4 address!" if tries > max_tries
|
933
|
+
raise "Timed out waiting for ipv4 address!" if tries > max_tries
|
929
934
|
puts "Found ipv4 address!"
|
930
935
|
true
|
931
936
|
end
|
@@ -57,6 +57,7 @@ module ChefProvisioningVsphere
|
|
57
57
|
# @param [Integer] timeout The number of seconds before timeout.
|
58
58
|
# @return [true] Returns true when the socket is available to connect.
|
59
59
|
def open_port?(host, port, timeout = 5)
|
60
|
+
return false if host.to_s.empty?
|
60
61
|
true if ::Socket.tcp(host, port, connect_timeout: timeout)
|
61
62
|
rescue *RESCUE_EXCEPTIONS_ON_ESTABLISH
|
62
63
|
false
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: chef-provisioning-vsphere
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
4
|
+
version: 2.0.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- CenturyLink Cloud
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2017-
|
12
|
+
date: 2017-06-06 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rbvmomi
|