vmware_web_service 1.0.4 → 1.0.9
Sign up to get free protection for your applications and to get access to all the features.
- 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: []
|