vmware_web_service 0.4.2 → 0.4.3

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: daa16922be53440c037ba428c5c6b9d075104a11c435582bc090c70adc597238
4
- data.tar.gz: dbdf3a842e42f0ba00de9bdb56c94ecbd19fd2edbf6710e8017e7434c2c6bf05
3
+ metadata.gz: 226087a0ff6c13ce429b1afcc992b15be50f5bdd1b69cfff1d7ac6dd7783f947
4
+ data.tar.gz: fe185b7ae7a35bbb2b7c35e620b7a867644ab58d40b31dc927d1199d5ba9d528
5
5
  SHA512:
6
- metadata.gz: 2ff2e07d99b520fbbe9a77babe42049b2535588a54ea1a163c5b5e9f82b7c36479ff31bfdf803035a0da8b7b215b3b3c0149768ccc98221d79884586f8afaec9
7
- data.tar.gz: 25dd53f1a810605d3fd4a34a1077c71b8988f67508517b266c39bc8628d235b318c1ee0ed7fa46fc9573760bffc9b833a6ec592f60db2d192405c7f90fd1caa2
6
+ metadata.gz: 56d673e90ebcd77929efdd966466d074fb47a244c8ab98de0ff1f31ffd25d210396e9e9a2ac3a1d8984ac20980af76e5e176263c362ac6bd5bfd28880fcae0a3
7
+ data.tar.gz: 75d6e04f83ef0fee9df9d73dbaaca3497c0aa4f214da4ef83572e74c5697d9f40541e1bda8a3dad31ba628a37aa8e010b69c4b3286dc54a2a6141b21471a329a
@@ -73,10 +73,6 @@ class MiqVimBroker
73
73
  require 'timeout'
74
74
  require 'VMwareWebService/broker_timeout'
75
75
 
76
- # Un-comment following 2 lines to enable Sync lock debugging.
77
- # require 'broker_sync_debug'
78
- # extend BrokerSyncDebug
79
-
80
76
  unless @@classModed
81
77
  DRb.instance_variable_set(:@mutex, sync_for_drb)
82
78
  DRb::DRbConn.instance_variable_set(:@mutex, sync_for_drb_drbconn)
@@ -107,27 +103,22 @@ class MiqVimBroker
107
103
  end
108
104
  end
109
105
 
110
- # Can be overridden by BrokerSyncDebug.
111
106
  def connection_lock
112
107
  Sync.new
113
108
  end
114
109
 
115
- # Can be overridden by BrokerSyncDebug.
116
110
  def config_lock
117
111
  Sync.new
118
112
  end
119
113
 
120
- # Can be overridden by BrokerSyncDebug.
121
114
  def sync_for_lock_hash(_key)
122
115
  Sync.new
123
116
  end
124
117
 
125
- # Can be overridden by BrokerSyncDebug.
126
118
  def sync_for_drb_drbconn
127
119
  Sync.new
128
120
  end
129
121
 
130
- # Can be overridden by BrokerSyncDebug.
131
122
  def sync_for_drb
132
123
  Sync.new
133
124
  end
@@ -1,4 +1,3 @@
1
- require 'VMwareWebService/VimSyncDebug'
2
1
  require 'sync'
3
2
  require 'enumerator'
4
3
  require 'VMwareWebService/MiqVimClientBase'
@@ -94,9 +93,6 @@ class MiqVimInventory < MiqVimClientBase
94
93
  @cacheLock = Sync.new
95
94
  @configLock = Sync.new
96
95
 
97
- # Un-comment to enable Sync lock debugging.
98
- # extend VimSyncDebug
99
-
100
96
  resetCache
101
97
  __connect
102
98
  @alive = true
@@ -201,6 +197,14 @@ class MiqVimInventory < MiqVimClientBase
201
197
  ps.type = "Datastore"
202
198
  ps.all = "false"
203
199
  end
200
+ psa << VimHash.new("PropertySpec") do |ps|
201
+ ps.type = "LicenseManager"
202
+ ps.all = "false"
203
+ end
204
+ psa << VimHash.new("PropertySpec") do |ps|
205
+ ps.type = "ExtensionManager"
206
+ ps.all = "false"
207
+ end
204
208
  end
