vagrant-vmware-esxi 2.2.2 → 2.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a4741f102e0fc5afd6b6d0ee886f6b5d863b49e4
4
- data.tar.gz: 8f3519566a7ba2c5381823f9e4b9a0def26415e9
3
+ metadata.gz: caee10cdf29fc60a9893a73f38a6c8df05327aed
4
+ data.tar.gz: 9c6a5801595b8b879a125c4ff1efed3498d66966
5
5
  SHA512:
6
- metadata.gz: e0e41dfa63d8f38cec8598bed5afddbd13d8baeb78051dedc0d644365539b9a57ba5ea53d16795a7dfb3dc59f73a1deb546524170a42c2cd9f74636018c61cea
7
- data.tar.gz: f84886ad62eb6a7bb93817722081fa2bdd32550a6c6ed5ed52c85835613440f6d63394ac373ddb6cd6e8e292e4c432c10ad62184cc51119a675e3ae32299b11a
6
+ metadata.gz: 9f454dd1e88570b3d53ed80105f851959ea562e5c747ebe11af49a8f05a3973f41b0aa33759794c990fc9f405a49a8cff619c3f6603a5ad2d1fe7ec842e347a0
7
+ data.tar.gz: 2342ce2974e24215521eae84de5946264c6af6a5717d041ca8dc65c31db9399fa99dd710d82ae97b6ffdfb7e35c38971e09853bf036cf9f3888330e11d69f981
data/README.md CHANGED
@@ -81,13 +81,13 @@ Vagrant.configure('2') do |config|
81
81
  # the box/vm doesn't have the vmware tools installed.
82
82
  #
83
83
  # Here are some of the MANY examples....
84
- config.vm.box = 'generic/centos7'
84
+ config.vm.box = 'hashicorp/precise64'
85
+ #config.vm.box = 'generic/centos7'
85
86
  #config.vm.box = 'generic/centos6'
86
87
  #config.vm.box = 'generic/fedora27'
87
88
  #config.vm.box = 'generic/freebsd11'
88
89
  #config.vm.box = 'generic/ubuntu1710'
89
90
  #config.vm.box = 'generic/debian9'
90
- #config.vm.box = 'hashicorp/precise64'
91
91
  #config.vm.box = 'steveant/CentOS-7.0-1406-Minimal-x64'
92
92
  #config.vm.box = 'geerlingguy/centos7'
93
93
  #config.vm.box = 'geerlingguy/ubuntu1604'
@@ -200,8 +200,9 @@ Vagrant.configure('2') do |config|
200
200
 
201
201
  # OPTIONAL. Create additional storage for guests.
202
202
  # You can specify an array of up to 13 virtual disk sizes (in GB) that you
203
- # would like the provider to create once the guest has been created.
204
- #esxi.guest_storage = [10,20]
203
+ # would like the provider to create once the guest has been created. You
204
+ # can optionally specify the size and datastore using a hash.
205
+ #esxi.guest_storage = [ 10, 20, { size: 30, datastore: 'datastore1' } ]
205
206
 
206
207
  # OPTIONAL. specify snapshot options.
207
208
  #esxi.guest_snapshot_includememory = 'true'
@@ -229,6 +230,10 @@ Vagrant.configure('2') do |config|
229
230
  # vm's and packages.
230
231
  #esxi.local_allow_overwrite = 'True'
231
232
 
233
+ # Advanced Users.
234
+ # If set to 'True', all WARNINGS will produce a FAILURE and vagrant will stop.
235
+ #esxi.local_failonwarning = 'True'
236
+
232
237
  # Plugin debug output.
233
238
  # Please send any bug reports with debug this output...
234
239
  #esxi.debug = 'true'
@@ -267,16 +272,21 @@ Known issues with vmware_esxi
267
272
  -----------------------------
268
273
  * The boxes must have open-vm-tools or vmware-tools installed to properly transition to the 'running' state.
269
274
  * Invalid settings (bad IP address, netmask, MAC address, guest_custom_vmx_settings) could cause 'vagrant up' to fail. Review vSphere console and/or ESXi logs to help debug why it failed.
