vagrant-vsphere 0.19.0 → 0.19.1

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.
data/Rakefile CHANGED
@@ -1,6 +1,7 @@
1
1
  require 'rubygems'
2
2
  require 'bundler/setup'
3
3
  require 'rspec/core/rake_task'
4
+ require 'rubocop/rake_task'
4
5
 
5
6
  # Immediately sync all stdout so that tools like buildbot can
6
7
  # immediately load in the output.
@@ -14,4 +15,6 @@ Bundler::GemHelper.install_tasks
14
15
 
15
16
  RSpec::Core::RakeTask.new
16
17
 
17
- task :default => 'spec'
18
+ RuboCop::RakeTask.new
19
+
20
+ task default: %w(rubocop spec)
@@ -6,18 +6,16 @@ module VagrantPlugins
6
6
  module Action
7
7
  include Vagrant::Action::Builtin
8
8
 
9
- #Vagrant commands
9
+ # Vagrant commands
10
10
  def self.action_destroy
11
11
  Vagrant::Action::Builder.new.tap do |b|
12
12
  b.use ConfigValidate
13
13
  b.use ConnectVSphere
14
14
 
15
15
  b.use Call, IsRunning do |env, b2|
16
- if [:result]
17
- b2.use Call, GracefulHalt, :poweroff, :running do |env, b3|
18
- if !env[:result]
19
- b3.use PowerOff
20
- end
16
+ if env[:result]
17
+ b2.use Call, GracefulHalt, :poweroff, :running do |env2, b3|
18
+ b3.use PowerOff unless env2[:result]
21
19
  end
22
20
  end
23
21
  end
@@ -29,13 +27,13 @@ module VagrantPlugins
29
27
  Vagrant::Action::Builder.new.tap do |b|
30
28
  b.use ConfigValidate
31
29
  b.use Call, IsCreated do |env, b2|
32
- if !env[:result]
30
+ unless env[:result]
33
31
  b2.use MessageNotCreated
34
32
  next
35
33
  end
36
34
 
37
- b2.use Call, IsRunning do |env, b3|
38
- if !env[:result]
35
+ b2.use Call, IsRunning do |env2, b3|
36
+ unless env2[:result]
39
37
  b3.use MessageNotRunning
40
38
  next
41
39
  end
@@ -51,13 +49,13 @@ module VagrantPlugins
51
49
  Vagrant::Action::Builder.new.tap do |b|
52
50
  b.use ConfigValidate
53
51
  b.use Call, IsCreated do |env, b2|
54
- if !env[:result]
52
+ unless env[:result]
55
53
  b2.use MessageNotCreated
56
54
  next
57
55
  end
58
56
 
59
- b2.use Call, IsRunning do |env, b3|
60
- if !env[:result]
57
+ b2.use Call, IsRunning do |env2, b3|
58
+ unless env2[:result]
61
59
  b3.use MessageNotRunning
62
60
  next
63
61
  end
@@ -72,13 +70,13 @@ module VagrantPlugins
72
70
  Vagrant::Action::Builder.new.tap do |b|
73
71
  b.use ConfigValidate
74
72
  b.use Call, IsCreated do |env, b2|
75
- if !env[:result]
73
+ unless env[:result]
76
74
  b2.use MessageNotCreated
77
75
  next
78
76
  end
79
77
 
80
- b2.use Call, IsRunning do |env, b3|
81
- if !env[:result]
78
+ b2.use Call, IsRunning do |env2, b3|
79
+ unless env2[:result]
82
80
  b3.use MessageNotRunning
83
81
  next
84
82
  end
@@ -103,9 +101,7 @@ module VagrantPlugins
103
101
  b2.use Clone
104
102
  end
105
103
  b.use Call, IsRunning do |env, b2|
106
- if !env[:result]
107
- b2.use PowerOn
108
- end
104
+ b2.use PowerOn unless env[:result]
109
105
  end
110
106
  b.use CloseVSphere
111
107
  b.use Provision
@@ -119,21 +115,19 @@ module VagrantPlugins
119
115
  b.use ConfigValidate
120
116
  b.use ConnectVSphere
121
117
  b.use Call, IsCreated do |env, b2|
122
- if !env[:result]
118
+ unless env[:result]
123
119
  b2.use MessageNotCreated
124
120
  next
125
121
  end
126
122
 