205
209
  VimArray.new("ArrayOfPropertyFilterSpec") do |pfsa|
206
210
  pfsa << VimHash.new("PropertyFilterSpec") do |pfs|
@@ -1772,6 +1776,226 @@ class MiqVimInventory < MiqVimClientBase
1772
1776
  addObjHash(:StoragePod, spObj)
1773
1777
  end
1774
1778
 
1779
+ ###################
1780
+ # License Managers
1781
+ ###################
1782
+
1783
+ #
1784
+ # For internal use.
1785
+ # Must be called with cache lock held
1786
+ # Returns with the cache lock held - must be unlocked by caller.
1787
+ #
1788
+ def licenseManagers_locked
1789
+ raise "licenseManagers_locked: cache lock not held" unless @cacheLock.sync_locked?
1790
+ return(@licenseManagers) if @licenseManagers
1791
+
1792
+ $vim_log.info "MiqVimInventory.licenseManagers_locked: loading LicenseManager cache for #{@connId}"
1793
+ begin
1794
+ @cacheLock.sync_lock(:EX) if (unlock = @cacheLock.sync_shared?)
1795
+
1796
+ ra = getMoPropMulti(inventoryHash_locked['LicenseManager'], @propMap[:LicenseManager][:props])
1797
+
1798
+ @licenseManagers = {}
1799
+ @licenseManagersByMor = {}
1800
+ ra.each do |licenseManagerObj|
1801
+ addLicenseManagerObj(licenseManagerObj)
1802
+ end
1803
+ ensure
1804
+ @cacheLock.sync_unlock if unlock
1805
+ end
1806
+ $vim_log.info "MiqVimInventory.licenseManagers_locked: loaded LicenseManager cache for #{@connId}"
1807
+
1808
+ @licenseManagers
1809
+ end # def licenseManagers_locked
1810
+ protected :licenseManagers_locked
1811
+
1812
+ #
1813
+ # For internal use.
1814
+ # Must be called with cache lock held
1815
+ # Returns with the cache lock held - must be unlocked by caller.
1816
+ #
1817
+ def licenseManagersByMor_locked
1818
+ raise "licenseManagerByMor_locked: cache lock not held" unless @cacheLock.sync_locked?
1819
+ return(@licenseManagersByMor) if @licenseManagersByMor
1820
+ licenseManagers_locked
1821
+ @licenseManagersByMor
1822
+ end # def licenseManagersByMor_locked
1823
+ protected :licenseManagersByMor_locked
1824
+
1825
+ #
1826
+ # Public accessor
1827
+ #
1828
+ def licenseManagersByMor(selSpec = nil)
1829
+ license_managers = nil
1830
+ @cacheLock.synchronize(:SH) do
1831
+ if selSpec.nil?
1832
+ license_managers = dupObj(licenseManagersByMor_locked)
1833
+ else
1834
+ license_managers = applySelector(licenseManagersByMor_locked, selSpec)
1835
+ end
1836
+ end
1837
+ assert_no_locks
1838
+ license_managers
1839
+ end
1840
+
1841
+ #
1842
+ # Return a single License Manager object, given its MOR
1843
+ #
1844
+ def licenseManagerByMor(licenseManagerMor, selSpec = nil)
1845
+ @cacheLock.synchronize(:SH) do
1846
+ return(dupObj(licenseManagersByMor_locked[licenseManagerMor])) if selSpec.nil?
1847
+ return(applySelector(licenseManagersByMor_locked[licenseManagerMor], selSpec))
1848
+ end
1849
+ end
1850
+
1851
+ #
1852
+ # Public accessor
1853
+ #
1854
+ # Return an array of license manager objects that match the given property filter.
1855
+ #
1856
+ def licenseManagersByFilter(filter)
1857
+ license_managers = nil
1858
+ @cacheLock.synchronize(:SH) do
1859
+ license_managers = applyFilter(licenseManagersByMor_locked.values, filter)
1860
+ license_managers = dupObj(license_managers)
1861
+ end
1862
+ assert_no_locks
1863
+ license_managers
1864
+ end
1865
+
1866
+ def addLicenseManager(licenseManagerMor)
1867
+ @cacheLock.synchronize(:EX) do
1868
+ return(addObjByMor(licenseManagerMor))
1869
+ end
1870
+ end
1871
+
1872
+ def refreshLicenseManager(licenseManagerMor)
1873
+ @cacheLock.synchronize(:EX) do
1874
+ return(conditionalCopy(addObjByMor(licenseManagerMor)))
1875
+ end
1876
+ end
1877
+
1878
+ def addLicenseManagerObj(licenseManagerObj)
1879
+ addObjHash(:LicenseManager, licenseManagerObj)
1880
+ end
1881
+ protected :addLicenseManagerObj
1882
+
1883
+ def removeLicenseManager(licenseManagerMor)
1884
+ @cacheLock.synchronize(:EX) do
1885
+ removeObjByMor(licenseManagerMor)
1886
+ end
1887
+ end
1888
+
1889
+ ###################
1890
+ # Extension Managers
1891
+ ###################
1892
+
1893
+ #
1894
+ # For internal use.
1895
+ # Must be called with cache lock held
1896
+ # Returns with the cache lock held - must be unlocked by caller.
1897
+ #
1898
+ def extensionManagers_locked
1899
+ raise "extensionManagers_locked: cache lock not held" unless @cacheLock.sync_locked?
1900
+ return(@extensionManagers) if @extensionManagers
1901
+
1902
+ $vim_log.info "MiqVimInventory.extensionManagers_locked: loading ExtensionManager cache for #{@connId}"
1903
+ begin
1904
+ @cacheLock.sync_lock(:EX) if (unlock = @cacheLock.sync_shared?)
1905
+
1906
+ ra = getMoPropMulti(inventoryHash_locked['ExtensionManager'], @propMap[:ExtensionManager][:props])
1907
+
1908
+ @extensionManagers = {}
1909
+ @extensionManagersByMor = {}
1910
+ ra.each do |extensionManagerObj|
1911
+ addExtensionManagerObj(extensionManagerObj)
1912
+ end
1913
+ ensure
1914
+ @cacheLock.sync_unlock if unlock
1915
+ end
1916
+ $vim_log.info "MiqVimInventory.extensionManagers_locked: loaded ExtensionManager cache for #{@connId}"
1917
+
1918
+ @extensionManagers
1919
+ end # def extensionManagers_locked
1920
+ protected :extensionManagers_locked
1921
+
1922
+ #
1923
+ # For internal use.
1924
+ # Must be called with cache lock held
1925
+ # Returns with the cache lock held - must be unlocked by caller.
1926
+ #
1927
+ def extensionManagersByMor_locked
1928
+ raise "extensionManagersByMor_locked: cache lock not held" unless @cacheLock.sync_locked?
1929
+ return(@extensionManagersByMor) if @extensionManagersByMor
1930
+ extensionManagers_locked
1931
+ @extensionManagersByMor
1932
+ end # def extensionManagersByMor_locked
1933
+ protected :extensionManagersByMor_locked
1934
+
1935
+ #
1936
+ # Public accessor
1937
+ #
1938
+ def extensionManagersByMor(selSpec = nil)
1939
+ extension_managers = nil
1940
+ @cacheLock.synchronize(:SH) do
1941
+ if selSpec.nil?
1942
+ extension_managers = dupObj(extensionManagersByMor_locked)
1943
+ else
1944
+ extension_managers = applySelector(extensionManagersByMor_locked, selSpec)
1945
+ end
1946
+ end
1947
+ assert_no_locks
1948
+ extension_managers
1949
+ end
1950
+
1951
+ #
1952
+ # Return a single Extension Manager object, given its MOR
1953
+ #
1954
+ def extensionManagerByMor(extensionManagerMor, selSpec = nil)
1955
+ @cacheLock.synchronize(:SH) do
1956
+ return(dupObj(extensionManagersByMor_locked[extensionManagerMor])) if selSpec.nil?
1957
+ return(applySelector(extensionManagersByMor_locked[extensionManagerMor], selSpec))
1958
+ end
1959
+ end
1960
+
1961
+ #
1962
+ # Public accessor
1963
+ #
1964
+ # Return an array of extension manager objects that match the given property filter.
1965
+ #
1966
+ def extensionManagersByFilter(filter)
1967
+ extension_managers = nil
1968
+ @cacheLock.synchronize(:SH) do
1969
+ extension_managers = applyFilter(extensionManagersByMor_locked.values, filter)
1970
+ extension_managers = dupObj(extension_managers)
1971
+ end
1972
+ assert_no_locks
1973
+ extension_managers
1974
+ end
1975
+
1976
+ def addExtensionManager(extensionManagerMor)
1977
+ @cacheLock.synchronize(:EX) do
1978
+ return(addObjByMor(extensionManagerMor))
1979
+ end
1980
+ end
1981
+
1982
+ def refreshExtensionManager(extensionManagerMor)
1983
+ @cacheLock.synchronize(:EX) do
1984
+ return(conditionalCopy(addObjByMor(extensionManagerMor)))
1985
+ end
1986
+ end
1987
+
1988
+ def addExtensionManagerObj(extensionManagerObj)
1989
+ addObjHash(:ExtensionManager, extensionManagerObj)
1990
+ end
1991
+ protected :addExtensionManagerObj
1992
+
1993
+ def removeExtensionManager(extensionManagerMor)
1994
+ @cacheLock.synchronize(:EX) do
1995
+ removeObjByMor(extensionManagerMor)
1996
+ end
1997
+ end
1998
+
1775
1999
  #