270
- * Cleanup doesn't always destroy a VM that has been partially built. Use the local_allow_overwrite = 'True' option if you need to force a rebuild, or you can delete the vm using the VSphere client.
275
+ * Cleanup doesn't always destroy a VM that has been partially built. To resolve this. Use the local_allow_overwrite = 'True' option if you want to force a rebuild, or you can delete the vm using the VSphere client.
271
276
  * ovftool installer for windows doesn't put ovftool.exe in your path. You can manually set your path, or install ovftool in the \HashiCorp\Vagrant\bin directory.
272
277
  * Vagrant NFS synced folders is not reliable on multi-homed clients (your vagrant pc/laptop/host). There is no 100% reliable way to know which IP is the correct, most reliable, most desirable, etc...
273
- * V2.0.1 - 2.0.5 is not compatible with Windows (to support ed25519 ssh keys, net-ssh requires libsodium but it's not compatible with Windows). ed25519 support has been removed for now. It will be added back when net-ssh 5.x goes out of beta.
278
+ * Plugin V2.0.1 - 2.0.5 is not compatible with Windows (to support ed25519 ssh keys, net-ssh requires libsodium but it's not compatible with Windows). ed25519 support has been removed for now. It will be added back when net-ssh 5.x goes out of beta.
279
+ * Vagrant 2.1.0 is not compatible with this plugin. Avoid Vagrant 2.1.0.
274
280
  * Cygwin & gitbash have console issues. Ruby module io/console does not have support. https://github.com/ruby/io-console/issues/2
275
- * Setting the hostname might fail on some boxes. Use most recent version of Vagrant for best results.
281
+ * Setting the hostname on some boxes can cause 'vagrant up' to fail (generic/centos7 for example). Avoid buggy boxes like generic/centos7, fix the box networking and repackage, or do not set the hostname via Vagrant.
276
282
 
277
283
 
278
284
  Version History
279
285
  ---------------
286
+ * 2.3.0 Add support to specify DiskStore for guest_storage virtual disks.
287
+ Add local_failonwarning Vagrantfil option.
288
+ Fix, make plugin more compatible with Ovftool 4.3.0
289
+
280
290
  * 2.2.2 Fix, Avoid crash if esxi_password is nil.
281
291
 
282
292
  * 2.2.1 Fix, clone_from_vm not working on MAC.
@@ -12,13 +12,13 @@ Vagrant.configure('2') do |config|
12
12
  # the system doesn't have the vmware tools installed.
13
13
  #
14
14
  # Here are some of the MANY examples....
15
- config.vm.box = 'generic/centos7'
15
+ config.vm.box = 'hashicorp/precise64'
16
+ #config.vm.box = 'generic/centos7'
16
17
  #config.vm.box = 'generic/centos6'
17
18
  #config.vm.box = 'generic/fedora26'
18
19
  #config.vm.box = 'generic/freebsd11'
19
20
  #config.vm.box = 'generic/ubuntu1710'
20
21
  #config.vm.box = 'generic/debian9'
21
- #config.vm.box = 'hashicorp/precise64'
22
22
  #config.vm.box = 'steveant/CentOS-7.0-1406-Minimal-x64'
23
23
  #config.vm.box = 'geerlingguy/centos7'
24
24
  #config.vm.box = 'geerlingguy/ubuntu1604'
@@ -172,11 +172,12 @@ Vagrant.configure('2') do |config|
172
172
 
173
173
  # OPTIONAL. Create additional storage for guests.
174
174
  # You can specify an array of upto 14 virtual disk sizes (in GB) that you
175
- # would like the provider to create once the guest has been created. The
175
+ # would like the provider to create once the guest has been created. You
176
+ # can optionally specify the size and datastore using a hash. The
176
177
  # virtual disks will be created and added to the guest, however you must
177
178
  # provision it. The disks can be used for lvm, partitioned, raw disk
178
179
  # for data bases, etc...
179
- #esxi.guest_storage = [10,20]
180
+ #esxi.guest_storage = [ 10, 20, { size: 30, datastore: 'datastore1' } ]
180
181
 
181
182
  # OPTIONAL & RISKY. Specify up to 4 MAC addresses
182
183
  # The default is ovftool to automatically generate a MAC address.
@@ -250,6 +251,12 @@ Vagrant.configure('2') do |config|
250
251
  # This will also overwrite your box when using vagrant package.
251
252
  #esxi.local_allow_overwrite = 'True'
252
253
 
254
+ # Advanced users.
255
+ # If unspecified or set to 'False', all WARNINGS will produce a WARNING and vagrant
256
+ # will continue. If set to 'True', all WARNINGS will produce a FAILURE and
257
+ # vagrant will stop.
258
+ #esxi.local_failonwarning = 'True'
259
+
253
260
  # Plugin debug output.
254
261
  # Send bug reports with debug output...
255
262
  #esxi.debug = 'true'
@@ -4,8 +4,10 @@ require 'net/ssh'
4
4
  module VagrantPlugins
5
5
  module ESXi
6
6
  module Action
7
- # This action creates a new vmx file (using overwrides from config file),
8
- # then creates a new VM guest using ovftool.
7
+ # This action creates a new vmx file using a box or VM as it's source.
8
+ # Modifies the vmx file with customizations.
9
+ # Creates a new VM guest using ovftool.
10
+ # Does final tweeks to the VM, grow boot disk, create additional storage, etc...
9
11
  class CreateVM
10
12
  def initialize(app, _env)
11
13
  @app = app
@@ -67,7 +69,12 @@ module VagrantPlugins
67
69
  if config.clone_from_vm.nil?
68
70
  vmx_file = Dir.glob("#{src_dir}/*.vmx").first
69
71
  @logger.info("vagrant-vmware-esxi, createvm: vmx_file: #{vmx_file}")
70
- source_vmx_contents = File.read(vmx_file)
72
+ begin
73
+ source_vmx_contents = File.read(vmx_file)
74
+ rescue
75
+ raise Errors::GeneralError,
76
+ message: "Unable to open #{src_dir}/*.vmx"
77
+ end
71
78
  else
72
79
  begin
73
80
  tmpdir = Dir.mktmpdir
@@ -76,12 +83,18 @@ module VagrantPlugins
76
83
  message: "Unable to create tmp dir #{tmpdir}"
77
84
  end
78
85
 
79
- ovf_debug = '--X:logLevel=info --X:logToConsole' if config.debug =~ %r{ovftool}i
86
+ if config.debug =~ %r{ovftool}i
87
+ ovf_debug = '--X:logLevel=info --X:logToConsole'
88
+ else
89
+ ovf_debug = "--X:logLevel=info --X:logFile=#{tmpdir}/ovftool.log"
90
+ end
91
+
80
92
  #
81
93
  # Source from Clone
82
94
  clone_from_vm_path = "vi://#{config.esxi_username}:#{config.encoded_esxi_password}@#{config.esxi_hostname}/#{config.clone_from_vm}"
83
95
  ovf_cmd = "ovftool --noSSLVerify --overwrite --X:useMacNaming=false "\
84
96
  "--powerOffTarget --noDisks --targetType=vmx #{ovf_debug} "\
97
+ "--acceptAllEulas "\
85
98
  "#{clone_from_vm_path} #{tmpdir}"
86
99
  if config.debug =~ %r{password}i
87
100
  @logger.info("vagrant-vmware-esxi, createvm: ovf_cmd #{ovf_cmd}")
@@ -145,6 +158,7 @@ module VagrantPlugins
145
158
  message: 'WARNING : '\
146
159
  "esxi_disk_store not set, using "\
147
160
  "\"--- Least Used ---\"")
161
+ @iswarning = 'true'
148
162
  else
149
163
  desired_ds = config.esxi_disk_store.to_s
150
164
  end
@@ -161,11 +175,49 @@ module VagrantPlugins
161
175
  message: 'WARNING : '\
162
176
  "Disk Store \"#{config.esxi_disk_store}\" not "\
163
177
  "found, using #{@guestvm_dsname}")