127
- b2.use Call, IsRunning do |env, b3|
128
- if !env[:result]
123
+ b2.use Call, IsRunning do |env2, b3|
124
+ unless env2[:result]
129
125
  b3.use MessageNotRunning
130
126
  next
131
127
  end
132
128
 
133
- b3.use Call, GracefulHalt, :poweroff, :running do |env, b4|
134
- if !env[:result]
135
- b4.use PowerOff
136
- end
129
+ b3.use Call, GracefulHalt, :poweroff, :running do |env3, b4|
130
+ b4.use PowerOff unless env3[:result]
137
131
  end
138
132
  end
139
133
  end
@@ -145,7 +139,7 @@ module VagrantPlugins
145
139
  Vagrant::Action::Builder.new.tap do |b|
146
140
  b.use ConnectVSphere
147
141
  b.use Call, IsCreated do |env, b2|
148
- if !env[:result]
142
+ unless env[:result]
149
143
  b2.use MessageNotCreated
150
144
  next
151
145
  end
@@ -155,7 +149,7 @@ module VagrantPlugins
155
149
  end
156
150
  end
157
151
 
158
- #vSphere specific actions
152
+ # vSphere specific actions
159
153
  def self.action_get_state
160
154
  Vagrant::Action::Builder.new.tap do |b|
161
155
  b.use HandleBox
@@ -175,7 +169,7 @@ module VagrantPlugins
175
169
  end
176
170
  end
177
171
 
178
- #autoload
172
+ # autoload
179
173
  action_root = Pathname.new(File.expand_path('../action', __FILE__))
180
174
  autoload :Clone, action_root.join('clone')
181
175
  autoload :CloseVSphere, action_root.join('close_vsphere')
@@ -10,7 +10,7 @@ module VagrantPlugins
10
10
  include Util::VimHelpers
11
11
  include Util::MachineHelpers
12
12
 
13
- def initialize(app, env)
13
+ def initialize(app, _env)
14
14
  @app = app
15
15
  end
16
16
 
@@ -21,17 +21,17 @@ module VagrantPlugins
21
21
  name = get_name machine, config, env[:root_path]
22
22
  dc = get_datacenter connection, machine
23
23
  template = dc.find_vm config.template_name
24
- raise Errors::VSphereError, :'missing_template' if template.nil?
24
+ fail Errors::VSphereError, :'missing_template' if template.nil?
25
25
  vm_base_folder = get_vm_base_folder dc, template, config
26
- raise Errors::VSphereError, :'invalid_base_path' if vm_base_folder.nil?
26
+ fail Errors::VSphereError, :'invalid_base_path' if vm_base_folder.nil?
27
27
 
28
28
  begin
29
- # Storage DRS does not support vSphere linked clones. http://www.vmware.com/files/pdf/techpaper/vsphere-storage-drs-interoperability.pdf
29
+ # Storage DRS does not support vSphere linked clones. http://www.vmware.com/files/pdf/techpaper/vsphere-storage-drs-interoperability.pdf
30
30
  ds = get_datastore dc, machine
31
- raise Errors::VSphereError, :'invalid_configuration_linked_clone_with_sdrs' if config.linked_clone and datastore.is_a? RbVmomi::VIM::StoragePod
31
+ fail Errors::VSphereError, :'invalid_configuration_linked_clone_with_sdrs' if config.linked_clone && datastore.is_a?(RbVmomi::VIM::StoragePod)
32
32
 
33
33
  location = get_location ds, dc, machine, template
34
- spec = RbVmomi::VIM.VirtualMachineCloneSpec :location => location, :powerOn => true, :template => false
34
+ spec = RbVmomi::VIM.VirtualMachineCloneSpec location: location, powerOn: true, template: false
35
35
  spec[:config] = RbVmomi::VIM.VirtualMachineConfigSpec
36
36
  customization_info = get_customization_spec_info_by_name connection, machine
37
37
 
@@ -41,47 +41,47 @@ module VagrantPlugins
41
41
  add_custom_memory(spec, config.memory_mb) unless config.memory_mb.nil?
42
42
  add_custom_cpu(spec, config.cpu_count) unless config.cpu_count.nil?
43
43
 
44
- if !config.clone_from_vm and ds.is_a? RbVmomi::VIM::StoragePod
44
+ if !config.clone_from_vm && ds.is_a?(RbVmomi::VIM::StoragePod)
45
45
 
