vmware_web_service 1.0.5 → 2.0.2

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
  SHA256:
3
- metadata.gz: 41d35593f9823b06bc56a23afab180ed7aafd1c3d96f28789328d0b22ba0cbc9
4
- data.tar.gz: 3a019d2b5c772c7a3421a65d4004fac15730c7e05c951dca74ab078daa2646e6
3
+ metadata.gz: 77fcee14b8adf4ff299e6f703078e3d2bbf62aba13be17e4a6253a010cae18f1
4
+ data.tar.gz: 86972a49c90161ae859753f7470e4e415b336e1178a554036aac0f24362588f2
5
5
  SHA512:
6
- metadata.gz: 1fc01631af5d5201a5949fe905ef496e8de89d36483e550b6cc5f961ac93c68be684366c03484e6289417e26a2b40d2b1ff2e7c2ad194ab5d3a338983bfa5371
7
- data.tar.gz: edab43df0d56713eb7b465cf92606963790eb0d58b30b73966c1dbc6bb10015816e0fc247c49ef9544971dc1cbcf62b5bdeea9977a06596240b9373a6db6c361
6
+ metadata.gz: eb2c3b6c7e80fed7f4b5d2cc63d4556103ffd0a6b57442896b0edc262601de38e0ab394bf2d75b1a2bc7e67788f766d4864668d47ad1c1d3001bcd0395db135d
7
+ data.tar.gz: def519ee4ed00ad05cb3590f7decddbf90a5e8b408b3df34223685a27cb3387675120a210ae5c1e58135a6c1609bb022ad56428a816ef81df6f1190437a91962
@@ -1,7 +1,6 @@
1
1
  require 'sync'
2
2
 
3
3
  require 'VMwareWebService/MiqVimInventory'
4
- require 'VMwareWebService/MiqPbmInventory'
5
4
  require 'VMwareWebService/MiqVimVm'
6
5
  require 'VMwareWebService/MiqVimVdlMod'
7
6
  require 'VMwareWebService/MiqVimFolder'
@@ -17,7 +16,6 @@ require 'VMwareWebService/MiqVimUpdate'
17
16
 
18
17
  class MiqVim < MiqVimInventory
19
18
  include MiqVimVdlConnectionMod
20
- include MiqPbmInventory
21
19
  include MiqVimUpdate
22
20
 
23
21
  attr_reader :updateThread, :monitor_updates
@@ -35,8 +33,6 @@ class MiqVim < MiqVimInventory
35
33
  def initialize(server, username, password, cacheScope = nil, monitor_updates = false, preLoad = false, debugUpdates = false, notifyMethod = nil, maxWait = 60, maxObjects = 250)
36
34
  super(server, username, password, cacheScope)
37
35
 
38
- pbm_initialize(self)
39
-
40
36
  @monitor_updates = monitor_updates
41
37
  @updateMonitorReady = false
42
38
  @error = nil
@@ -34,7 +34,7 @@ class MiqVimCustomizationSpecManager
34
34
  specs = info
35
35
  return [] if specs.nil?
36
36
 
37
- specs = specs.dup.to_miq_a
37
+ specs = Array.wrap(specs.dup)
38
38
  specs.each { |s| s['spec'] = getCustomizationSpec(s['name'].to_s).spec }
39
39
  specs
40
40
  end
@@ -290,8 +290,8 @@ class MiqVimDataStore
290
290
  if block_given?
291
291
  open(fileUrl, options) { |ret| yield(ret) }
292
292
  else
293
- meta = {}; data = nil
294
- open(fileUrl, options) { |ret| data = ret.read; meta = ret.meta }
293
+ data = nil
294
+ open(fileUrl, options) { |ret| data = ret.read }
295
295
  return data
296
296
  end
297
297
  end
@@ -366,7 +366,12 @@ class MiqVimInventory < MiqVimClientBase
366
366
  #
367
367
  # Hash snapshot info by create time.
368
368
  #
369
- ssMorHash[ssObj['createTime']] = ssObj
369
+ # VMware API strips trailing '0's from the fractional seconds
370
+ # which causes the string to not match what .iso8601(6) returns
371
+ #
372
+ # Example 12:12:59.123Z instead of 12:12:59.123000Z
373
+ create_time = Time.parse(ssObj['createTime']).iso8601(6)
374
+ ssMorHash[create_time] = ssObj
370
375
 
371
376
  #
372
377
  # Ensure childSnapshotList is always present and always an array,
