vagrant-vsphere 1.6.0 → 1.7.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 7747b951188bee2b8908f9273b0b50600a84bc7c
4
- data.tar.gz: 2cc6660d48609b56c3e0b413b88f0d9c97c763c4
3
+ metadata.gz: 2e9dc00d36f4b543b993242631e336c96bfd6c81
4
+ data.tar.gz: cba9bf33b1f3928966fa7ddd55218e74640ed1ef
5
5
  SHA512:
6
- metadata.gz: 9f9b21cd04aad4d2af7885f0a4c447016b413b5649706074b9bb3e4d2fc6e9f7ef597d805f848dc4d1d5c1c8fb6fe965e0dc26dbdfbd35d7d3a3c618772217f2
7
- data.tar.gz: b22d5a1351afd85c1f6cdb53da5152a5d0d4a70df5c3ccaf5acfb0941d6ab4cd8c8bf27b6158cecea7ee436eab8ea64c4734ecb26b1f6f8559c2624f97b8dee9
6
+ metadata.gz: f8f86e54afe1fc8eb3fb4532ea4c7fbe8da30bc3d2276a84680005bb33333aa70bcd272546559b87e784ca427b897ed96667541be39aacf302a08b000fa518b8
7
+ data.tar.gz: dd0a26aa3c040cd6ef21ac1826e8b21109ea55a71dacf6100d1f35954898159a1927a5a5252e3d1858717aa91335c2383d8eddae5be9ab262c0e49705e255be4
data/.bumpversion.cfg CHANGED
@@ -1,5 +1,5 @@
1
1
  [bumpversion]
2
- current_version = 1.6.0
2
+ current_version = 1.7.0
3
3
  tag = true
4
4
  commit = true
5
5
 
@@ -8,4 +8,3 @@ 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
@@ -11,3 +11,24 @@ Lint/RescueException:
11
11
  # lib/vSphere/util/vim_helpers.rb to continue rescuing Exception in that
12
12
  # method
13
13
  - 'lib/vSphere/util/vim_helpers.rb'
14
+
15
+ Metrics/AbcSize:
16
+ Enabled: false
17
+
18
+ Metrics/ClassLength:
19
+ Enabled: false
20
+
21
+ Metrics/CyclomaticComplexity:
22
+ Enabled: false
23
+
24
+ Metrics/LineLength:
25
+ Enabled: false
26
+
27
+ Metrics/MethodLength:
28
+ Enabled: false
29
+
30
+ Metrics/ModuleLength:
31
+ Enabled: false
32
+
33
+ Metrics/PerceivedComplexity:
34
+ Enabled: false
data/.rubocop_todo.yml CHANGED
@@ -1,5 +1,5 @@
1
1
  # This configuration was generated by `rubocop --auto-gen-config`
2
- # on 2015-09-02 10:38:06 -0600 using RuboCop version 0.32.1.
2
+ # on 2016-03-08 12:12:34 -0700 using RuboCop version 0.32.1.
3
3
  # The point is for the user to remove these configuration records
4
4
  # one by one as the offenses are removed from the code base.
5
5
  # Note that changes in the inspected code, or installation of new
@@ -9,40 +9,14 @@
9
9
  Lint/NonLocalExitFromIterator:
10
10
  Enabled: false
11
11
 
12
- # Offense count: 11
13
- Metrics/AbcSize:
14
- Max: 120
15
-
16
- # Offense count: 1
17
- # Configuration parameters: CountComments.
18
- Metrics/ClassLength:
19
- Max: 169
20
-
21
- # Offense count: 3
22
- Metrics/CyclomaticComplexity:
23
- Max: 18
24
-
25
- # Offense count: 108
26
- # Configuration parameters: AllowURI, URISchemes.
27
- Metrics/LineLength:
28
- Max: 177
29
-
30
- # Offense count: 12
31
- # Configuration parameters: CountComments.
32
- Metrics/MethodLength:
33
- Max: 60
34
-
35
- # Offense count: 1
36
- # Configuration parameters: CountComments.
37
- Metrics/ModuleLength:
38
- Max: 162
12
+ # Offense count: 24
13
+ Style/Documentation:
14
+ Enabled: false
39
15
 
40
16
  # Offense count: 3
41
- Metrics/PerceivedComplexity:
42
- Max: 19
43
-
44
- # Offense count: 25
45
- Style/Documentation:
17
+ # Cop supports --auto-correct.
18
+ # Configuration parameters: EnforcedStyle, SupportedStyles.
19
+ Style/EmptyLinesAroundBlockBody:
46
20
  Enabled: false
47
21
 
48
22
  # Offense count: 1
@@ -56,7 +30,7 @@ Style/EmptyLiteral:
56
30
  Style/FirstParameterIndentation:
57
31
  Enabled: false
58
32
 
59
- # Offense count: 5
33
+ # Offense count: 6
60
34
  # Cop supports --auto-correct.
61
35
  # Configuration parameters: EnforcedStyle, SupportedStyles, UseHashRocketsWithSymbolValues.