1776
2000
  # A hash of managed object references for all the objects we care about.
1777
2001
  #
@@ -139,6 +139,12 @@ module MiqVimObjectSet
139
139
  os.skip = "false"
140
140
  os.selectSet = VimArray.new("ArrayOfSelectionSpec") { |ssa| ssa << folderTs }
141
141
  end
142
+ osa << VimHash.new("ObjectSpec") do |os|
143
+ os.obj = @sic.licenseManager
144
+ end
145
+ osa << VimHash.new("ObjectSpec") do |os|
146
+ os.obj = @sic.extensionManager
147
+ end
142
148
  end
143
149
 
144
150
  (aOobjSpec)
@@ -86,6 +86,20 @@ module VimPropMaps
86
86
  'summary',
87
87
  'parent'
88
88
  ]
89
+ },
90
+ :LicenseManager => {
91
+ :baseName => "@licenseManagers",
92
+ :keyPath => nil,
93
+ :props => [
94
+ 'licenses'
95
+ ]
96
+ },
97
+ :ExtensionManager => {
98
+ :baseName => "@extensionManagers",
99
+ :keyPath => nil,
100
+ :props => [
101
+ 'extensionList'
102
+ ]
89
103
  }
90
104
  }
91
105
 
@@ -303,6 +317,8 @@ module VimPropMaps
303
317
  "config.network.dnsConfig.domainName",