46
- storageMgr = connection.serviceContent.storageResourceManager
47
- podSpec = RbVmomi::VIM.StorageDrsPodSelectionSpec(:storagePod => ds)
48
- # TODO: May want to add option on type?
49
- storageSpec = RbVmomi::VIM.StoragePlacementSpec(:type => 'clone', :cloneName => name, :folder => vm_base_folder, :podSelectionSpec => podSpec, :vm => template, :cloneSpec => spec)
46
+ storage_mgr = connection.serviceContent.storageResourceManager
47
+ pod_spec = RbVmomi::VIM.StorageDrsPodSelectionSpec(storagePod: ds)
48
+ # TODO: May want to add option on type?
49
+ storage_spec = RbVmomi::VIM.StoragePlacementSpec(type: 'clone', cloneName: name, folder: vm_base_folder, podSelectionSpec: pod_spec, vm: template, cloneSpec: spec)
50
50
 
51
51
  env[:ui].info I18n.t('vsphere.requesting_sdrs_recommendation')
52
52
  env[:ui].info " -- DatastoreCluster: #{ds.name}"
53
53
  env[:ui].info " -- Template VM: #{template.pretty_path}"
54
54
  env[:ui].info " -- Target VM: #{vm_base_folder.pretty_path}/#{name}"
55
55
 
56
- result = storageMgr.RecommendDatastores(:storageSpec => storageSpec)
56
+ result = storage_mgr.RecommendDatastores(storageSpec: storage_spec)
57
57
 
58
58
  recommendation = result.recommendations[0]
59
59
  key = recommendation.key ||= ''
60
60
  if key == ''
61
- raise Errors::VSphereError, :missing_datastore_recommendation
61
+ fail Errors::VSphereError, :missing_datastore_recommendation
62
62
  end
63
63
 
64
64
  env[:ui].info I18n.t('vsphere.creating_cloned_vm_sdrs')
65
65
  env[:ui].info " -- Storage DRS recommendation: #{recommendation.target.name} #{recommendation.reasonText}"
66
66
 
67
- applySRresult = storageMgr.ApplyStorageDrsRecommendation_Task(:key => [key]).wait_for_completion
68
- new_vm = applySRresult.vm
67
+ apply_sr_result = storage_mgr.ApplyStorageDrsRecommendation_Task(key: [key]).wait_for_completion
68
+ new_vm = apply_sr_result.vm
69
69
 
70
70
  else
71
71
 
72
72
  env[:ui].info I18n.t('vsphere.creating_cloned_vm')
73
- env[:ui].info " -- #{config.clone_from_vm ? "Source" : "Template"} VM: #{template.pretty_path}"
73
+ env[:ui].info " -- #{config.clone_from_vm ? 'Source' : 'Template'} VM: #{template.pretty_path}"
74
74
  env[:ui].info " -- Target VM: #{vm_base_folder.pretty_path}/#{name}"
75
75
 
76
- new_vm = template.CloneVM_Task(:folder => vm_base_folder, :name => name, :spec => spec).wait_for_completion
76
+ new_vm = template.CloneVM_Task(folder: vm_base_folder, name: name, spec: spec).wait_for_completion
77
77
  end
78
- rescue Errors::VSphereError => e
78
+ rescue Errors::VSphereError
79
79
  raise
80
- rescue Exception => e
80
+ rescue StandardError => e
81
81
  raise Errors::VSphereError.new, e.message
82
82
  end
83
83
 
84
- #TODO: handle interrupted status in the environment, should the vm be destroyed?
84
+ # TODO: handle interrupted status in the environment, should the vm be destroyed?
85
85
 
86
86
  machine.id = new_vm.config.uuid
87
87
 
@@ -103,7 +103,7 @@ module VagrantPlugins
103
103
  return customization_spec if private_networks.nil?
104
104
 
105
105
  # make sure we have enough NIC settings to override with the private network settings
106
- raise Errors::VSphereError, :'too_many_private_networks' if private_networks.length > customization_spec.nicSettingMap.length
106
+ fail Errors::VSphereError, :'too_many_private_networks' if private_networks.length > customization_spec.nicSettingMap.length
107
107
 
108
108
  # assign the private network IP to the NIC
109
109
  private_networks.each_index do |idx|
@@ -124,28 +124,28 @@ module VagrantPlugins
124
124
  # Thus, this code first create a delta disk on top of the base disk for