178
+ @iswarning = 'true'
164
179
  end
165
180
 
166
181
  @logger.info('vagrant-vmware-esxi, createvm: '\
167
182
  "@guestvm_dsname: #{@guestvm_dsname}")
168
183
 
184
+ #
185
+ # Validate guest Storage
186
+ if config.guest_storage.is_a? Array
187
+ new_guest_storage = []
188
+ 0.upto(config.guest_storage.count - 1) do |index|
189
+ store = config.guest_storage[index]
190
+ if store.is_a? Hash
191
+ store_size = store[:size].to_i
192
+ guest_disk_datastore = store[:datastore].nil? ? @guestvm_dsname : store[:datastore]
193
+ r = ssh.exec!("test -d /vmfs/volumes/#{guest_disk_datastore}")
194
+ if (r.exitstatus != 0) || (guest_disk_datastore.length < 1)
195
+ env[:ui].info I18n.t('vagrant_vmware_esxi.vagrant_vmware_esxi_message',
196
+ message: 'WARNING : '\
197
+ "Disk DataStore[#{index}]: #{guest_disk_datastore} not "\
198
+ "found, using \"#{@guestvm_dsname}\"")
199
+ @iswarning = 'true'
200
+ guest_disk_datastore = @guestvm_dsname
201
+ end
202
+ else
203
+ store_size = store.to_i
204
+ guest_disk_datastore = @guestvm_dsname
205
+ end
206
+
207
+ if store_size < 1
208
+ env[:ui].info I18n.t('vagrant_vmware_esxi.vagrant_vmware_esxi_message',
209
+ message: 'WARNING : Ignored invalid '\
210
+ "storage size #{config.guest_storage[index]} at "\
211
+ "index[#{index}]")
212
+ @iswarning = 'true'
213
+ new_guest_storage[index] = { size: "invalid", datastore: guest_disk_datastore }
214
+ else
215
+ new_guest_storage[index] = { size: store_size, datastore: guest_disk_datastore }
216
+ end
217
+ end
218
+ config.guest_storage = new_guest_storage
219
+ end
220
+
169
221
  #