@@ -1138,18 +1143,18 @@ class MiqVimInventory < MiqVimClientBase
1138
1143
 
1139
1144
  $vim_log.info "MiqVimInventory.datacenters_locked: loading Datacenter cache for #{@connId}"
1140
1145
  begin
1141
- @cacheLock.sync_lock(:EX) if (unlock = @cacheLock.sync_shared?)
1146
+ @cacheLock.sync_lock(:EX) if (unlock = @cacheLock.sync_shared?)
1142
1147
 
1143
- ra = getMoPropMulti(inventoryHash_locked['Datacenter'], @propMap[:Datacenter][:props])
1148
+ ra = getMoPropMulti(inventoryHash_locked['Datacenter'], @propMap[:Datacenter][:props])
1144
1149
 
1145
- @datacenters = {}
1146
- @datacentersByMor = {}
1147
- ra.each do |dcObj|
1148
- addObjHash(:Datacenter, dcObj)
1150
+ @datacenters = {}
1151
+ @datacentersByMor = {}
1152
+ ra.each do |dcObj|
1153
+ addObjHash(:Datacenter, dcObj)
1154
+ end
1155
+ ensure
1156
+ @cacheLock.sync_unlock if unlock
1149
1157
  end
1150
- ensure
1151
- @cacheLock.sync_unlock if unlock
1152
- end
1153
1158
  $vim_log.info "MiqVimInventory.datacenters_locked: loaded Datacenter cache for #{@connId}"
1154
1159
 
1155
1160
  @datacenters
@@ -112,7 +112,7 @@ module MiqVimUpdate
112
112
  version = updates_version
113
113
  sleep @updateDelay if @updateDelay
114
114
  end # while @monitor
115
- rescue SignalException => err
115
+ rescue SignalException
116
116
  # Ignore signals, except TERM
117
117
  rescue => herr
118
118
  if herr.respond_to?(:reason) && herr.reason == 'The task was canceled by a user.'
@@ -87,14 +87,6 @@ class MiqVimVm
87
87
  # @invObj.releaseObj(self)
88
88
  end
89
89
 
90
- def vmMor
91
- (@vmMor)
92
- end
93
-
94
- def vmh
95
- (@vmh)
96
- end
97
-
98
90
  #######################
99
91
  # Power state methods.
100
92
  #######################
@@ -317,24 +309,24 @@ class MiqVimVm
317
309
  return(@snapshotInfo) if @snapshotInfo && !refresh
318
310
 
319
311
  begin
320
- @cacheLock.sync_lock(:EX) if (unlock = @cacheLock.sync_shared?)
321
-
322
- unless (ssp = @invObj.getMoProp_local(@vmMor, "snapshot"))
323
- @snapshotInfo = nil
324
- return(nil)
325
- end
312
+ @cacheLock.sync_lock(:EX) if (unlock = @cacheLock.sync_shared?)
326
313
 
327
- ssObj = ssp["snapshot"]
328
- ssMorHash = {}
329
- rsl = ssObj['rootSnapshotList']
330
- rsl = [rsl] unless rsl.kind_of?(Array)
331
- rsl.each { |rs| @invObj.snapshotFixup(rs, ssMorHash) }
332
- ssObj['ssMorHash'] = ssMorHash
333
- @snapshotInfo = ssObj
334
- ensure
335
- @cacheLock.sync_unlock if unlock
314
+ unless (ssp = @invObj.getMoProp_local(@vmMor, "snapshot"))
315
+ @snapshotInfo = nil
316
+ return(nil)
336
317
  end
337
318
 
319
+ ssObj = ssp["snapshot"]
320
+ ssMorHash = {}
321
+ rsl = ssObj['rootSnapshotList']
322
+ rsl = [rsl] unless rsl.kind_of?(Array)
323
+ rsl.each { |rs| @invObj.snapshotFixup(rs, ssMorHash) }
324
+ ssObj['ssMorHash'] = ssMorHash
325
+ @snapshotInfo = ssObj
326
+ ensure
327
+ @cacheLock.sync_unlock if unlock
328
+ end
329
+
338
330
  (@snapshotInfo)
339
331
  end # def snapshotInfo_locked
340
332
 
@@ -800,11 +792,11 @@ class MiqVimVm
800
792
  bck.writeThrough = "false"
801
793
  bck.fileName = backingFile
802
794
  begin