304
318
  "config.network.dnsConfig.hostName",
305
319
  "config.network.ipRouteConfig.defaultGateway",
320
+ "config.network.opaqueNetwork",
321
+ "config.network.opaqueSwitch",
306
322
  "config.network.pnic",
307
323
  "config.network.portgroup",
308
324
  "config.network.vnic",
@@ -393,6 +409,20 @@ module VimPropMaps
393
409
  'summary.hostMember',
394
410
  'parent'
395
411
  ]
412
+ },
413
+ :LicenseManager => {
414
+ :baseName => "@licenseManagers",
415
+ :keyPath => nil,
416
+ :props => [
417
+ 'licenses'
418
+ ]
419
+ },
420
+ :ExtensionManager => {
421
+ :baseName => "@extensionManagers",
422
+ :keyPath => nil,
423
+ :props => [
424
+ 'extensionList'
425
+ ]
396
426
  }
397
427
  }
398
428
 
@@ -1,3 +1,3 @@
1
1
  module VMwareWebService
2
- VERSION = '0.4.2'.freeze
2
+ VERSION = '0.4.3'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vmware_web_service
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.2
4
+ version: 0.4.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - ManageIQ Developers
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-04-18 00:00:00.000000000 Z
11
+ date: 2019-06-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -106,14 +106,14 @@ dependencies:
106
106
  requirements:
