vagrant-vsphere 1.13.3 → 1.14.0.pre1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/.bumpversion.cfg +2 -1
- data/.rubocop.yml +15 -0
- data/.ruby-version +1 -1
- data/.travis.yml +0 -7
- data/CHANGELOG.md +20 -0
- data/DEVELOPMENT.md +22 -0
- data/Gemfile +3 -1
- data/README.md +2 -2
- data/Rakefile +4 -2
- data/lib/vSphere/action/clone.rb +20 -19
- data/lib/vSphere/action/close_vsphere.rb +2 -0
- data/lib/vSphere/action/connect_vsphere.rb +2 -0
- data/lib/vSphere/action/destroy.rb +3 -0
- data/lib/vSphere/action/get_ssh_info.rb +7 -2
- data/lib/vSphere/action/get_state.rb +3 -1
- data/lib/vSphere/action/is_created.rb +2 -0
- data/lib/vSphere/action/is_running.rb +2 -0
- data/lib/vSphere/action/is_suspended.rb +2 -0
- data/lib/vSphere/action/message_already_created.rb +2 -0
- data/lib/vSphere/action/message_not_created.rb +2 -0
- data/lib/vSphere/action/message_not_running.rb +2 -0
- data/lib/vSphere/action/message_not_suspended.rb +2 -0
- data/lib/vSphere/action/power_off.rb +2 -0
- data/lib/vSphere/action/power_on.rb +2 -0
- data/lib/vSphere/action/resume.rb +2 -0
- data/lib/vSphere/action/snapshot_delete.rb +8 -4
- data/lib/vSphere/action/snapshot_list.rb +2 -0
- data/lib/vSphere/action/snapshot_restore.rb +5 -2
- data/lib/vSphere/action/snapshot_save.rb +8 -4
- data/lib/vSphere/action/suspend.rb +2 -0
- data/lib/vSphere/action/wait_for_ip_address.rb +2 -0
- data/lib/vSphere/action.rb +8 -6
- data/lib/vSphere/cap/public_address.rb +3 -0
- data/lib/vSphere/cap/snapshot_list.rb +2 -0
- data/lib/vSphere/config.rb +4 -31
- data/lib/vSphere/errors.rb +2 -0
- data/lib/vSphere/plugin.rb +5 -5
- data/lib/vSphere/provider.rb +3 -0
- data/lib/vSphere/util/vim_helpers.rb +26 -19
- data/lib/vSphere/util/vm_helpers.rb +9 -6
- data/lib/vSphere/version.rb +3 -1
- data/lib/vagrant-vsphere.rb +4 -2
- data/spec/action_spec.rb +2 -0
- data/spec/clone_spec.rb +8 -6
- data/spec/connect_vsphere_spec.rb +2 -0
- data/spec/destroy_spec.rb +2 -0
- data/spec/get_ssh_info_spec.rb +6 -14
- data/spec/get_state_spec.rb +2 -0
- data/spec/is_created_spec.rb +2 -0
- data/spec/power_off_spec.rb +2 -0
- data/spec/spec_helper.rb +35 -31
- data/vSphere.gemspec +8 -7
- metadata +22 -35
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: a2c2f3104d84ad0220c48752678d997a9a856527790961de1bf874c174f2ca91
|
4
|
+
data.tar.gz: d341a5d0d4c15da2376e33946fbcaca800e561e384d21677ce059522fe2255ca
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: dcbcfa728e970b142bae1c3353ba6c87be4a4988586df400dc7a80c742bb53970de31650c2e62a287dde3c1aa295c43817f7436d326d26283e7b51711cbaa46e
|
7
|
+
data.tar.gz: 6567b087ba97251076ec7f282b48c1214d8c5e8d67aa3f0107316c33461a5cfd62937ad434ea5c43054e325123feb90a9f739892e313851174e4fe116a9f79b1
|
data/.bumpversion.cfg
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
[bumpversion]
|
2
|
-
current_version = 1.
|
2
|
+
current_version = 1.14.0.pre1
|
3
3
|
tag = true
|
4
4
|
commit = true
|
5
5
|
|
@@ -8,3 +8,4 @@ commit = true
|
|
8
8
|
[bumpversion:file:README.md]
|
9
9
|
parse = version: (?P<major>\d+)\.(?P<minor>\d+)\.(?P<patch>\d+)
|
10
10
|
serialize = version: {major}.{minor}.{patch}
|
11
|
+
|
data/.rubocop.yml
CHANGED
@@ -32,3 +32,18 @@ Metrics/ModuleLength:
|
|
32
32
|
|
33
33
|
Metrics/PerceivedComplexity:
|
34
34
|
Enabled: false
|
35
|
+
|
36
|
+
# Disabled these cops upgrading rubocop to 1.25.0
|
37
|
+
# TODO:Correct the issues found by these cops someday
|
38
|
+
Lint/MissingSuper:
|
39
|
+
Enabled: false
|
40
|
+
|
41
|
+
Metrics/BlockLength:
|
42
|
+
Enabled: false
|
43
|
+
|
44
|
+
Naming:
|
45
|
+
Enabled: false
|
46
|
+
|
47
|
+
# TODO: Add required ruby version to gemspec
|
48
|
+
Gemspec/RequiredRubyVersion:
|
49
|
+
Enabled: false
|
data/.ruby-version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
ruby-3.0.2
|
data/.travis.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,23 @@
|
|
1
|
+
## [1.14.0 (2022-04-12)](https://github.com/nsidc/vagrant-vsphere/releases/tag/v1.14.0.pre1)
|
2
|
+
|
3
|
+
- Update gem to ruby 3.0.2
|
4
|
+
- Support for vagrant >=2.2.17
|
5
|
+
- Update nokogiri dependency (1.13.4) to take care of dependabot alerts
|
6
|
+
- Update rbvmomi, rake, rubocop dependencies
|
7
|
+
|
8
|
+
## [1.13.5 (2021-01-05)](https://github.com/nsidc/vagrant-vsphere/releases/tag/v1.13.5)
|
9
|
+
- Pin nokogiri to 1.10.10. This fixes an issue where vagrant-vsphere failed to install due to
|
10
|
+
nokogiri requiring Ruby >=2.5. This is a workaround until the vagrant-nsidc plugin is updated
|
11
|
+
to work with newer versions of vagrant that are bundled with newer versions of Ruby
|
12
|
+
|
13
|
+
## [1.13.4 (2020-03-31)](https://github.com/nsidc/vagrant-vsphere/releases/tag/v1.13.4)
|
14
|
+
|
15
|
+
- Allow newer versions of i18n.
|
16
|
+
([jmartin-r7:release-i18n](https://github.com/nsidc/vagrant-vsphere/pull/286))
|
17
|
+
- Updated .ruby-version to 2.6.5
|
18
|
+
- Fix broken tests.
|
19
|
+
([wwestenbrink:master](https://github.com/nsidc/vagrant-vsphere/pull/283))
|
20
|
+
|
1
21
|
## [1.13.3 (2018-12-06)](https://github.com/nsidc/vagrant-vsphere/releases/tag/v1.13.3)
|
2
22
|
|
3
23
|
- Update i18n dependency to allow v1.1.1. This fixes an issue with
|
data/DEVELOPMENT.md
CHANGED
@@ -65,3 +65,25 @@ prefers to be run from the official installer rather than through the gem.
|
|
65
65
|
Despite those warning messages, this is the
|
66
66
|
[officially recommended](https://docs.vagrantup.com/v2/plugins/development-basics.html)
|
67
67
|
method for Vagrant plugin development.
|
68
|
+
|
69
|
+
### Releasing
|
70
|
+
|
71
|
+
1) Ensure [travis-ci](https://travis-ci.org/github/nsidc/vagrant-vsphere/) build is passing
|
72
|
+
2) Ensure `CHANGELOG.md` is up-to-date with the changes to release
|
73
|
+
3) Update version in the code, according to [semver](https://semver.org/)
|
74
|
+
* [bumpversion](https://github.com/peritus/bumpversion) can be used; if not,
|
75
|
+
the version needs to be manually updated in `.bumpversion.cfg`,
|
76
|
+
`README.md`, and `lib/vSphere/version.rb` (e.g., as in
|
77
|
+
[`11eced2`](https://github.com/nsidc/vagrant-vsphere/commit/11eced2))
|
78
|
+
4) `bundle exec rake build`
|
79
|
+
* builds the plugin to `pkg/vagrant-vsphere-$VERSION.gem`
|
80
|
+
* install to your system vagrant for further testing with `vagrant plugin
|
81
|
+
install ./pkg/vagrant-vsphere-$VERSION.gem`
|
82
|
+
5) `bundle exec rake release`
|
83
|
+
* creates the version tag and pushes it to GitHub
|
84
|
+
* pushes the built gem to
|
85
|
+
[RubyGems.org](https://rubygems.org/gems/vagrant-vsphere/)
|
86
|
+
6) Update the [Releases page](https://github.com/nsidc/vagrant-vsphere/releases)
|
87
|
+
* the release name should match the version tag (e.g., `v1.2.3`)
|
88
|
+
* the release description can be the same as the `CHANGELOG.md` entry
|
89
|
+
* upload the `.gem` from RubyGems.org as an attached binary for the release
|
data/Gemfile
CHANGED
@@ -1,10 +1,12 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
source 'http://rubygems.org'
|
2
4
|
|
3
5
|
group :development do
|
4
6
|
# We depend on Vagrant for development, but we don't add it as a
|
5
7
|
# gem dependency because we expect to be installed within the
|
6
8
|
# Vagrant environment itself using `vagrant plugin`.
|
7
|
-
gem 'vagrant', github: 'mitchellh/vagrant'
|
9
|
+
gem 'vagrant', github: 'mitchellh/vagrant', ref: 'v2.2.19'
|
8
10
|
end
|
9
11
|
|
10
12
|
group :plugins do
|
data/README.md
CHANGED
@@ -19,9 +19,9 @@ This provider is built on top of the
|
|
19
19
|
* libxml2, libxml2-dev, libxslt, libxslt-dev
|
20
20
|
|
21
21
|
## Current Version
|
22
|
-
**version: 1.
|
22
|
+
**version: 1.14.0.pre1**
|
23
23
|
|
24
|
-
vagrant-vsphere (**version: 1.
|
24
|
+
vagrant-vsphere (**version: 1.14.0.pre1**) is available from
|
25
25
|
[RubyGems.org](https://rubygems.org/gems/vagrant-vsphere)
|
26
26
|
|
27
27
|
## Installation
|
data/Rakefile
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'rubygems'
|
2
4
|
require 'bundler/setup'
|
3
5
|
require 'rspec/core/rake_task'
|
@@ -9,7 +11,7 @@ $stdout.sync = true
|
|
9
11
|
$stderr.sync = true
|
10
12
|
|
11
13
|
# Change to the directory of this file.
|
12
|
-
Dir.chdir(File.expand_path(
|
14
|
+
Dir.chdir(File.expand_path(__dir__))
|
13
15
|
|
14
16
|
Bundler::GemHelper.install_tasks
|
15
17
|
|
@@ -17,4 +19,4 @@ RSpec::Core::RakeTask.new
|
|
17
19
|
|
18
20
|
RuboCop::RakeTask.new
|
19
21
|
|
20
|
-
task default: %w
|
22
|
+
task default: %w[rubocop spec]
|
data/lib/vSphere/action/clone.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'rbvmomi'
|
2
4
|
require 'i18n'
|
3
5
|
require 'vSphere/util/vim_helpers'
|
@@ -19,14 +21,15 @@ module VagrantPlugins
|
|
19
21
|
name = get_name machine, config, env[:root_path]
|
20
22
|
dc = get_datacenter connection, machine
|
21
23
|
template = dc.find_vm config.template_name
|
22
|
-
|
24
|
+
raise Errors::VSphereError, :'missing_template' if template.nil?
|
25
|
+
|
23
26
|
vm_base_folder = get_vm_base_folder dc, template, config
|
24
|
-
|
27
|
+
raise Errors::VSphereError, :'invalid_base_path' if vm_base_folder.nil?
|
25
28
|
|
26
29
|
begin
|
27
30
|
# Storage DRS does not support vSphere linked clones. http://www.vmware.com/files/pdf/techpaper/vsphere-storage-drs-interoperability.pdf
|
28
31
|
ds = get_datastore dc, machine
|
29
|
-
|
32
|
+
raise Errors::VSphereError, :'invalid_configuration_linked_clone_with_sdrs' if config.linked_clone && ds.is_a?(RbVmomi::VIM::StoragePod)
|
30
33
|
|
31
34
|
location = get_location ds, dc, machine, template
|
32
35
|
spec = RbVmomi::VIM.VirtualMachineCloneSpec location: location, powerOn: true, template: false
|
@@ -74,9 +77,7 @@ module VagrantPlugins
|
|
74
77
|
|
75
78
|
recommendation = result.recommendations[0]
|
76
79
|
key = recommendation.key ||= ''
|
77
|
-
if key == ''
|
78
|
-
fail Errors::VSphereError, :missing_datastore_recommendation
|
79
|
-
end
|
80
|
+
raise Errors::VSphereError, :missing_datastore_recommendation if key == ''
|
80
81
|
|
81
82
|
env[:ui].info I18n.t('vsphere.creating_cloned_vm_sdrs')
|
82
83
|
env[:ui].info " -- Storage DRS recommendation: #{recommendation.target.name} #{recommendation.reasonText}"
|
@@ -125,13 +126,13 @@ module VagrantPlugins
|
|
125
126
|
while wait
|
126
127
|
events = query_customization_succeeded(vm, vem)
|
127
128
|
|
128
|
-
if events.size
|
129
|
+
if events.size.positive?
|
129
130
|
events.each do |e|
|
130
131
|
env[:ui].info e.fullFormattedMessage
|
131
132
|
end
|
132
133
|
wait = false
|
133
134
|
elsif waited_seconds >= timeout
|
134
|
-
|
135
|
+
raise Errors::VSphereError, :'sysprep_timeout'
|
135
136
|
else
|
136
137
|
sleep(sleep_time)
|
137
138
|
waited_seconds += sleep_time
|
@@ -154,7 +155,7 @@ module VagrantPlugins
|
|
154
155
|
return customization_spec if private_networks.nil?
|
155
156
|
|
156
157
|
# make sure we have enough NIC settings to override with the private network settings
|
157
|
-
|
158
|
+
raise Errors::VSphereError, :'too_many_private_networks' if private_networks.length > customization_spec.nicSettingMap.length
|
158
159
|
|
159
160
|
# assign the private network IP to the NIC
|
160
161
|
private_networks.each_index do |idx|
|
@@ -212,7 +213,7 @@ module VagrantPlugins
|
|
212
213
|
return config.name unless config.name.nil?
|
213
214
|
|
214
215
|
prefix = "#{root_path.basename}_#{machine.name}"
|
215
|
-
prefix.gsub!(/[^-a-z0-9_
|
216
|
+
prefix.gsub!(/[^-a-z0-9_.]/i, '')
|
216
217
|
# milliseconds + random number suffix to allow for simultaneous `vagrant up` of the same box in different dirs
|
217
218
|
prefix + "_#{(Time.now.to_f * 1000.0).to_i}_#{rand(100_000)}"
|
218
219
|
end
|
@@ -229,7 +230,7 @@ module VagrantPlugins
|
|
229
230
|
spec[:config][:deviceChange] ||= []
|
230
231
|
@card ||= template.config.hardware.device.grep(RbVmomi::VIM::VirtualEthernetCard).first
|
231
232
|
|
232
|
-
|
233
|
+
raise Errors::VSphereError, :missing_network_card if @card.nil?
|
233
234
|
|
234
235
|
yield(@card)
|
235
236
|
|
@@ -241,7 +242,7 @@ module VagrantPlugins
|
|
241
242
|
def add_custom_address_type(template, spec, addressType)
|
242
243
|
spec[:config][:deviceChange] = []
|
243
244
|
config = template.config
|
244
|
-
card = config.hardware.device.grep(RbVmomi::VIM::VirtualEthernetCard).first ||
|
245
|
+
card = config.hardware.device.grep(RbVmomi::VIM::VirtualEthernetCard).first || raise(Errors::VSphereError, :missing_network_card)
|
245
246
|
card.addressType = addressType
|
246
247
|
card_spec = { :deviceChange => [{ :operation => :edit, :device => card }] }
|
247
248
|
template.ReconfigVM_Task(:spec => card_spec).wait_for_completion
|
@@ -257,13 +258,13 @@ module VagrantPlugins
|
|
257
258
|
network = get_network_by_name(dc, vlan)
|
258
259
|
|
259
260
|
modify_network_card(template, spec) do |card|
|
260
|
-
|
261
|
-
|
262
|
-
|
263
|
-
|
264
|
-
|
265
|
-
|
266
|
-
|
261
|
+
|
262
|
+
switch_port = RbVmomi::VIM.DistributedVirtualSwitchPortConnection(switchUuid: network.config.distributedVirtualSwitch.uuid, portgroupKey: network.key)
|
263
|
+
card.backing = RbVmomi::VIM::VirtualEthernetCardDistributedVirtualPortBackingInfo(port: switch_port)
|
264
|
+
rescue StandardError
|
265
|
+
# not connected to a distibuted switch?
|
266
|
+
card.backing = RbVmomi::VIM::VirtualEthernetCardNetworkBackingInfo(network: network, deviceName: network.name)
|
267
|
+
|
267
268
|
end
|
268
269
|
end
|
269
270
|
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'rbvmomi'
|
2
4
|
require 'i18n'
|
3
5
|
require 'vSphere/util/vim_helpers'
|
@@ -23,6 +25,7 @@ module VagrantPlugins
|
|
23
25
|
|
24
26
|
def destroy_vm(env)
|
25
27
|
return if env[:machine].state.id == :not_created
|
28
|
+
|
26
29
|
vm = get_vm_by_uuid env[:vSphere_connection], env[:machine]
|
27
30
|
return if vm.nil?
|
28
31
|
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'rbvmomi'
|
2
4
|
require 'vSphere/util/vim_helpers'
|
3
5
|
|
@@ -21,12 +23,13 @@ module VagrantPlugins
|
|
21
23
|
def filter_guest_nic(vm, machine)
|
22
24
|
return vm.guest.ipAddress unless machine.provider_config.real_nic_ip
|
23
25
|
|
24
|
-
interfaces = vm.guest.net.select { |g| g.deviceConfigId
|
26
|
+
interfaces = vm.guest.net.select { |g| g.deviceConfigId.positive? }
|
25
27
|
ip_addresses = interfaces.map { |i| i.ipConfig.ipAddress.select { |a| a.state == 'preferred' } }.flatten
|
26
28
|
|
27
29
|
return (vm.guest.ipAddress || nil) if ip_addresses.empty?
|
28
30
|
|
29
|
-
|
31
|
+
raise Errors::VSphereError.new, :'multiple_interface_with_real_nic_ip_set' if ip_addresses.size > 1
|
32
|
+
|
30
33
|
ip_addresses.first.ipAddress
|
31
34
|
end
|
32
35
|
|
@@ -35,8 +38,10 @@ module VagrantPlugins
|
|
35
38
|
|
36
39
|
vm = get_vm_by_uuid connection, machine
|
37
40
|
return nil if vm.nil?
|
41
|
+
|
38
42
|
ip_address = filter_guest_nic(vm, machine)
|
39
43
|
return nil if ip_address.nil? || ip_address.empty?
|
44
|
+
|
40
45
|
{
|
41
46
|
host: ip_address,
|
42
47
|
port: 22
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'rbvmomi'
|
2
4
|
require 'vSphere/util/vim_helpers'
|
3
5
|
require 'vSphere/util/vm_helpers'
|
@@ -22,7 +24,7 @@ module VagrantPlugins
|
|
22
24
|
private
|
23
25
|
|
24
26
|
def get_state(connection, machine)
|
25
|
-
return :not_created
|
27
|
+
return :not_created if machine.id.nil?
|
26
28
|
|
27
29
|
vm = get_vm_by_uuid connection, machine
|
28
30
|
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'vSphere/util/vim_helpers'
|
2
4
|
require 'vSphere/util/vm_helpers'
|
3
5
|
|
@@ -16,8 +18,9 @@ module VagrantPlugins
|
|
16
18
|
vm = get_vm_by_uuid(env[:vSphere_connection], env[:machine])
|
17
19
|
|
18
20
|
env[:ui].info(I18n.t(
|
19
|
-
|
20
|
-
|
21
|
+
"vagrant.actions.vm.snapshot.deleting",
|
22
|
+
name: env[:snapshot_name]
|
23
|
+
))
|
21
24
|
|
22
25
|
delete_snapshot(vm, env[:snapshot_name]) do |progress|
|
23
26
|
env[:ui].clear_line
|
@@ -27,8 +30,9 @@ module VagrantPlugins
|
|
27
30
|
env[:ui].clear_line
|
28
31
|
|
29
32
|
env[:ui].info(I18n.t(
|
30
|
-
|
31
|
-
|
33
|
+
"vagrant.actions.vm.snapshot.deleted",
|
34
|
+
name: env[:snapshot_name]
|
35
|
+
))
|
32
36
|
|
33
37
|
@app.call env
|
34
38
|
end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'vSphere/util/vim_helpers'
|
2
4
|
require 'vSphere/util/vm_helpers'
|
3
5
|
|
@@ -16,8 +18,9 @@ module VagrantPlugins
|
|
16
18
|
vm = get_vm_by_uuid(env[:vSphere_connection], env[:machine])
|
17
19
|
|
18
20
|
env[:ui].info(I18n.t(
|
19
|
-
|
20
|
-
|
21
|
+
"vagrant.actions.vm.snapshot.restoring",
|
22
|
+
name: env[:snapshot_name]
|
23
|
+
))
|
21
24
|
|
22
25
|
restore_snapshot(vm, env[:snapshot_name]) do |progress|
|
23
26
|
env[:ui].clear_line
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'vSphere/util/vim_helpers'
|
2
4
|
require 'vSphere/util/vm_helpers'
|
3
5
|
|
@@ -16,8 +18,9 @@ module VagrantPlugins
|
|
16
18
|
vm = get_vm_by_uuid(env[:vSphere_connection], env[:machine])
|
17
19
|
|
18
20
|
env[:ui].info(I18n.t(
|
19
|
-
|
20
|
-
|
21
|
+
"vagrant.actions.vm.snapshot.saving",
|
22
|
+
name: env[:snapshot_name]
|
23
|
+
))
|
21
24
|
|
22
25
|
create_snapshot(vm, env[:snapshot_name]) do |progress|
|
23
26
|
env[:ui].clear_line
|
@@ -27,8 +30,9 @@ module VagrantPlugins
|
|
27
30
|
env[:ui].clear_line
|
28
31
|
|
29
32
|
env[:ui].success(I18n.t(
|
30
|
-
|
31
|
-
|
33
|
+
"vagrant.actions.vm.snapshot.saved",
|
34
|
+
name: env[:snapshot_name]
|
35
|
+
))
|
32
36
|
@app.call env
|
33
37
|
end
|
34
38
|
end
|
data/lib/vSphere/action.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'vagrant'
|
2
4
|
require 'vagrant/action/builder'
|
3
5
|
|
@@ -224,7 +226,7 @@ module VagrantPlugins
|
|
224
226
|
end
|
225
227
|
|
226
228
|
# TODO: Remove the if guard when Vagrant 1.8.0 is the minimum version.
|
227
|
-
# rubocop:disable IndentationWidth
|
229
|
+
# rubocop:disable Layout/IndentationWidth
|
228
230
|
if Gem::Version.new(Vagrant::VERSION) >= Gem::Version.new('1.8.0')
|
229
231
|
def self.action_snapshot_delete
|
230
232
|
Vagrant::Action::Builder.new.tap do |b|
|
@@ -292,11 +294,11 @@ module VagrantPlugins
|
|
292
294
|
b.use CloseVSphere
|
293
295
|
end
|
294
296
|
end
|
295
|
-
end
|
296
|
-
# rubocop:enable IndentationWidth
|
297
|
+
end
|
298
|
+
# rubocop:enable Layout/IndentationWidth
|
297
299
|
|
298
300
|
# autoload
|
299
|
-
action_root = Pathname.new(File.expand_path('
|
301
|
+
action_root = Pathname.new(File.expand_path('action', __dir__))
|
300
302
|
autoload :Clone, action_root.join('clone')
|
301
303
|
autoload :CloseVSphere, action_root.join('close_vsphere')
|
302
304
|
autoload :ConnectVSphere, action_root.join('connect_vsphere')
|
@@ -317,14 +319,14 @@ module VagrantPlugins
|
|
317
319
|
autoload :WaitForIPAddress, action_root.join('wait_for_ip_address')
|
318
320
|
|
319
321
|
# TODO: Remove the if guard when Vagrant 1.8.0 is the minimum version.
|
320
|
-
# rubocop:disable IndentationWidth
|
322
|
+
# rubocop:disable Layout/IndentationWidth
|
321
323
|
if Gem::Version.new(Vagrant::VERSION) >= Gem::Version.new('1.8.0')
|
322
324
|
autoload :SnapshotDelete, action_root.join('snapshot_delete')
|
323
325
|
autoload :SnapshotList, action_root.join('snapshot_list')
|
324
326
|
autoload :SnapshotRestore, action_root.join('snapshot_restore')
|
325
327
|
autoload :SnapshotSave, action_root.join('snapshot_save')
|
326
328
|
end
|
327
|
-
# rubocop:enable IndentationWidth
|
329
|
+
# rubocop:enable Layout/IndentationWidth
|
328
330
|
end
|
329
331
|
end
|
330
332
|
end
|
data/lib/vSphere/config.rb
CHANGED
@@ -1,36 +1,11 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'vagrant'
|
2
4
|
|
3
5
|
module VagrantPlugins
|
4
6
|
module VSphere
|
5
7
|
class Config < Vagrant.plugin('2', :config)
|
6
|
-
attr_accessor :ip_address_timeout # Time to wait for an IP address when booting, in seconds @return [Integer]
|
7
|
-
attr_accessor :host
|
8
|
-
attr_accessor :insecure
|
9
|
-
attr_accessor :user
|
10
|
-
attr_accessor :password
|
11
|
-
attr_accessor :data_center_name
|
12
|
-
attr_accessor :compute_resource_name
|
13
|
-
attr_accessor :resource_pool_name
|
14
|
-
attr_accessor :clone_from_vm
|
15
|
-
attr_accessor :template_name
|
16
|
-
attr_accessor :name
|
17
|
-
attr_accessor :vm_base_path
|
18
|
-
attr_accessor :customization_spec_name
|
19
|
-
attr_accessor :data_store_name
|
20
|
-
attr_accessor :linked_clone
|
21
|
-
attr_accessor :proxy_host
|
22
|
-
attr_accessor :proxy_port
|
23
|
-
attr_accessor :vlan
|
24
|
-
attr_accessor :addressType
|
25
|
-
attr_accessor :mac
|
26
|
-
attr_accessor :memory_mb
|
27
|
-
attr_accessor :cpu_count
|
28
|
-
attr_accessor :cpu_reservation
|
29
|
-
attr_accessor :mem_reservation
|
30
|
-
attr_accessor :extra_config
|
31
|
-
attr_accessor :real_nic_ip
|
32
|
-
attr_accessor :notes
|
33
|
-
attr_accessor :wait_for_sysprep
|
8
|
+
attr_accessor :ip_address_timeout, :host, :insecure, :user, :password, :data_center_name, :compute_resource_name, :resource_pool_name, :clone_from_vm, :template_name, :name, :vm_base_path, :customization_spec_name, :data_store_name, :linked_clone, :proxy_host, :proxy_port, :vlan, :addressType, :mac, :memory_mb, :cpu_count, :cpu_reservation, :mem_reservation, :extra_config, :real_nic_ip, :notes, :wait_for_sysprep # Time to wait for an IP address when booting, in seconds @return [Integer]
|
34
9
|
|
35
10
|
attr_reader :custom_attributes
|
36
11
|
|
@@ -53,9 +28,7 @@ module VagrantPlugins
|
|
53
28
|
def validate(machine)
|
54
29
|
errors = _detected_errors
|
55
30
|
|
56
|
-
if password == :ask || password.nil?
|
57
|
-
self.password = machine.ui.ask('vSphere Password (will be hidden): ', echo: false)
|
58
|
-
end
|
31
|
+
self.password = machine.ui.ask('vSphere Password (will be hidden): ', echo: false) if password == :ask || password.nil?
|
59
32
|
|
60
33
|
# TODO: add blank?
|
61
34
|
errors << I18n.t('vsphere.config.host') if host.nil?
|