803
- dsn = @invObj.path2dsName(@dsPath)
804
- bck.datastore = @invObj.dsName2mo_local(dsn)
805
- rescue
806
- bck.datastore = nil
807
- end
795
+ dsn = @invObj.path2dsName(@dsPath)
796
+ bck.datastore = @invObj.dsName2mo_local(dsn)
797
+ rescue
798
+ bck.datastore = nil
799
+ end
808
800
  end
809
801
  end
810
802
  end
@@ -856,11 +848,11 @@ class MiqVimVm
856
848
  bck.writeThrough = "false"
857
849
  bck.fileName = backingFile
858
850
  begin
859
- dsn = @invObj.path2dsName(@dsPath)
860
- bck.datastore = @invObj.dsName2mo(dsn)
861
- rescue
862
- bck.datastore = nil
863
- end
851
+ dsn = @invObj.path2dsName(@dsPath)
852
+ bck.datastore = @invObj.dsName2mo(dsn)
853
+ rescue
854
+ bck.datastore = nil
855
+ end
864
856
  end unless deleteBacking
865
857
  end
866
858
  end
@@ -917,13 +909,14 @@ class MiqVimVm
917
909
  scsi_controllers.sort_by { |s| s["key"].to_i }.each do |scsi_controller|
918
910
  # Skip if all controller units are populated
919
911
  # Bus has 16 units, controller takes up 1 unit itself
920
- next if scsi_controller["device"].to_miq_a.count >= MAX_SCSI_DEVICES
912
+ device = Array.wrap(scsi_controller["device"])
913
+ next if device.count >= MAX_SCSI_DEVICES
921
914
 
922
915
  # We've found the lowest scsi controller with an available unit
923
916
  controller_key = scsi_controller["key"]
924
917
 
925
918
  # Get a list of disks on this controller
926
- disks = devices.select { |dev| scsi_controller["device"].to_miq_a.include?(dev["key"]) }
919
+ disks = devices.select { |dev| device.include?(dev["key"]) }
927
920
 
928
921
  # Get a list of all populated units on the controller
929
922
  populated_units = disks.collect { |disk| disk["unitNumber"].to_i }
@@ -1037,24 +1030,24 @@ class MiqVimVm
1037
1030
  end
1038
1031
 
1039
1032
  begin
1040
- @cacheLock.sync_lock(:EX) if (unlock = @cacheLock.sync_shared?)
1041
-
1042
- alarmManager = @sic.alarmManager
1043
- #
1044
- # Add disabled if VM is running.
1045
- #
1046
- if poweredOff?
1047
- aSpec = @miqAlarmSpecEnabled
1048
- else
1049
- aSpec = @miqAlarmSpecDisabled
1050
- end
1051
- $vim_log.info "MiqVimVm(#{@invObj.server}, #{@invObj.username}).addMiqAlarm_locked: calling createAlarm" if $vim_log
1052
- alarmMor = @invObj.createAlarm(alarmManager, @vmMor, aSpec)
1053
- $vim_log.info "MiqVimVm(#{@invObj.server}, #{@invObj.username}).addMiqAlarm_locked: returned from createAlarm" if $vim_log
1054
- @miqAlarmMor = alarmMor
1055
- ensure
1056
- @cacheLock.sync_unlock if unlock
1033
+ @cacheLock.sync_lock(:EX) if (unlock = @cacheLock.sync_shared?)
1034
+
1035
+ alarmManager = @sic.alarmManager
1036
+ #
1037
+ # Add disabled if VM is running.
1038
+ #
1039
+ if poweredOff?
1040
+ aSpec = @miqAlarmSpecEnabled
1041
+ else
1042
+ aSpec = @miqAlarmSpecDisabled
1057
1043
  end
1044
+ $vim_log.info "MiqVimVm(#{@invObj.server}, #{@invObj.username}).addMiqAlarm_locked: calling createAlarm" if $vim_log
1045
+ alarmMor = @invObj.createAlarm(alarmManager, @vmMor, aSpec)
1046
+ $vim_log.info "MiqVimVm(#{@invObj.server}, #{@invObj.username}).addMiqAlarm_locked: returned from createAlarm" if $vim_log
1047
+ @miqAlarmMor = alarmMor
1048
+ ensure
1049
+ @cacheLock.sync_unlock if unlock
1050
+ end
1058
1051
 
1059
1052
  (alarmMor)
1060
1053
  end # def addMiqAlarm_locked