170
222
  # Figure out network
171
223
  #
@@ -215,6 +267,7 @@ module VagrantPlugins
215
267
  message: 'WARNING : '\
216
268
  "esxi_virtual_network[#{networkID}] not "\
217
269
  "set, using #{availnetworks.first}")
270
+ @iswarning = 'true'
218
271
  elsif availnetworks.include? aVirtNet
219
272
  # Network interface is good
220
273
  @guestvm_network << aVirtNet
@@ -231,6 +284,7 @@ module VagrantPlugins
231
284
  message: 'WARNING : '\
232
285
  "#{aVirtNet_msg} not "\
233
286
  "found, using #{availnetworks.first}")
287
+ @iswarning = 'true'
234
288
  end
235
289
  networkID += 1
236
290
  break if networkID >= 4
@@ -256,6 +310,7 @@ module VagrantPlugins
256
310
  message: 'WARNING : '\
257
311
  "GuestOS: #{config.guest_guestos} not "\
258
312
  "supported, using box/ovftool defaults")
313
+ @iswarning = 'true'
259
314
  end
260
315
  end
261
316
 
@@ -267,6 +322,7 @@ module VagrantPlugins
267
322
  message: 'WARNING : '\
268
323
  "Invalid guest_virtualhw_version: #{config.guest_virtualhw_version},"\
269
324
  "using ovftool defaults")
325
+ @iswarning = 'true'
270
326
  config.guest_virtualhw_version = nil
271
327
  end
272
328
  end
@@ -279,6 +335,7 @@ module VagrantPlugins
279
335
  message: 'WARNING : '\
280
336
  "NIC type: #{config.guest_nic_type} not "\
281
337
  "found, using ovftool defaults.")