125
125
  # the to-be-cloned VM, if delta disks aren't used already.
126
126
  disks = template.config.hardware.device.grep(RbVmomi::VIM::VirtualDisk)
127
- disks.select { |disk| disk.backing.parent == nil }.each do |disk|
127
+ disks.select { |disk| disk.backing.parent.nil? }.each do |disk|
128
128
  spec = {
129
- :deviceChange => [
130
- {
131
- :operation => :remove,
132
- :device => disk
133
- },
134
- {
135
- :operation => :add,
136
- :fileOperation => :create,
137
- :device => disk.dup.tap { |new_disk|
138
- new_disk.backing = new_disk.backing.dup
139
- new_disk.backing.fileName = "[#{disk.backing.datastore.name}]"
140
- new_disk.backing.parent = disk.backing
141
- },
142
- }
143
- ]
129
+ deviceChange: [
130
+ {
131
+ operation: :remove,
132
+ device: disk
133
+ },
134
+ {
135
+ operation: :add,
136
+ fileOperation: :create,
137
+ device: disk.dup.tap do |new_disk|
138
+ new_disk.backing = new_disk.backing.dup
139
+ new_disk.backing.fileName = "[#{disk.backing.datastore.name}]"
140
+ new_disk.backing.parent = disk.backing
141
+ end
142
+ }
143
+ ]
144
144
  }
145
- template.ReconfigVM_Task(:spec => spec).wait_for_completion
145
+ template.ReconfigVM_Task(spec: spec).wait_for_completion
146
146
  end
147
147
 
148
- location = RbVmomi::VIM.VirtualMachineRelocateSpec(:diskMoveType => :moveChildMostDiskBacking)
148
+ location = RbVmomi::VIM.VirtualMachineRelocateSpec(diskMoveType: :moveChildMostDiskBacking)
149
149
  elsif datastore.is_a? RbVmomi::VIM::StoragePod
150
150
  location = RbVmomi::VIM.VirtualMachineRelocateSpec
151
151
  else
@@ -160,17 +160,17 @@ module VagrantPlugins
160
160
  def get_name(machine, config, root_path)
161
161
  return config.name unless config.name.nil?
162
162
 
163
- prefix = "#{root_path.basename.to_s}_#{machine.name}"
164
- prefix.gsub!(/[^-a-z0-9_\.]/i, "")
163
+ prefix = "#{root_path.basename}_#{machine.name}"
164
+ prefix.gsub!(/[^-a-z0-9_\.]/i, '')
165
165
  # milliseconds + random number suffix to allow for simultaneous `vagrant up` of the same box in different dirs
166
- prefix + "_#{(Time.now.to_f * 1000.0).to_i}_#{rand(100000)}"
166
+ prefix + "_#{(Time.now.to_f * 1000.0).to_i}_#{rand(100_000)}"
167
167
  end
168
168
 
169
169
  def get_vm_base_folder(dc, template, config)
170
170
  if config.vm_base_path.nil?
171
171
  template.parent
172
172
  else
173
- dc.vmFolder.traverse(config.vm_base_path, RbVmomi::VIM::Folder, create = true)
173
+ dc.vmFolder.traverse(config.vm_base_path, RbVmomi::VIM::Folder, true)
174
174
  end
175
175
  end
176
176
 
@@ -182,7 +182,7 @@ module VagrantPlugins
182
182
 
183
183
  yield(@card)
184
184
 
185
- dev_spec = RbVmomi::VIM.VirtualDeviceConfigSpec(:device => @card, :operation => "edit")
185
+ dev_spec = RbVmomi::VIM.VirtualDeviceConfigSpec(device: @card, operation: 'edit')
186
186
  spec[:config][:deviceChange].push dev_spec
187
187
  spec[:config][:deviceChange].uniq!
188
188
  end
@@ -198,11 +198,11 @@ module VagrantPlugins
198
198
 
199
199
  modify_network_card(template, spec) do |card|
200
200
  begin
201
- switch_port = RbVmomi::VIM.DistributedVirtualSwitchPortConnection(:switchUuid => network.config.distributedVirtualSwitch.uuid, :portgroupKey => network.key)
201
+ switch_port = RbVmomi::VIM.DistributedVirtualSwitchPortConnection(switchUuid: network.config.distributedVirtualSwitch.uuid, portgroupKey: network.key)
202
202
  card.backing.port = switch_port