@@ -1,3 +1,3 @@
1
1
  module VMwareWebService
2
- VERSION = '1.0.5'.freeze
2
+ VERSION = '2.0.2'.freeze
3
3
  end
metadata CHANGED
@@ -1,35 +1,35 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vmware_web_service
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.5
4
+ version: 2.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - ManageIQ Developers
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-06-23 00:00:00.000000000 Z
11
+ date: 2020-09-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '5.0'
20
- - - "<"
19
+ version: 5.2.4
20
+ - - ">="
21
21
  - !ruby/object:Gem::Version
22
- version: '5.3'
22
+ version: 5.2.4.3
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
26
26
  requirements:
27
- - - ">="
27
+ - - "~>"
28
28
  - !ruby/object:Gem::Version
29
- version: '5.0'
30
- - - "<"
29
+ version: 5.2.4
30
+ - - ">="
31
31
  - !ruby/object:Gem::Version
32
- version: '5.3'
32
+ version: 5.2.4.3
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: ffi-vix_disk_lib
35
35
  requirement: !ruby/object:Gem::Requirement
@@ -76,30 +76,22 @@ dependencies:
76
76
  name: more_core_extensions
77
77
  requirement: !ruby/object:Gem::Requirement
78
78
  requirements:
79
- - - "~>"
79
+ - - ">="
80
80
  - !ruby/object:Gem::Version
81
81
  version: '3.2'
82
+ - - "<"
83
+ - !ruby/object:Gem::Version
84
+ version: '5'
82
85
  type: :runtime
83
86
  prerelease: false
84
87
  version_requirements: !ruby/object:Gem::Requirement
85
88
  requirements:
86
- - - "~>"
89
+ - - ">="
87
90
  - !ruby/object:Gem::Version
88
91
  version: '3.2'
89
- - !ruby/object:Gem::Dependency
90
- name: rbvmomi
91
- requirement: !ruby/object:Gem::Requirement
92
- requirements:
93
- - - "~>"
94
- - !ruby/object:Gem::Version
95
- version: '2.0'
96
- type: :runtime
97
- prerelease: false
98
- version_requirements: !ruby/object:Gem::Requirement
99
- requirements:
100
- - - "~>"
92
+ - - "<"
101
93
  - !ruby/object:Gem::Version
102
- version: '2.0'
94
+ version: '5'
103
95
  - !ruby/object:Gem::Dependency
104
96
  name: bundler
105
97
  requirement: !ruby/object:Gem::Requirement
@@ -199,7 +191,7 @@ dependencies:
199
191
  - !ruby/object:Gem::Version
200
192
  version: '0'
201
193
  description: A ruby interface to Vmware Web Services SDK
202
- email:
194
+ email:
203
195
  executables: []
204
196
  extensions: []
205
197
  extra_rdoc_files: []
@@ -215,7 +207,6 @@ files:
215
207
  - lib/VMwareWebService/MiqHostSnmpSystem.rb
216
208
  - lib/VMwareWebService/MiqHostStorageSystem.rb
217
209
  - lib/VMwareWebService/MiqHostVirtualNicManager.rb
218
- - lib/VMwareWebService/MiqPbmInventory.rb
219
210
  - lib/VMwareWebService/MiqVim.rb
220
211
  - lib/VMwareWebService/MiqVimAlarmManager.rb
221
212
  - lib/VMwareWebService/MiqVimBroker.rb
@@ -236,7 +227,6 @@ files:
236
227
  - lib/VMwareWebService/MiqVimUpdate.rb
237
228
  - lib/VMwareWebService/MiqVimVdlMod.rb
238
229
  - lib/VMwareWebService/MiqVimVm.rb
239
- - lib/VMwareWebService/PbmService.rb
240
230
  - lib/VMwareWebService/VimConstants.rb
241
231
  - lib/VMwareWebService/VimMappingRegistry.rb
242
232
  - lib/VMwareWebService/VimPropMaps.rb
@@ -4455,7 +4445,7 @@ homepage: https://github.com/ManageIQ/vmware_web_service
4455
4445
  licenses:
4456
4446
  - Apache-2.0
4457
4447
  metadata: {}
4458
- post_install_message:
4448
+ post_install_message:
4459
4449
  rdoc_options: []
4460
4450
  require_paths:
4461
4451
  - lib
@@ -4471,7 +4461,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
4471
4461
  version: '0'
4472
4462
  requirements: []
4473
4463
  rubygems_version: 3.1.3