338
+ @iswarning = 'true'
282
339
  config.guest_nic_type = nil
283
340
  end
284
341
  end
@@ -383,6 +440,7 @@ module VagrantPlugins
383
440
  new_guest_mac_address[index] = "invalid"
384
441
  env[:ui].info I18n.t('vagrant_vmware_esxi.vagrant_vmware_esxi_message',
385
442
  message: "WARNING : Ignored invalid mac address at index[#{index}]")
443
+ @iswarning = 'true'
386
444
  end
387
445
  end
388
446
  end
@@ -400,28 +458,11 @@ module VagrantPlugins
400
458
  message: 'WARNING : '\
401
459
  "Disk type: #{config.guest_disk_type} not "\
402
460
  "found, using \"thin\"")
461
+ @iswarning = 'true'
403
462
  guest_disk_type = "thin"
404
463
  end
405
464
  end
406
465
 
407
- # Validate guest Storage
408
- if config.guest_storage.is_a? Array
409
- new_guest_storage = []
410
- 0.upto(config.guest_storage.count - 1) do |index|
411
- store_size = config.guest_storage[index].to_i
412
- if store_size < 1
413
- env[:ui].info I18n.t('vagrant_vmware_esxi.vagrant_vmware_esxi_message',
414
- message: 'WARNING : Ignored invalid '\
415
- "storage size #{config.guest_storage[index]} at "\
416
- "index[#{index}]")
417
- new_guest_storage[index] = "invalid"
418
- else
419
- new_guest_storage[index] = store_size
420
- end
421
- end
422
- config.guest_storage = new_guest_storage
423
- end
424
-
425
466
  # Validate local_lax setting (use relaxed (--lax) ovftool option)
426
467
  unless config.local_lax.nil?
427
468
  if config.local_lax == 'True'
@@ -444,7 +485,7 @@ module VagrantPlugins
444
485
  message: "Disk Store : #{@guestvm_dsname}")
445
486
  env[:ui].info I18n.t('vagrant_vmware_esxi.vagrant_vmware_esxi_message',
446
487
  message: "Resource Pool : #{esxi_resource_pool}")
447
- #
488
+
448
489
  env[:ui].info I18n.t('vagrant_vmware_esxi.vagrant_vmware_esxi_message',
449
490
  message: " --- Guest Summary ---")
450
491
  env[:ui].info I18n.t('vagrant_vmware_esxi.vagrant_vmware_esxi_message',
@@ -496,15 +537,24 @@ module VagrantPlugins
496
537
  env[:ui].info I18n.t('vagrant_vmware_esxi.vagrant_vmware_esxi_message',
497
538
  message: 'Allow Overwrite : True')
498
539
  end
540
+ unless config.local_failonwarning == 'False'
541
+ env[:ui].info I18n.t('vagrant_vmware_esxi.vagrant_vmware_esxi_message',
542
+ message: 'Fail on WARNING : True')
543
+ end
499
544
  env[:ui].info I18n.t('vagrant_vmware_esxi.vagrant_vmware_esxi_message',
500
545
  message: " --- Guest Build ---")
501
546
 
547
+ if (not @iswarning.nil?) and (config.local_failonwarning == 'True')
548
+ raise Errors::ESXiConfigError,
549
+ message: "Exit due to WARNING. See above for details."
550
+ end
502
551
  if config.clone_from_vm.nil?
503
552
  src_path = new_vmx_file
504
553
  else
505
554
  src_path = clone_from_vm_path
506
555
  end
507
556
  ovf_cmd = "ovftool --noSSLVerify #{overwrite_opts} #{ovf_debug} "\
557
+ "--acceptAllEulas "\
508
558
  "-dm=#{guest_disk_type} #{local_laxoption} "\
509
559
  "-ds=\"#{@guestvm_dsname}\" --name=\"#{desired_guest_name}\" "\
510
560
  "\"#{src_path}\" vi://#{config.esxi_username}:"\
@@ -572,12 +622,12 @@ module VagrantPlugins
572
622
  'grep vmPathName|grep -oE "\[.*\]"')