62
36
  Style/HashSyntax:
@@ -74,6 +48,12 @@ Style/RegexpLiteral:
74
48
  Style/SpaceAroundOperators:
75
49
  Enabled: false
76
50
 
51
+ # Offense count: 1
52
+ # Cop supports --auto-correct.
53
+ # Configuration parameters: EnforcedStyle, SupportedStyles.
54
+ Style/StringLiterals:
55
+ Enabled: false
56
+
77
57
  # Offense count: 4
78
58
  # Cop supports --auto-correct.
79
59
  Style/SymbolLiteral:
data/CHANGELOG.md CHANGED
@@ -1,3 +1,12 @@
1
+ ## [1.7.0 (2016-03-14)](https://github.com/nsidc/vagrant-vsphere/releases/tag/v1.7.0)
2
+
3
+ - Add support for setting guestinfo variables
4
+ ([Sharpie:add-guestinfo-support](https://github.com/nsidc/vagrant-vsphere/pull/174)).
5
+ - Run provisioner cleanup when destroying VMs
6
+ ([Sharpie:enable-provisioner-cleanup](https://github.com/nsidc/vagrant-vsphere/pull/176)).
7
+ - Add the ability to configure the notes on the newly cloned VM
8
+ ([rylarson:feature/rylarson-add-notes](https://github.com/nsidc/vagrant-vsphere/pull/178)).
9
+
1
10
  ## [1.6.0 (2016-01-21)](https://github.com/nsidc/vagrant-vsphere/releases/tag/v1.6.0)
2
11
 
3
12
  - Use Vagrant core API instead of waiting for SSH communicator, which should
data/README.md CHANGED
@@ -6,7 +6,7 @@ This is a [Vagrant](http://www.vagrantup.com) 1.6.4+ plugin that adds a
6
6
  [vSphere](http://pubs.vmware.com/vsphere-50/index.jsp?topic=%2Fcom.vmware.wssdk.apiref.doc_50%2Fright-pane.html)
7
7
  provider to Vagrant, allowing Vagrant to control and provision machines using
8
8
  VMware. New machines are created from virtual machines or templates which must
9
- be configured prior to using using this provider.
9
+ be configured prior to using this provider.
10
10
 
11
11
  This provider is built on top of the
12
12
  [RbVmomi](https://github.com/vmware/rbvmomi) Ruby interface to the vSphere API.
@@ -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.6.0**
22
+ **version: 1.7.0**
23
23
 
24
- vagrant-vsphere (**version: 1.6.0**) is available from
24
+ vagrant-vsphere (**version: 1.7.0**) is available from
25
25
  [RubyGems.org](https://rubygems.org/gems/vagrant-vsphere)
26
26
 
27
27
  ## Installation
@@ -110,7 +110,7 @@ This provider has the following settings, all are required unless noted:
110
110
  the template and where the new VM will be created, if not specified the first
111
111
  datacenter found will be used
112
112
  * `compute_resource_name` - _Required if cloning from template_ the name of the
113
- host containing the resource pool for the new VM
113
+ host or cluster containing the resource pool for the new VM
114
114
  * `resource_pool_name` - the resource pool for the new VM. If not supplied, and
115
115
  cloning from a template, uses the root resource pool
116
116
  * `clone_from_vm` - _Optional_ use a virtual machine instead of a template as
@@ -140,6 +140,11 @@ This provider has the following settings, all are required unless noted:
140
140
  to the VM upon creation. This method takes a key/value pair,
141
141
  e.g. `vsphere.custom_attribute('timestamp', Time.now.to_s)`, and may be called
142
142
  multiple times to set different attributes.
143
+ * `extra_config` - _Optional_ A hash of extra configuration values to add to
144
+ the VM during creation. These are of the form `{'guestinfo.some.variable' => 'somevalue'}`,
145
+ where the key must start with `guestinfo.`. VMs with VWware Tools installed can
146
+ retrieve the value of these variables using the `vmtoolsd` command: `vmtoolsd --cmd 'info-get guestinfo.some.variable'`.
147
+ * `notes` - _Optional_ Add arbitrary notes to the VM
143
148
 
144
149
  ### Cloning from a VM rather than a template
145
150
 
@@ -201,7 +206,7 @@ executions.
201
206
  This is useful if running Vagrant from multiple directories or if multiple
202
207
  machines are defined in the Vagrantfile.
203
208
 
204
- ### Setting addresType for network adapter
209
+ ### Setting addressType for network adapter
205
210
 
206
211
  This sets the addressType of the network adapter, for example 'Manual' to
207
212
  be able to set a manual mac address.
@@ -41,6 +41,8 @@ module VagrantPlugins
41
41
  add_custom_cpu(spec, config.cpu_count) unless config.cpu_count.nil?
42
42
  add_custom_cpu_reservation(spec, config.cpu_reservation) unless config.cpu_reservation.nil?
43
43
  add_custom_mem_reservation(spec, config.mem_reservation) unless config.mem_reservation.nil?
44
+ add_custom_extra_config(spec, config.extra_config) unless config.extra_config.empty?
45
+ add_custom_notes(spec, config.notes) unless config.notes.nil?
44
46
 
45
47
  if !config.clone_from_vm && ds.is_a?(RbVmomi::VIM::StoragePod)
46
48
 
@@ -233,6 +235,18 @@ module VagrantPlugins
233
235
  def add_custom_mem_reservation(spec, mem_reservation)
234
236
  spec[:config][:memoryAllocation] = RbVmomi::VIM.ResourceAllocationInfo(reservation: mem_reservation)
235
237
  end
238
+
239
+ def add_custom_extra_config(spec, extra_config = {})
240
+ return if extra_config.empty?
241
+
242
+ # extraConfig must be an array of hashes with `key` and `value`
243
+ # entries.
244
+ spec[:config][:extraConfig] = extra_config.map { |k, v| { 'key' => k, 'value' => v } }
245
+ end
246
+
247
+ def add_custom_notes(spec, notes)
248
+ spec[:config][:annotation] = notes
249
+ end
236
250
  end
237
251
  end
238
252
  end
@@ -11,6 +11,7 @@ module VagrantPlugins
11
11
  Vagrant::Action::Builder.new.tap do |b|
12
12
  b.use ConfigValidate
13
13
  b.use ConnectVSphere
14
+ b.use(ProvisionerCleanup, :before)
14
15
 
15
16
  b.use Call, IsRunning do |env, b2|
16
17
  if env[:result]
@@ -26,11 +26,14 @@ module VagrantPlugins
26
26
  attr_accessor :cpu_count
27
27
  attr_accessor :cpu_reservation
28
28
  attr_accessor :mem_reservation
29
+ attr_accessor :extra_config
30
+ attr_accessor :notes
29
31
 
30
32
  attr_reader :custom_attributes
31
33
 
32
34
  def initialize
33
35
  @custom_attributes = {}
36
+ @extra_config = {}
34
37
  end
35
38
 
36
39
  def custom_attribute(key, value)
@@ -1,5 +1,5 @@
1
1
  module VagrantPlugins
2
2
  module VSphere
3
- VERSION = '1.6.0'
3
+ VERSION = '1.7.0'
4
4
  end
5
5
  end
data/spec/action_spec.rb CHANGED
@@ -8,6 +8,9 @@ describe VagrantPlugins::VSphere::Action do
8
8
 
9
9
  before :each do
10
10
  @machine.stub(:id).and_return(EXISTING_UUID)
11
+ # Vagrant has some pretty buggy multi threading and their conditions
12
+ # check can fail if the wait_for_ready method returns right away
13
+ @machine.communicate.stub(:wait_for_ready) { sleep(1) }
11
14
  end
12
15
 
13
16
  describe 'up' do
data/spec/clone_spec.rb CHANGED
@@ -99,4 +99,31 @@ describe VagrantPlugins::VSphere::Action::Clone do
99
99
  config: RbVmomi::VIM.VirtualMachineConfigSpec }
100
100
  )
101
101
  end
102
+
103
+ it 'should set extraConfig if specified' do
104
+ @machine.provider_config.stub(:extra_config).and_return(
105
+ 'guestinfo.hostname' => 'somehost.testvm')
106
+ expected_config = RbVmomi::VIM.VirtualMachineConfigSpec(extraConfig: [
107
+ { 'key' => 'guestinfo.hostname', 'value' => 'somehost.testvm' }
108
+ ])
109
+
110
+ call
111
+ expect(@template).to have_received(:CloneVM_Task).with(
112
+ folder: @data_center,
113
+ name: NAME,
114
+ spec: { location: { pool: @child_resource_pool },
115
+ config: expected_config }
116
+ )
117
+ end
118
+
119
+ it 'should set custom notes when they are specified' do
120
+ @machine.provider_config.stub(:notes).and_return('custom_notes')
121
+ call
122
+ expect(@template).to have_received(:CloneVM_Task).with(
123
+ folder: @data_center,
124
+ name: NAME,
125
+ spec: { location: { pool: @child_resource_pool },
126
+ config: RbVmomi::VIM.VirtualMachineConfigSpec(annotation: 'custom_notes') }
127
+ )
128
+ end
102
129
  end
data/spec/spec_helper.rb CHANGED
@@ -59,7 +59,9 @@ RSpec.configure do |config|
59
59
  addressType: nil,
60
60
  cpu_reservation: nil,
61
61
  mem_reservation: nil,
62
- custom_attributes: {})
62
+ custom_attributes: {},
63
+ notes: nil,
64
+ extra_config: {})
63
65
  vm_config = double(
64
66
  vm: double('config_vm',
65
67
  box: nil,
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vagrant-vsphere
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.6.0
4
+ version: 1.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Grauch
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-01-21 00:00:00.000000000 Z
11
+ date: 2016-03-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nokogiri