107
107
  - - "~>"
108
108
  - !ruby/object:Gem::Version
109
- version: 2.1.0
109
+ version: 2.0.0
110
110
  type: :runtime
111
111
  prerelease: false
112
112
  version_requirements: !ruby/object:Gem::Requirement
113
113
  requirements:
114
114
  - - "~>"
115
115
  - !ruby/object:Gem::Version
116
- version: 2.1.0
116
+ version: 2.0.0
117
117
  - !ruby/object:Gem::Dependency
118
118
  name: bundler
119
119
  requirement: !ruby/object:Gem::Requirement
@@ -255,12 +255,10 @@ files:
255
255
  - lib/VMwareWebService/VimMappingRegistry.rb
256
256
  - lib/VMwareWebService/VimPropMaps.rb
257
257
  - lib/VMwareWebService/VimService.rb
258
- - lib/VMwareWebService/VimSyncDebug.rb
259
258
  - lib/VMwareWebService/VimTypes.rb
260
259
  - lib/VMwareWebService/VixDiskLib/VixDiskLib.rb
261
260
  - lib/VMwareWebService/VixDiskLib/VixDiskLibServer.rb
262
261
  - lib/VMwareWebService/VixDiskLib/vdl_wrapper.rb
263
- - lib/VMwareWebService/broker_sync_debug.rb
264
262
  - lib/VMwareWebService/broker_timeout.rb
265
263
  - lib/VMwareWebService/esx_thumb_print.rb
266
264
  - lib/VMwareWebService/exception.rb
@@ -268,7 +266,6 @@ files:
268
266
  - lib/VMwareWebService/thumb_print.rb
269
267
  - lib/VMwareWebService/vcenter_thumb_print.rb
270
268
  - lib/VMwareWebService/version.rb
271
- - lib/VMwareWebService/vim_base_sync_debug.rb
272
269
  - lib/VMwareWebService/wsdl41/convert_mapping_registry_to_yaml.rb
273
270
  - lib/VMwareWebService/wsdl41/core-types.xsd
274
271
  - lib/VMwareWebService/wsdl41/methods/AboutInfo.yml