573
623
 
574
624
  dst_vmx_dir = ssh.exec!("vim-cmd vmsvc/get.config #{env[:machine].id} |\
575
- grep vmPathName|awk '{print $NF}'|awk -F'\/' '{print $1}'")
625
+ grep vmPathName|awk '{print $NF}'|awk -F'\/' '{print $1}'").strip
576
626
 
577
627
 
578
628
  dst_vmx_file = "/vmfs/volumes/"
579
629
  dst_vmx_file << dst_vmx_ds.gsub('[','').gsub(']','').strip + "/"
580
- esxi_guest_dir = dst_vmx_file + dst_vmx_dir.strip
630
+ esxi_guest_dir = dst_vmx_file + dst_vmx_dir
581
631
  dst_vmx_file << dst_vmx
582
632
 
583
633
  # Extend boot disk if required
@@ -595,8 +645,13 @@ module VagrantPlugins
595
645
  puts "cmd: #{cmd}" if config.debug =~ %r{true}i
596
646
  r = ssh.exec!(cmd)
597
647
  if r.exitstatus != 0
598
- env[:ui].info I18n.t('vagrant_vmware_esxi.vagrant_vmware_esxi_message',
599
- message: "WARNING : Unable to extend Boot Disk to #{config.guest_boot_disk_size}GB")
648
+ if config.local_failonwarning == 'True'
649
+ raise Errors::ESXiError,
650
+ message: "WARNING : Unable to extend Boot Disk to #{config.guest_boot_disk_size}GB"
651
+ else
652
+ env[:ui].info I18n.t('vagrant_vmware_esxi.vagrant_vmware_esxi_message',
653
+ message: "WARNING : Unable to extend Boot Disk to #{config.guest_boot_disk_size}GB")
654
+ end
600
655
  else
601
656
  env[:ui].info I18n.t('vagrant_vmware_esxi.vagrant_vmware_esxi_message',
602
657
  message: "Extend Boot dsk : #{config.guest_boot_disk_size}GB")
@@ -607,7 +662,11 @@ module VagrantPlugins
607
662
  if config.guest_storage.is_a? Array
608
663
  index = -1
609
664
  config.guest_storage.each do |store|
610
- store_size = store.to_i
665
+ puts "store[:size] : #{store[:size].to_s}"
666
+ store_size = store[:size].to_i
667
+ puts "store_size: #{store_size}"
668
+ guest_disk_datastore = store[:datastore].nil? ? @guestvm_dsname : store[:datastore]
669
+
611
670
  index += 1
612
671
  if store_size == 0
613
672
  env[:ui].info I18n.t('vagrant_vmware_esxi.vagrant_vmware_esxi_message',
@@ -634,7 +693,12 @@ module VagrantPlugins
634
693
  if r !~ %r{^#{slot.to_s}$}i
635
694
  puts "Avail slot: #{slot}" if config.debug =~ %r{true}i
636
695
  guest_disk_type = 'zeroedthick' if guest_disk_type == 'thick'
637
- cmd = "/bin/vmkfstools -c #{store_size}G -d #{guest_disk_type} \"#{esxi_guest_dir}/disk_#{index}.vmdk\""
696
+ guest_volume_path = "/vmfs/volumes/#{guest_disk_datastore}"
697
+ guest_disk_folder = "#{guest_volume_path}/#{dst_vmx_dir}"
698
+ folder_cmd = "/bin/mkdir -p #{guest_disk_folder}"
699
+ cmd = "#{folder_cmd} && /bin/vmkfstools -c #{store_size}G "\
700
+ "-d #{guest_disk_type} \"#{guest_disk_folder}/disk_#{index}.vmdk\""
701
+
638
702
  puts "cmd: #{cmd}" if config.debug =~ %r{true}i
639
703
  r = ssh.exec!(cmd)
640
704
  if r.exitstatus != 0
@@ -644,7 +708,7 @@ module VagrantPlugins
644
708
  ' Review ESXi logs for additional information!'
645
709
  end
646
710
  r = ssh.exec!("vim-cmd vmsvc/device.diskaddexisting #{env[:machine].id} "\
647
- "#{esxi_guest_dir}/disk_#{index}.vmdk 0 #{slot}")
711
+ "#{guest_disk_folder}/disk_#{index}.vmdk 0 #{slot}")
648
712
  if r.exitstatus != 0
649
713
  raise Errors::ESXiError,
650
714
  message: "Unable to create guest storage (vmkfstools failed):\n"\
@@ -32,6 +32,7 @@ module VagrantPlugins
32
32
  attr_accessor :local_allow_overwrite
33
33
  attr_accessor :local_lax
34
34
  attr_accessor :local_use_ip_cache
35
+ attr_accessor :local_failonwarning
35
36
  attr_accessor :debug
36
37
  attr_accessor :supported_guest_virtualhw_versions
37
38
  attr_accessor :supported_guest_disk_types
@@ -88,6 +89,7 @@ module VagrantPlugins
88
89
  @local_allow_overwrite = 'False'
89
90
  @local_lax = 'False'
90
91
  @local_use_ip_cache = 'True'
92
+ @local_failonwarning = 'False'
91
93
  @debug = 'False'
92
94
  @saved_ipaddress = nil
93
95
  @supported_guest_virtualhw_versions = [
@@ -362,6 +364,7 @@ module VagrantPlugins
362
364
  @guest_boot_disk_size = nil if @guest_boot_disk_size == 0
363
365
  @guest_storage = [@guest_storage.to_i] if @guest_storage.is_a? String
364
366
  @guest_storage = [@guest_storage] if @guest_storage.is_a? Integer
367
+ @guest_storage = [{ size: @guest_storage[:size], datastore: @guest_storage[:datastore] }] if @guest_storage.is_a? Hash
365
368
 
366
369
  @esxi_virtual_network = [@esxi_virtual_network] if @esxi_virtual_network.is_a? String
367
370
 
@@ -388,6 +391,12 @@ module VagrantPlugins
388
391
  @local_use_ip_cache = 'True'
389
392
  end
390
393
 
394
+ if @local_failonwarning =~ /true/i
395
+ @local_failonwarning = 'True'
396
+ else
397
+ @local_failonwarning = 'False'
398
+ end
399
+
391
400
  if @guest_snapshot_includememory =~ /true/i
392
401
  @guest_snapshot_includememory = 'includeMemory'
393
402
  else
@@ -1,7 +1,7 @@
1
1
  # VERSION
2
2
  module VagrantPlugins
3
3
  module ESXi
4
- VERSION = '2.2.2'
4
+ VERSION = '2.3.0'
5
5
  $vagrant_vmware_esxi_version = VERSION
6
6
  end
7
7
  end
data/locales/en.yml CHANGED
@@ -16,7 +16,7 @@ en:
16
16
  There was an error talking to ESXi.
17
17
  %{message}
18
18
  esxi_config_error: |-
19
- There was an ESXi configuration error.
19
+ There was a configuration error.
20
20
  %{message}
21
21
  esxi_ovftool_error: |-
22
22
  There was an OVF Tool error.
@@ -3,7 +3,7 @@ require File.expand_path('../lib/vagrant-vmware-esxi/version', __FILE__)
3
3
  Gem::Specification.new do |s|
4
4
  s.name = 'vagrant-vmware-esxi'
5
5
  s.version = VagrantPlugins::ESXi::VERSION
6
- s.date = '2018-05-09'
6
+ s.date = '2018-05-16'
7
7
  s.summary = 'Vagrant ESXi provider plugin'
8
8
  s.description = 'A Vagrant plugin that adds a VMware ESXi provider support'
9
9
  s.authors = ['Jonathan Senkerik']
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vagrant-vmware-esxi
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.2
4
+ version: 2.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jonathan Senkerik
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-05-09 00:00:00.000000000 Z
11
+ date: 2018-05-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: i18n