203
203
  rescue
204
204
  # not connected to a distibuted switch?
205
- card.backing = RbVmomi::VIM::VirtualEthernetCardNetworkBackingInfo(:network => network, :deviceName => network.name)
205
+ card.backing = RbVmomi::VIM::VirtualEthernetCardNetworkBackingInfo(network: network, deviceName: network.name)
206
206
  end
207
207
  end
208
208
  end
@@ -4,21 +4,19 @@ module VagrantPlugins
4
4
  module VSphere
5
5
  module Action
6
6
  class CloseVSphere
7
- def initialize(app, env)
7
+ def initialize(app, _env)
8
8
  @app = app
9
9
  end
10
10
 
11
11
  def call(env)
12
- begin
13
- env[:vSphere_connection].close
14
- @app.call env
15
- rescue Errors::VSphereError => e
16
- raise
17
- rescue Exception => e
18
- raise Errors::VSphereError.new, e.message
19
- end
12
+ env[:vSphere_connection].close
13
+ @app.call env
14
+ rescue Errors::VSphereError
15
+ raise
16
+ rescue StandardError => e
17
+ raise Errors::VSphereError.new, e.message
20
18
  end
21
19
  end
22
20
  end
23
21
  end
24
- end
22
+ end
@@ -4,7 +4,7 @@ module VagrantPlugins
4
4
  module VSphere
5
5
  module Action
6
6
  class ConnectVSphere
7
- def initialize(app, env)
7
+ def initialize(app, _env)
8
8
  @app = app
9
9
  end
10
10
 
@@ -13,13 +13,13 @@ module VagrantPlugins
13
13
 
14
14
  begin
15
15
  env[:vSphere_connection] = RbVmomi::VIM.connect host: config.host,
16
- user: config.user, password: config.password,
17
- insecure: config.insecure, proxyHost: config.proxy_host,
18
- proxyPort: config.proxy_port
16
+ user: config.user, password: config.password,
17
+ insecure: config.insecure, proxyHost: config.proxy_host,
18
+ proxyPort: config.proxy_port
19
19
  @app.call env
20
- rescue Errors::VSphereError => e
20
+ rescue Errors::VSphereError
21
21
  raise
22
- rescue Exception => e
22
+ rescue StandardError => e
23
23
  raise Errors::VSphereError.new, e.message
24
24
  end
25
25
  end
@@ -8,7 +8,7 @@ module VagrantPlugins
8
8
  class Destroy
9
9
  include Util::VimHelpers
10
10
 
11
- def initialize(app, env)
11
+ def initialize(app, _env)
12
12
  @app = app
13
13
  end
14
14
 
@@ -19,8 +19,8 @@ module VagrantPlugins
19
19
  @app.call env
20
20
  end
21
21
 
22
- private
23
-
22
+ private
23
+
24
24
  def destroy_vm(env)
25
25
  vm = get_vm_by_uuid env[:vSphere_connection], env[:machine]
26
26
  return if vm.nil?
@@ -28,13 +28,13 @@ module VagrantPlugins
28
28
  begin
29
29
  env[:ui].info I18n.t('vsphere.destroy_vm')
30
30
  vm.Destroy_Task.wait_for_completion
31
- rescue Errors::VSphereError => e
31
+ rescue Errors::VSphereError
32
32
  raise
33
- rescue Exception => e
33
+ rescue StandardError => e
34
34
  raise Errors::VSphereError.new, e.message
35
35
  end
36
36
  end
37
37
  end
38
38
  end
39
39
  end
40
- end
40
+ end
@@ -7,8 +7,7 @@ module VagrantPlugins
7
7
  class GetSshInfo
8
8
  include Util::VimHelpers
9
9
 
10
-
11
- def initialize(app, env)
10
+ def initialize(app, _env)
12
11
  @app = app
13
12
  end
14
13
 
@@ -27,9 +26,9 @@ module VagrantPlugins
27
26
 
28
27
  return nil if vm.nil?
29
28
  return nil if vm.guest.ipAddress.nil? || vm.guest.ipAddress.empty?
30
- return {
31
- :host => vm.guest.ipAddress,
32
- :port => 22
29
+ {
30
+ host: vm.guest.ipAddress,
31
+ port: 22
33
32
  }
34
33
  end
35
34
  end