vmware_web_service 1.0.4 → 1.0.9
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 +4 -4
- data/lib/VMwareWebService/MiqVim.rb +24 -2
- data/lib/VMwareWebService/MiqVimCustomizationSpecManager.rb +1 -1
- data/lib/VMwareWebService/MiqVimDataStore.rb +2 -2
- data/lib/VMwareWebService/MiqVimEventMonitor.rb +1 -1
- data/lib/VMwareWebService/MiqVimInventory.rb +15 -10
- data/lib/VMwareWebService/MiqVimUpdate.rb +1 -1
- data/lib/VMwareWebService/MiqVimVm.rb +45 -52
- data/lib/VMwareWebService/version.rb +1 -1
- metadata +15 -9
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9387d2cd8bafbb20342e26e516df855fbc85d2a995d248fc092ad61a82b3864e
|
4
|
+
data.tar.gz: 7874514afcb8cdd2ef96b95bd6b06a7afdb8b2175465219ec5b88d08adfee024
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5387c14724142857b488e24bf49a8ac2cc79e38d85bed837441bd42b468e21cf029eed99b0779eab260440f8ee370972b61b9c23885d04a6dfe1c35f40bc7e97
|
7
|
+
data.tar.gz: 9f03fd556dcb003f139950d518ea08f21666f56ddd15acbd2a6cecc3571880ee48de5cbb941f4b7e047abcf98d77fec477a7846eb57be78b585ab36c3f3f4499
|
@@ -22,7 +22,7 @@ class MiqVim < MiqVimInventory
|
|
22
22
|
|
23
23
|
attr_reader :updateThread, :monitor_updates
|
24
24
|
|
25
|
-
# @param server [String] DNS name or IP address of the vCenter Server
|
25
|
+
# @param server [String] DNS name or IP address of the vCenter Server
|
26
26
|
# @param username [String] Username to connect to the vCenter Server
|
27
27
|
# @param password [String] Password to connect to the vCenter Server
|
28
28
|
# @param cacheScope [Symbol] A pre-defined set of properties to cache (default: nil)
|
@@ -32,11 +32,14 @@ class MiqVim < MiqVimInventory
|
|
32
32
|
# @param notifyMethod [Method] A optional method to call for each update (default: nil)
|
33
33
|
# @param maxWait [Integer] How many seconds to wait before breaking out of WaitForUpdates (default: 60)
|
34
34
|
# @param maxObjects [Integer] How many objects to return from each WaitForUpdates page (default: 250)
|
35
|
-
def initialize(server, username, password, cacheScope = nil, monitor_updates =
|
35
|
+
def initialize(server, username, password, cacheScope = nil, monitor_updates = nil, preLoad = nil, debugUpdates = false, notifyMethod = nil, maxWait = 60, maxObjects = 250)
|
36
36
|
super(server, username, password, cacheScope)
|
37
37
|
|
38
38
|
pbm_initialize(self)
|
39
39
|
|
40
|
+
monitor_updates = self.class.monitor_updates if monitor_updates.nil?
|
41
|
+
preLoad = self.class.pre_load if preLoad.nil?
|
42
|
+
|
40
43
|
@monitor_updates = monitor_updates
|
41
44
|
@updateMonitorReady = false
|
42
45
|
@error = nil
|
@@ -48,6 +51,25 @@ class MiqVim < MiqVimInventory
|
|
48
51
|
start_monitor_updates_thread(preLoad) if @monitor_updates
|
49
52
|
end
|
50
53
|
|
54
|
+
@@monitor_updates = false
|
55
|
+
@@pre_load = false
|
56
|
+
|
57
|
+
def self.monitor_updates
|
58
|
+
@@monitor_updates
|
59
|
+
end
|
60
|
+
|
61
|
+
def self.monitor_updates=(val)
|
62
|
+
@@monitor_updates = val
|
63
|
+
end
|
64
|
+
|
65
|
+
def self.pre_load
|
66
|
+
@@pre_load
|
67
|
+
end
|
68
|
+
|
69
|
+
def self.pre_load=(val)
|
70
|
+
@@pre_load = val
|
71
|
+
end
|
72
|
+
|
51
73
|
def getVimVm(path)
|
52
74
|
$vim_log.info "MiqVimMod.getVimVm: called"
|
53
75
|
miqVimVm = nil
|
@@ -290,8 +290,8 @@ class MiqVimDataStore
|
|
290
290
|
if block_given?
|
291
291
|
open(fileUrl, options) { |ret| yield(ret) }
|
292
292
|
else
|
293
|
-
|
294
|
-
open(fileUrl, options) { |ret| data = ret.read
|
293
|
+
data = nil
|
294
|
+
open(fileUrl, options) { |ret| data = ret.read }
|
295
295
|
return data
|
296
296
|
end
|
297
297
|
end
|
@@ -120,7 +120,7 @@ class MiqVimEventMonitor < MiqVimInventory
|
|
120
120
|
next unless (vmObj = virtualMachinesByMor_locked[eventVmObj['vm']])
|
121
121
|
|
122
122
|
eventVmObj['path'] = vmObj['summary']['config']['vmPathName']
|
123
|
-
eventVmObj['uuid'] = vmObj['summary']['config']['uuid']
|
123
|
+
eventVmObj['uuid'] = vmObj['summary']['config']['uuid'].presence
|
124
124
|
|
125
125
|
removeVirtualMachine(eventVmObj['vm']) if event['eventType'] == 'VmRemovedEvent'
|
126
126
|
end
|
@@ -366,7 +366,12 @@ class MiqVimInventory < MiqVimClientBase
|
|
366
366
|
#
|
367
367
|
# Hash snapshot info by create time.
|
368
368
|
#
|
369
|
-
|
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
|
-
|
1146
|
+
@cacheLock.sync_lock(:EX) if (unlock = @cacheLock.sync_shared?)
|
1142
1147
|
|
1143
|
-
|
1148
|
+
ra = getMoPropMulti(inventoryHash_locked['Datacenter'], @propMap[:Datacenter][:props])
|
1144
1149
|
|
1145
|
-
|
1146
|
-
|
1147
|
-
|
1148
|
-
|
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
|
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
|
-
|
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
|
-
|
328
|
-
|
329
|
-
|
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
|
-
|
804
|
-
|
805
|
-
|
806
|
-
|
807
|
-
|
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
|
-
|
860
|
-
|
861
|
-
|
862
|
-
|
863
|
-
|
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
|
-
|
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|
|
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
|
-
|
1041
|
-
|
1042
|
-
|
1043
|
-
|
1044
|
-
|
1045
|
-
|
1046
|
-
|
1047
|
-
|
1048
|
-
|
1049
|
-
|
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
|
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: 1.0.
|
4
|
+
version: 1.0.9
|
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:
|
11
|
+
date: 2021-01-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -76,16 +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'
|
92
|
+
- - "<"
|
93
|
+
- !ruby/object:Gem::Version
|
94
|
+
version: '5'
|
89
95
|
- !ruby/object:Gem::Dependency
|
90
96
|
name: rbvmomi
|
91
97
|
requirement: !ruby/object:Gem::Requirement
|
@@ -199,7 +205,7 @@ dependencies:
|
|
199
205
|
- !ruby/object:Gem::Version
|
200
206
|
version: '0'
|
201
207
|
description: A ruby interface to Vmware Web Services SDK
|
202
|
-
email:
|
208
|
+
email:
|
203
209
|
executables: []
|
204
210
|
extensions: []
|
205
211
|
extra_rdoc_files: []
|
@@ -4455,7 +4461,7 @@ homepage: https://github.com/ManageIQ/vmware_web_service
|
|
4455
4461
|
licenses:
|
4456
4462
|
- Apache-2.0
|
4457
4463
|
metadata: {}
|
4458
|
-
post_install_message:
|
4464
|
+
post_install_message:
|
4459
4465
|
rdoc_options: []
|
4460
4466
|
require_paths:
|
4461
4467
|
- lib
|
@@ -4470,8 +4476,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
4470
4476
|
- !ruby/object:Gem::Version
|
4471
4477
|
version: '0'
|
4472
4478
|
requirements: []
|
4473
|
-
rubygems_version: 3.
|
4474
|
-
signing_key:
|
4479
|
+
rubygems_version: 3.2.4
|
4480
|
+
signing_key:
|
4475
4481
|
specification_version: 4
|
4476
4482
|
summary: A ruby interface to Vmware Web Services SDK
|
4477
4483
|
test_files: []
|