fog-vsphere 1.9.0 → 1.9.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.
Files changed (27) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +4 -0
  3. data/lib/fog/vsphere/compute.rb +10 -1
  4. data/lib/fog/vsphere/requests/compute/create_vm.rb +1 -1
  5. data/lib/fog/vsphere/requests/compute/current_time.rb +1 -1
  6. data/lib/fog/vsphere/requests/compute/get_datacenter.rb +1 -1
  7. data/lib/fog/vsphere/requests/compute/get_datastore.rb +1 -1
  8. data/lib/fog/vsphere/requests/compute/get_network.rb +1 -1
  9. data/lib/fog/vsphere/requests/compute/get_storage_pod.rb +1 -1
  10. data/lib/fog/vsphere/requests/compute/get_virtual_machine.rb +1 -1
  11. data/lib/fog/vsphere/requests/compute/list_customfields.rb +1 -1
  12. data/lib/fog/vsphere/requests/compute/list_datacenters.rb +2 -2
  13. data/lib/fog/vsphere/requests/compute/list_processes.rb +1 -1
  14. data/lib/fog/vsphere/requests/compute/list_storage_pods.rb +1 -1
  15. data/lib/fog/vsphere/requests/compute/list_templates.rb +1 -1
  16. data/lib/fog/vsphere/requests/compute/list_virtual_machines.rb +1 -1
  17. data/lib/fog/vsphere/requests/compute/upload_iso.rb +1 -1
  18. data/lib/fog/vsphere/requests/compute/vm_clone.rb +1 -1
  19. data/lib/fog/vsphere/requests/compute/vm_config_vnc.rb +2 -2
  20. data/lib/fog/vsphere/requests/compute/vm_execute.rb +2 -2
  21. data/lib/fog/vsphere/requests/compute/vm_migrate.rb +1 -1
  22. data/lib/fog/vsphere/requests/compute/vm_power_off.rb +1 -1
  23. data/lib/fog/vsphere/requests/compute/vm_power_on.rb +1 -1
  24. data/lib/fog/vsphere/requests/compute/vm_reboot.rb +1 -1
  25. data/lib/fog/vsphere/requests/compute/vm_suspend.rb +1 -1
  26. data/lib/fog/vsphere/version.rb +1 -1
  27. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6be1e2a1637899ea613c7b58dbab33a4414d252e
4
- data.tar.gz: c52b5f6072294919ff343ce384213b6ef2eb04b2
3
+ metadata.gz: 06eca68fe929424802778ca57a027d81db538f60
4
+ data.tar.gz: 2118bba5d8f23607ddf6133f4fb81fafd58c113d
5
5
  SHA512:
6
- metadata.gz: 07c537deccc790717d3166a6de38eba43338e7c59ea12d5073bcf4c2090cb7f4f1f094669d8d262de3c412a83b6f05d59f7940fc725dd54c76361da436206a2b
7
- data.tar.gz: 010e3c52e24594f2088f5649145cae621a2aa874250680f48d92815a568017016e73b979f55357e841355bc68595fbc095d9b339d5366659d4181d2d2958a18e
6
+ metadata.gz: 255282ce591683af7e4edd73719d73b6d541acfa33ba2017a1439368431f9a29de7de33b78a6fa5bb422886651088b7f01f554329adb8f0d643ed178da499e85
7
+ data.tar.gz: 8fecbdda3f9b1f05065976b221557b0dbd1f8f2c3197889948b02e21014975d2f8ce565468e6e62b2d210ed57fabba6b94f700a42ef7df94a398882c8afdb954
data/CHANGELOG.md CHANGED
@@ -1,3 +1,7 @@
1
+ ## v1.9.1
2
+
3
+ * Ensure connection has not been closed before using
4
+
1
5
  ## v1.9.0
2
6
 
3
7
  * Add :connectable option to `update_vm_interface`
@@ -156,7 +156,7 @@ module Fog
156
156
  }
157
157
 
158
158
  def convert_vm_view_to_attr_hash(vms)
159
- vms = @connection.serviceContent.propertyCollector.collectMultiple(vms,*ATTR_TO_PROP.values.uniq)
159
+ vms = connection.serviceContent.propertyCollector.collectMultiple(vms,*ATTR_TO_PROP.values.uniq)
160
160
  vms.map { |vm| props_to_attr_hash(*vm) }
161
161
  end
162
162
 