4474
- signing_key:
4464
+ signing_key:
4475
4465
  specification_version: 4
4476
4466
  summary: A ruby interface to Vmware Web Services SDK
4477
4467
  test_files: []
@@ -1,67 +0,0 @@
1
- require 'VMwareWebService/PbmService'
2
-
3
- module MiqPbmInventory
4
- def pbm_initialize(vim)
5
- begin
6
- # SPBM endpoint was introduced in vSphere Management SDK 5.5 and
7
- # isn't supported by Hosts (only vCenters)
8
- @pbm_svc = PbmService.new(vim) if apiVersion >= '5.5' && isVirtualCenter
9
- rescue => err
10
- $vim_log.warn("MiqPbmInventory: Failed to connect to SPBM endpoint: #{err}")
11
- end
12
- end
13
-
14
- def pbmProfilesByUid(_selspec = nil)
15
- profiles = {}
16
- return profiles if @pbm_svc.nil?
17
-
18
- begin
19
- profile_ids = @pbm_svc.queryProfile
20
- @pbm_svc.retrieveContent(profile_ids).to_a.each do |pbm_profile|
21
- uid = pbm_profile.profileId.uniqueId
22
-
23
- profiles[uid] = pbm_profile
24
- end
25
- rescue => err
26
- $vim_log.warn("MiqPbmInventory: pbmProfilesByUid: #{err}")
27
- end
28
-
29
- profiles
30
- end
31
-
32
- def pbmQueryAssociatedEntity(profile_ids)
33
- assoc_entities = {}
34
- return assoc_entities if @pbm_svc.nil?
35
-
36
- begin
37
- profile_ids.each do |profile_id|
38
- # If a string was passed in create a PbmProfileId object
39
- profile_id = RbVmomi::PBM::PbmProfileId(:uniqueId => profile_id) if profile_id.kind_of?(String)
40
-
41
- assoc_entities[profile_id.uniqueId] = @pbm_svc.queryAssociatedEntity(profile_id)
42
- end
43
- rescue => err
44
- $vim_log.warn("MiqPbmInventory: pbmQueryAssociatedEntity: #{err}")
45
- end
46
-
47
- assoc_entities
48
- end
49
-
50
- def pbmQueryMatchingHub(profile_ids)
51
- hubs = {}
52
- return hubs if @pbm_svc.nil?
53
-
54
- begin
55
- profile_ids.each do |profile_id|
56
- # If a string was passed in create a PbmProfileId object
57
- profile_id = RbVmomi::PBM::PbmProfileId(:uniqueId => profile_id) if profile_id.kind_of?(String)
58
-
59
- hubs[profile_id.uniqueId] = @pbm_svc.queryMatchingHub(profile_id)
60
- end
61
- rescue => err
62
- $vim_log.warn("MiqPbmInventory: pbmQueryMatchingHub: #{err}")
63
- end
64
-
65
- hubs
66
- end
67
- end
@@ -1,36 +0,0 @@
1
- require 'rbvmomi'
2
- require 'rbvmomi/pbm'
3
-
4
- PbmVimConnection = Struct.new(:host, :cookie)
5
-
6
- class PbmService
7
- def initialize(vim)
8
- # RbVmomi::PBM#connect expects a RbVmomi::VIM object, use a struct
9
- # to fake it out into using our vim Handsoap connection
10
- pbm_vim_conn = PbmVimConnection.new(vim.server.dup, vim.session_cookie.dup)
11
-
12
- @pbm = RbVmomi::PBM.connect(pbm_vim_conn, :insecure => true)
13
- @sic = @pbm.serviceContent
14
- end
15
-
16
- def queryAssociatedEntity(profileId)
17
- @sic.profileManager.PbmQueryAssociatedEntity(:profile => profileId)
18
- end
19
-
20
- def queryMatchingHub(profileId, hubsToSearch = nil)
21
- @sic.placementSolver.PbmQueryMatchingHub(
22
- :profile => profileId,
23
- :hubsToSearch => hubsToSearch
24
- )
25
- end
26
-
27
- def queryProfile
28
- @sic.profileManager.PbmQueryProfile(
29
- :resourceType => RbVmomi::PBM::PbmProfileResourceType(:resourceType => "STORAGE")
30
- )
31
- end
32
-
33
- def retrieveContent(profileIds)
34
- @sic.profileManager.PbmRetrieveContent(:profileIds => profileIds)
35
- end
36
- end