@@ -1,16 +0,0 @@
1
- require 'util/SyncDebug'
2
- require 'VMwareWebService/vim_base_sync_debug'
3
-
4
- module VimSyncDebug
5
- def self.extended(obj)
6
- obj.cacheLock.extend(SyncDebug_m)
7
- obj.cacheLock.lock_name = "#{obj.class.name}#cacheLock(#{obj.connId})"
8
- VimBaseSyncDebug.vsd_set_callbacks(obj.cacheLock)
9
- obj.cacheLock.watchdog_enabled = true
10
-
11
- obj.configLock.extend(SyncDebug_m)
12
- obj.configLock.lock_name = "#{obj.class.name}#configLock(#{obj.connId})"
13
- VimBaseSyncDebug.vsd_set_callbacks(obj.configLock)
14
- obj.configLock.watchdog_enabled = true
15
- end
16
- end
@@ -1,33 +0,0 @@
1
- require 'util/SyncDebug'
2
- require 'VMwareWebService/vim_base_sync_debug'
3
-
4
- module BrokerSyncDebug
5
- def connection_lock
6
- alloc_sync_lock("#{self.class.name}#connectionLock")
7
- end
8
-
9
- def config_lock
10
- alloc_sync_lock("#{self.class.name}#configLock")
11
- end
12
-
13
- def sync_for_lock_hash(key)
14
- alloc_sync_lock("#{self.class.name}#lockHash[#{key}]")
15
- end
16
-
17
- def sync_for_drb
18
- alloc_sync_lock("DRB#mutex")
19
- end
20
-
21
- def sync_for_drb_drbconn
22
- alloc_sync_lock("DRb::DRbConn#mutex")
23
- end
24
-
25
- def alloc_sync_lock(lock_name)
26
- lock = Sync.new
27
- lock.extend(SyncDebug_m)
28
- lock.lock_name = lock_name
29
- VimBaseSyncDebug.vsd_set_callbacks(lock)
30
- lock.watchdog_enabled = true
31
- lock
32
- end
33
- end
@@ -1,68 +0,0 @@
1
- module VimBaseSyncDebug
2
- def self.vsd_set_callbacks(lock)
3
- lock.on_lock_request do |li|
4
- $vim_log.info "VimSyncDebug - Requesting lock: #{li[:lock].lock_name}, from_mode = #{li[:lock].sync_mode}, to_mode = #{li[:mode]} [#{li[:call_stack][0]}]"
5
- end
6
-
7
- lock.on_lock_acquire do |li|
8
- $vim_log.info "VimSyncDebug - Acquired lock: #{li[:lock].lock_name}, acquired_mode = #{li[:lock].sync_mode}, requested_mode = #{li[:mode]} [#{li[:call_stack][0]}]"
9
- end
10
-
11
- lock.on_unlock_request do |li|
12
- $vim_log.info "VimSyncDebug - Releasing lock: #{li[:lock].lock_name}, pre-release_mode = #{li[:lock].sync_mode}, [#{li[:call_stack][0]}]"
13
- end
14
-
15
- lock.on_unlock do |li|
16
- $vim_log.info "VimSyncDebug - Released lock: #{li[:lock].lock_name}, post-release_mode = #{li[:lock].sync_mode}, [#{li[:call_stack][0]}]"
17
- end
18
-
19
- lock.on_dead_locker do |lia|
20
- li = lia.first
21
- thr = li[:thread]
22
- ln = li[:lock].lock_name
23
- $vim_log.error "VimSyncDebug - Locking Thread has terminated: Lock(#{ln}), Thread(#{thr.object_id})."
24
- $vim_log.error "VimSyncDebug - Start backtrace"
25
- $vim_log.error li[:call_stack].join("\n")
26
- $vim_log.error "VimSyncDebug - End backtrace"
27
- end
28
-
29
- lock.on_lock_timeout lambda { |li, dt|
30
- thr = li[:thread]
31
- $vim_log.error "VimSyncDebug - Lock timeout: thread #{thr.object_id} has held #{li[:lock].lock_name} for #{dt} seconds"
32
- $vim_log.error "VimSyncDebug - Lock acquisition: Start backtrace"
33
- $vim_log.error li[:call_stack].join("\n")
34
- $vim_log.error "VimSyncDebug - Lock acquisition: End backtrace"
35
-
36
- $vim_log.error "VimSyncDebug - Locking thread: Start backtrace"
37
- $vim_log.error thr.backtrace.join("\n") if thr.alive?
38
- $vim_log.error "VimSyncDebug - Locking thread: End backtrace"
39
- return false # don't raise an exception
40
- }
41
-
42
- lock.on_watchdog_start do |l|
43
- $vim_log.info "VimSyncDebug - Watchdog starting for #{l.lock_name}"
44
- end
45
-
46
- lock.on_watchdog_stop do |l, err|
47
- $vim_log.info "VimSyncDebug - Watchdog for #{l.lock_name} stopping"
48
- if err
49
- $vim_log.error "VimSyncDebug - Watchdog ERROR: #{err}"
50
- $vim_log.error "VimSyncDebug - Watchdog: Start backtrace"
51
- $vim_log.error err.backtrace.join("\n")
52
- $vim_log.error "VimSyncDebug - Watchdog: End backtrace"
53
- end
54
- end
55
-
56
- lock.on_watchdog_heartbeat do |l|
57
- $vim_log.debug "Watchdog for #{l.lock_name}: HEARTBEAT"
58
- end
59
-
60
- # lock.on_watchdog_acquire_mutex do |l|
61
- # $vim_log.debug "Watchdog for #{l.lock_name}: MUTEX acquired"
62
- # end
63
- #
64
- # lock.on_watchdog_release_mutex do |l|
65
- # $vim_log.debug "Watchdog for #{l.lock_name}: MUTEX released"
66
- # end
67
- end
68
- end