@@ -525,6 +525,15 @@ module Fog
525
525
  authenticate
526
526
  end
527
527
 
528
+ def connection
529
+ if @connection.nil? || @connection.serviceContent.sessionManager.currentSession.nil?
530
+ Fog::Logger.debug('Reconnecting to vSphere.')
531
+ @connection = nil
532
+ reload
533
+ end
534
+ @connection
535
+ end
536
+
528
537
  def reload
529
538
  connect
530
539
  # Check if the negotiation was ever run
@@ -60,7 +60,7 @@ module Fog
60
60
  :configSpec => vm_cfg,
61
61
  :host => host,
62
62
  )
63
- srm = @connection.serviceContent.storageResourceManager
63
+ srm = connection.serviceContent.storageResourceManager
64
64
  result = srm.RecommendDatastores(:storageSpec => storage_spec)
65
65
 
66
66
  # if result array contains recommendation, we can apply it
@@ -3,7 +3,7 @@ module Fog
3
3
  class Vsphere
4
4
  class Real
5
5
  def current_time
6
- current_time = @connection.serviceInstance.CurrentTime
6
+ current_time = connection.serviceInstance.CurrentTime
7
7
  { 'current_time' => current_time }
8
8
  end
9
9
  end
@@ -15,7 +15,7 @@ module Fog
15
15
  end
16
16
 
17
17
  def get_raw_datacenter name
18
- @connection.serviceInstance.find_datacenter(name)
18
+ connection.serviceInstance.find_datacenter(name)
19
19
  end
20
20
  end
21
21
 
@@ -13,7 +13,7 @@ module Fog
13
13
  def get_raw_datastore(name, datacenter_name)
14
14
  dc = find_raw_datacenter(datacenter_name)
15
15
 
