vagrant-vsphere 0.19.0 → 0.19.1

Sign up to get free protection for your applications and to get access to all the features.
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