vagrant-vsphere 1.13.3 → 1.14.0.pre1
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 +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?
         
     |