16
- @connection.serviceContent.viewManager.CreateContainerView({
16
+ connection.serviceContent.viewManager.CreateContainerView({
17
17
  :container => dc.datastoreFolder,
18
18
  :type => ["Datastore"],
19
19
  :recursive => true
@@ -23,7 +23,7 @@ module Fog
23
23
 
24
24
  def get_all_raw_networks(datacenter_name)
25
25
  dc = find_raw_datacenter(datacenter_name)
26
- @connection.serviceContent.viewManager.
26
+ connection.serviceContent.viewManager.
27
27
  CreateContainerView({
28
28
  :container => dc.networkFolder,
29
29
  :type => ["Network"],
@@ -13,7 +13,7 @@ module Fog
13
13
  def get_raw_storage_pod(name, datacenter_name)
14
14
  dc = find_raw_datacenter(datacenter_name)
15
15
 
16
- @connection.serviceContent.viewManager.CreateContainerView({
16
+ connection.serviceContent.viewManager.CreateContainerView({
17
17
  :container => dc,
18
18
  :type => ["StoragePod"],
19
19
  :recursive => true
@@ -16,7 +16,7 @@ module Fog
16
16
  when true
17
17
  params = {:uuid => id, :vmSearch => true, :instanceUuid => true}
18
18
  params[:datacenter] = raw_datacenter if dc
19
- @connection.searchIndex.FindByUuid(params)
19
+ connection.searchIndex.FindByUuid(params)
20
20
  else
21
21
  # try to find based on VM name
22
22
  if dc
@@ -3,7 +3,7 @@ module Fog
3
3
  class Vsphere
4
4
  class Real
5
5
  def list_customfields()
6
- @connection.serviceContent.customFieldsManager.field.map do |customfield|
6
+ connection.serviceContent.customFieldsManager.field.map do |customfield|
7
7
  {
8
8
  :key => customfield.key.to_i,
9
9
  :name => customfield.name,
@@ -16,7 +16,7 @@ module Fog
16
16
  protected
17
17
 
18
18
  def raw_getpathmo mo
19
- if mo.parent == nil or mo.parent.name == @connection.rootFolder.name then
19
+ if mo.parent == nil or mo.parent.name == connection.rootFolder.name then
20
20
  [ mo.name ]
21
21
  else
22
22
  [ raw_getpathmo(mo.parent), mo.name ].flatten
@@ -24,7 +24,7 @@ module Fog
24
24
  end
25
25
 
26
26
  def raw_datacenters folder=nil
27
- folder ||= @connection.rootFolder
27
+ folder ||= connection.rootFolder
28
28
  @raw_datacenters ||= get_raw_datacenters_from_folder folder
29
29
  end
30
30
 
@@ -11,7 +11,7 @@ module Fog
11
11
  :interactiveSession => false
12
12
  )
13
13
 
14
- p_manager = @connection.serviceContent.guestOperationsManager.processManager
14
+ p_manager = connection.serviceContent.guestOperationsManager.processManager
15
15
  processes = p_manager.ListProcessesInGuest(:vm => vm, :auth => auth)
16
16
  processes.map do |pi|
17
17
  Process.new(
@@ -13,7 +13,7 @@ module Fog
13
13
  def raw_storage_pods(datacenter_name)
14
14
  dc = find_raw_datacenter(datacenter_name)
15
15
 
16
- @connection.serviceContent.viewManager.CreateContainerView({
16
+ connection.serviceContent.viewManager.CreateContainerView({
17
17
  :container => dc,
18
18
  :type => ["StoragePod"],
19
19
  :recursive => true
@@ -27,7 +27,7 @@ module Fog
27
27
  datacenters = find_datacenters(options[:datacenter])
28
28
 
29
29
  vms = datacenters.map do |dc|
30
- @connection.serviceContent.viewManager.CreateContainerView({
30
+ connection.serviceContent.viewManager.CreateContainerView({
31
31
  :container => dc.vmFolder,
32
32
  :type => ["VirtualMachine"],
33
33
  :recursive => true
@@ -62,7 +62,7 @@ module Fog
62
62
  ## much faster to interact for some functions.
63
63
  datacenters = find_datacenters(datacenter_name)
64
64
  datacenters.map do |dc|
65
- @connection.serviceContent.viewManager.CreateContainerView({
65
+ connection.serviceContent.viewManager.CreateContainerView({
66
66
  :container => dc.vmFolder,
67
67
  :type => ["VirtualMachine"],
68
68
  :recursive => true
@@ -22,7 +22,7 @@ module Fog
22
22
  datacenter = get_raw_datacenter(options['datacenter'])
23
23
  filename = options['filename'] || File.basename(options['local_path'])
24
24
  unless datastore.exists? options['upload_directory']+'/'
25
- @connection.serviceContent.fileManager.MakeDirectory :name => "[#{options['datastore']}] #{options['upload_directory']}",
25
+ connection.serviceContent.fileManager.MakeDirectory :name => "[#{options['datastore']}] #{options['upload_directory']}",
26
26
  :datacenter => datacenter,
27
27
  :createParentDirectories => false
28
28
  end
@@ -618,7 +618,7 @@ module Fog
618
618
  :cloneName => options['name'],
619
619
  :vm => vm_mob_ref,
620
620
  )
621
- srm = @connection.serviceContent.storageResourceManager
621
+ srm = connection.serviceContent.storageResourceManager
622
622
  result = srm.RecommendDatastores(:storageSpec => storage_spec)
623
623
 
624
624
  # if result array contains recommendation, we can apply it
@@ -6,7 +6,7 @@ module Fog
6
6
  raise ArgumentError, "instance_uuid is a required parameter" unless options.key? 'instance_uuid'
7
7
 
8
8
  search_filter = { :uuid => options['instance_uuid'], 'vmSearch' => true, 'instanceUuid' => true }
9
- vm_mob_ref = @connection.searchIndex.FindAllByUuid(search_filter).first
9
+ vm_mob_ref = connection.searchIndex.FindAllByUuid(search_filter).first
10
10
  task = vm_mob_ref.ReconfigVM_Task(:spec => {
11
11
  :extraConfig => [
12
12
  { :key => 'RemoteDisplay.vnc.enabled', :value => options[:enabled] ? 'true' : 'false' },
@@ -21,7 +21,7 @@ module Fog
21
21
  # return a hash of VNC attributes required to view the console
22
22
  def vm_get_vnc uuid
23
23
  search_filter = { :uuid => uuid, 'vmSearch' => true, 'instanceUuid' => true }
24
- vm = @connection.searchIndex.FindAllByUuid(search_filter).first
24
+ vm = connection.searchIndex.FindAllByUuid(search_filter).first
25
25
  Hash[vm.config.extraConfig.map do |config|
26
26
  if config.key =~ /^RemoteDisplay\.vnc\.(\w+)$/
27
27
  [$1.to_sym, config.value]
@@ -18,7 +18,7 @@ module Fog
18
18
  raise ArgumentError, "password is a required parameter" unless options.key? 'password'
19
19
 
20
20
  search_filter = { :uuid => options['instance_uuid'], 'vmSearch' => true, 'instanceUuid' => true }
21
- vm_mob_ref = @connection.searchIndex.FindAllByUuid(search_filter).first
21
+ vm_mob_ref = connection.searchIndex.FindAllByUuid(search_filter).first
22
22
 
23
23
  auth = RbVmomi::VIM::NamePasswordAuthentication(:interactiveSession => false,
24
24
  :username => options['user'],
@@ -28,7 +28,7 @@ module Fog
28
28
  :arguments => options['args'],
29
29
  :workingDirectory => options['working_dir'])
30
30
 
31
- gom = @connection.serviceContent.guestOperationsManager
31
+ gom = connection.serviceContent.guestOperationsManager
32
32
  gom.processManager.StartProgramInGuest(:vm => vm_mob_ref, :auth => auth, :spec => spec)
33
33
  end
34
34
  end
@@ -9,7 +9,7 @@ module Fog
9
9
 
10
10
  # Find the VM Object
11
11
  search_filter = { :uuid => options['instance_uuid'], 'vmSearch' => true, 'instanceUuid' => true }
12
- vm_mob_ref = @connection.searchIndex.FindAllByUuid(search_filter).first
12
+ vm_mob_ref = connection.searchIndex.FindAllByUuid(search_filter).first
13
13
 
14
14
  unless vm_mob_ref.kind_of? RbVmomi::VIM::VirtualMachine
15
15
  raise Fog::Vsphere::Errors::NotFound,
@@ -7,7 +7,7 @@ module Fog
7
7
  raise ArgumentError, "instance_uuid is a required parameter" unless options.key? 'instance_uuid'
8
8
 
9
9
  search_filter = { :uuid => options['instance_uuid'], 'vmSearch' => true, 'instanceUuid' => true }
10
- vm_mob_ref = @connection.searchIndex.FindAllByUuid(search_filter).first
10
+ vm_mob_ref = connection.searchIndex.FindAllByUuid(search_filter).first
11
11
 
12
12
  if options['force'] then
13
13
  task = vm_mob_ref.PowerOffVM_Task
@@ -6,7 +6,7 @@ module Fog
6
6
  raise ArgumentError, "instance_uuid is a required parameter" unless options.key? 'instance_uuid'
7
7
 
8
8
  search_filter = { :uuid => options['instance_uuid'], 'vmSearch' => true, 'instanceUuid' => true }
9
- vm_mob_ref = @connection.searchIndex.FindAllByUuid(search_filter).first
9
+ vm_mob_ref = connection.searchIndex.FindAllByUuid(search_filter).first
10
10
 
11
11
  task = vm_mob_ref.PowerOnVM_Task
12
12
  task.wait_for_completion
@@ -7,7 +7,7 @@ module Fog
7
7
  raise ArgumentError, "instance_uuid is a required parameter" unless options.key? 'instance_uuid'
8
8
 
9
9
  search_filter = { :uuid => options['instance_uuid'], 'vmSearch' => true, 'instanceUuid' => true }
10
- vm_mob_ref = @connection.searchIndex.FindAllByUuid(search_filter).first
10
+ vm_mob_ref = connection.searchIndex.FindAllByUuid(search_filter).first
11
11
 
12
12
  if options['force'] then
13
13
  task = vm_mob_ref.ResetVM_Task
@@ -7,7 +7,7 @@ module Fog
7
7
  options = { 'force' => false }.merge(options)
8
8
 
9
9
  search_filter = { :uuid => options['instance_uuid'], 'vmSearch' => true, 'instanceUuid' => true }
10
- vm = @connection.searchIndex.FindAllByUuid(search_filter).first
10
+ vm = connection.searchIndex.FindAllByUuid(search_filter).first
11
11
 
12
12
  if options['force']
13
13
  suspend_forcefully(vm)
@@ -1,5 +1,5 @@
1
1
  module Fog
2
2
  module Vsphere
3
- VERSION = '1.9.0'.freeze
3
+ VERSION = '1.9.1'.freeze
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fog-vsphere
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.9.0
4
+ version: 1.9.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - J.R. Garcia
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-03-30 00:00:00.000000000 Z
11
+ date: 2017-04-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: fog-core