vmware_web_service 2.0.3 → 3.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/VMwareWebService/MiqHostDatastoreSystem.rb +5 -1
- data/lib/VMwareWebService/MiqVim.rb +80 -56
- data/lib/VMwareWebService/MiqVimClientBase.rb +11 -10
- data/lib/VMwareWebService/MiqVimCluster.rb +6 -2
- data/lib/VMwareWebService/MiqVimDataStore.rb +9 -6
- data/lib/VMwareWebService/MiqVimDump.rb +1 -1
- data/lib/VMwareWebService/MiqVimEventHistoryCollector.rb +5 -1
- data/lib/VMwareWebService/MiqVimEventMonitor.rb +22 -20
- data/lib/VMwareWebService/MiqVimFolder.rb +15 -11
- data/lib/VMwareWebService/MiqVimHost.rb +15 -13
- data/lib/VMwareWebService/MiqVimInventory.rb +78 -79
- data/lib/VMwareWebService/MiqVimPerfHistory.rb +13 -10
- data/lib/VMwareWebService/MiqVimUpdate.rb +50 -50
- data/lib/VMwareWebService/MiqVimVdlMod.rb +7 -7
- data/lib/VMwareWebService/MiqVimVm.rb +102 -101
- data/lib/VMwareWebService/VimService.rb +5 -2
- data/lib/VMwareWebService/VixDiskLib/VixDiskLib.rb +15 -7
- data/lib/VMwareWebService/VixDiskLib/VixDiskLibServer.rb +15 -15
- data/lib/VMwareWebService/VixDiskLib/vdl_wrapper.rb +26 -27
- data/lib/VMwareWebService/exception.rb +0 -2
- data/lib/VMwareWebService/logging.rb +16 -0
- data/lib/VMwareWebService/version.rb +1 -1
- data/lib/vmware_web_service.rb +2 -0
- metadata +15 -48
- data/lib/VMwareWebService/DMiqVim.rb +0 -95
- data/lib/VMwareWebService/DMiqVimSync.rb +0 -45
- data/lib/VMwareWebService/MiqVimBroker.rb +0 -581
- data/lib/VMwareWebService/MiqVimBrokerMods.rb +0 -222
- data/lib/VMwareWebService/MiqVimCoreUpdater.rb +0 -269
- data/lib/VMwareWebService/miq_fault_tolerant_vim.rb +0 -246
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6f5cfe645f59b74bbc745d9b8ca87f3f812ef66825ed97d1ae9e9ff90581f78b
|
4
|
+
data.tar.gz: 4159afd750db2f67f086ee758e92f30b9af934003471f6d0e7f721e352e7c1b1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6e6d105b56f251292a513a69f077fe65636fe54d46df9d92739c008a1d8dbfb4a793edb546bc55f67a8f7fcb2dd53f23aa90cc8234bb5c717d9a569fece53bc4
|
7
|
+
data.tar.gz: fbac5ac0d635a9233fe35195247fdca265e506c4da997f6aa072daad516c160ef9a040b87ab478e6b425b6a0728b7d7674468907abac9df2fb384a748ae81cd4
|
@@ -1,4 +1,8 @@
|
|
1
|
+
require 'VMwareWebService/logging'
|
2
|
+
|
1
3
|
class MiqHostDatastoreSystem
|
4
|
+
include VMwareWebService::Logging
|
5
|
+
|
2
6
|
attr_reader :invObj
|
3
7
|
|
4
8
|
def initialize(dssMor, invObj)
|
@@ -44,7 +48,7 @@ class MiqHostDatastoreSystem
|
|
44
48
|
localPath = dsh.info.nas.name
|
45
49
|
type = dsh.info.nas.type
|
46
50
|
|
47
|
-
|
51
|
+
logger.info "MiqHostDatastoreSystem.addNasDatastoreByName: remoteHost = #{remoteHost}, remotePath = #{remotePath}, localPath = #{localPath}"
|
48
52
|
createNasDatastore(remoteHost, remotePath, localPath, accessMode, type)
|
49
53
|
end
|
50
54
|
end # class MiqHostDatastoreSystem
|
@@ -20,49 +20,73 @@ class MiqVim < MiqVimInventory
|
|
20
20
|
|
21
21
|
attr_reader :updateThread, :monitor_updates
|
22
22
|
|
23
|
-
# @param server [String] DNS name or IP address of the vCenter Server
|
23
|
+
# @param server [String] DNS name or IP address of the vCenter Server
|
24
24
|
# @param username [String] Username to connect to the vCenter Server
|
25
25
|
# @param password [String] Password to connect to the vCenter Server
|
26
|
-
# @param
|
26
|
+
# @param port [Integer] Port to connect to the vCenter Server (default: 443)
|
27
|
+
# @param ssl_options [Hash] SSL connection options, :verify_mode and :ca_file
|
28
|
+
# @param cache_scope [Symbol] A pre-defined set of properties to cache (default: nil)
|
27
29
|
# @param monitor_updates [Bool] Should a thread be started to monitor updates (default: false)
|
28
|
-
# @param
|
29
|
-
# @param
|
30
|
-
# @param
|
31
|
-
# @param
|
32
|
-
# @param
|
33
|
-
def initialize(server
|
34
|
-
super(server, username, password,
|
30
|
+
# @param pre_load [Bool] Should the cache be built before returning the connection (default: false)
|
31
|
+
# @param debug_updates [Bool] Should we print debug info for each update (default: false)
|
32
|
+
# @param notify_method [Method] A optional method to call for each update (default: nil)
|
33
|
+
# @param max_wait [Integer] How many seconds to wait before breaking out of WaitForUpdates (default: 60)
|
34
|
+
# @param max_objects [Integer] How many objects to return from each WaitForUpdates page (default: 250)
|
35
|
+
def initialize(server:, username:, password:, port: 443, ssl_options: {}, cache_scope: nil, monitor_updates: nil, pre_load: nil, debug_updates: false, notify_method: nil, max_wait: 60, max_objects: 250)
|
36
|
+
super(:server => server, :port => port, :ssl_options => ssl_options, :username => username, :password => password, :cache_scope => cache_scope)
|
37
|
+
|
38
|
+
monitor_updates = self.class.monitor_updates if monitor_updates.nil?
|
39
|
+
pre_load = self.class.pre_load if pre_load.nil?
|
35
40
|
|
36
41
|
@monitor_updates = monitor_updates
|
37
42
|
@updateMonitorReady = false
|
38
43
|
@error = nil
|
39
|
-
@notifyMethod =
|
40
|
-
@debugUpdates =
|
41
|
-
@maxWait =
|
42
|
-
@maxObjects =
|
44
|
+
@notifyMethod = notify_method
|
45
|
+
@debugUpdates = debug_updates
|
46
|
+
@maxWait = max_wait
|
47
|
+
@maxObjects = max_objects
|
48
|
+
|
49
|
+
start_monitor_updates_thread(pre_load) if @monitor_updates
|
50
|
+
end
|
51
|
+
|
52
|
+
@@monitor_updates = false
|
53
|
+
@@pre_load = false
|
54
|
+
|
55
|
+
def self.monitor_updates
|
56
|
+
@@monitor_updates
|
57
|
+
end
|
58
|
+
|
59
|
+
def self.monitor_updates=(val)
|
60
|
+
@@monitor_updates = val
|
61
|
+
end
|
62
|
+
|
63
|
+
def self.pre_load
|
64
|
+
@@pre_load
|
65
|
+
end
|
43
66
|
|
44
|
-
|
67
|
+
def self.pre_load=(val)
|
68
|
+
@@pre_load = val
|
45
69
|
end
|
46
70
|
|
47
71
|
def getVimVm(path)
|
48
|
-
|
72
|
+
logger.info "MiqVimMod.getVimVm: called"
|
49
73
|
miqVimVm = nil
|
50
74
|
@cacheLock.synchronize(:SH) do
|
51
75
|
raise MiqException::MiqVimResourceNotFound, "Could not find VM: #{path}" unless (vmh = virtualMachines_locked[path])
|
52
76
|
miqVimVm = MiqVimVm.new(self, conditionalCopy(vmh))
|
53
77
|
end
|
54
|
-
|
78
|
+
logger.info "MiqVimMod.getVimVm: returning object #{miqVimVm.object_id}"
|
55
79
|
(miqVimVm)
|
56
80
|
end # def getVimVm
|
57
81
|
|
58
82
|
def getVimVmByMor(vmMor)
|
59
|
-
|
83
|
+
logger.info "MiqVimMod.getVimVmByMor: called"
|
60
84
|
miqVimVm = nil
|
61
85
|
@cacheLock.synchronize(:SH) do
|
62
86
|
raise MiqException::MiqVimResourceNotFound, "Could not find VM: #{vmMor}" unless (vmh = virtualMachinesByMor_locked[vmMor])
|
63
87
|
miqVimVm = MiqVimVm.new(self, conditionalCopy(vmh))
|
64
88
|
end
|
65
|
-
|
89
|
+
logger.info "MiqVimMod.getVimVmByMor: returning object #{miqVimVm.object_id}"
|
66
90
|
(miqVimVm)
|
67
91
|
end # def getVimVmByMor
|
68
92
|
|
@@ -71,36 +95,36 @@ class MiqVim < MiqVimInventory
|
|
71
95
|
# matches the criteria defined by the filter.
|
72
96
|
#
|
73
97
|
def getVimVmByFilter(filter)
|
74
|
-
|
98
|
+
logger.info "MiqVimMod.getVimVmByFilter: called"
|
75
99
|
miqVimVm = nil
|
76
100
|
@cacheLock.synchronize(:SH) do
|
77
101
|
vms = applyFilter(virtualMachinesByMor_locked.values, filter)
|
78
102
|
raise MiqException::MiqVimResourceNotFound, "getVimVmByFilter: Could not find VM matching filter" if vms.empty?
|
79
103
|
miqVimVm = MiqVimVm.new(self, conditionalCopy(vms[0]))
|
80
104
|
end
|
81
|
-
|
105
|
+
logger.info "MiqVimMod.getVimVmByFilter: returning object #{miqVimVm.object_id}"
|
82
106
|
(miqVimVm)
|
83
107
|
end # def getVimVmByFilter
|
84
108
|
|
85
109
|
def getVimHost(name)
|
86
|
-
|
110
|
+
logger.info "MiqVimMod.getVimHost: called"
|
87
111
|
miqVimHost = nil
|
88
112
|
@cacheLock.synchronize(:SH) do
|
89
113
|
raise MiqException::MiqVimResourceNotFound, "Could not find Host: #{name}" unless (hh = hostSystems_locked[name])
|
90
114
|
miqVimHost = MiqVimHost.new(self, conditionalCopy(hh))
|
91
115
|
end
|
92
|
-
|
116
|
+
logger.info "MiqVimMod.getVimHost: returning object #{miqVimHost.object_id}"
|
93
117
|
(miqVimHost)
|
94
118
|
end # def getVimHost
|
95
119
|
|
96
120
|
def getVimHostByMor(hMor)
|
97
|
-
|
121
|
+
logger.info "MiqVimMod.getVimHostByMor: called"
|
98
122
|
miqVimHost = nil
|
99
123
|
@cacheLock.synchronize(:SH) do
|
100
124
|
raise MiqException::MiqVimResourceNotFound, "Could not find Host: #{hMor}" unless (hh = hostSystemsByMor_locked[hMor])
|
101
125
|
miqVimHost = MiqVimHost.new(self, conditionalCopy(hh))
|
102
126
|
end
|
103
|
-
|
127
|
+
logger.info "MiqVimMod.getVimHostByMor: returning object #{miqVimHost.object_id}"
|
104
128
|
(miqVimHost)
|
105
129
|
end # def getVimHostByMor
|
106
130
|
|
@@ -109,48 +133,48 @@ class MiqVim < MiqVimInventory
|
|
109
133
|
# matches the criteria defined by the filter.
|
110
134
|
#
|
111
135
|
def getVimHostByFilter(filter)
|
112
|
-
|
136
|
+
logger.info "MiqVimMod.getVimHostByFilter: called"
|
113
137
|
miqVimHost = nil
|
114
138
|
@cacheLock.synchronize(:SH) do
|
115
139
|
ha = applyFilter(hostSystemsByMor_locked.values, filter)
|
116
140
|
raise MiqException::MiqVimResourceNotFound, "getVimHostByFilter: Could not find Host matching filter" if ha.empty?
|
117
141
|
miqVimHost = MiqVimHost.new(self, conditionalCopy(ha[0]))
|
118
142
|
end
|
119
|
-
|
143
|
+
logger.info "MiqVimMod.getVimHostByFilter: returning object #{miqVimHost.object_id}"
|
120
144
|
(miqVimHost)
|
121
145
|
end # def getVimHostByFilter
|
122
146
|
|
123
147
|
def getVimFolder(name)
|
124
|
-
|
148
|
+
logger.info "MiqVimMod.getVimFolder: called"
|
125
149
|
miqVimFolder = nil
|
126
150
|
@cacheLock.synchronize(:SH) do
|
127
151
|
raise MiqException::MiqVimResourceNotFound, "Could not find Folder: #{name}" unless (fh = folders_locked[name])
|
128
152
|
miqVimFolder = MiqVimFolder.new(self, conditionalCopy(fh))
|
129
153
|
end
|
130
|
-
|
154
|
+
logger.info "MiqVimMod.getVimFolder: returning object #{miqVimFolder.object_id}"
|
131
155
|
(miqVimFolder)
|
132
156
|
end # def getVimFolder
|
133
157
|
|
134
158
|
def getVimFolderByMor(fMor)
|
135
|
-
|
159
|
+
logger.info "MiqVimMod.getVimFolderByMor: called"
|
136
160
|
miqVimFolder = nil
|
137
161
|
@cacheLock.synchronize(:SH) do
|
138
162
|
raise MiqException::MiqVimResourceNotFound, "Could not find Folder: #{fMor}" unless (fh = foldersByMor_locked[fMor])
|
139
163
|
miqVimFolder = MiqVimFolder.new(self, conditionalCopy(fh))
|
140
164
|
end
|
141
|
-
|
165
|
+
logger.info "MiqVimMod.getVimFolderByMor: returning object #{miqVimFolder.object_id}"
|
142
166
|
(miqVimFolder)
|
143
167
|
end # def getVimFolderByMor
|
144
168
|
|
145
169
|
def getVimFolderByFilter(filter)
|
146
|
-
|
170
|
+
logger.info "MiqVimMod.getVimFolderByFilter: called"
|
147
171
|
miqVimFolder = nil
|
148
172
|
@cacheLock.synchronize(:SH) do
|
149
173
|
folders = applyFilter(foldersByMor_locked.values, filter)
|
150
174
|
raise MiqException::MiqVimResourceNotFound, "getVimFolderByFilter: Could not find folder matching filter" if folders.empty?
|
151
175
|
miqVimFolder = MiqVimFolder.new(self, conditionalCopy(folders[0]))
|
152
176
|
end
|
153
|
-
|
177
|
+
logger.info "MiqVimMod.getVimFolderByFilter: returning object #{miqVimFolder.object_id}"
|
154
178
|
(miqVimFolder)
|
155
179
|
end # def getVimFolderByFilter
|
156
180
|
|
@@ -158,36 +182,36 @@ class MiqVim < MiqVimInventory
|
|
158
182
|
# Cluster
|
159
183
|
#
|
160
184
|
def getVimCluster(name)
|
161
|
-
|
185
|
+
logger.info "MiqVimMod.getVimCluster: called"
|
162
186
|
miqVimCluster = nil
|
163
187
|
@cacheLock.synchronize(:SH) do
|
164
188
|
raise MiqException::MiqVimResourceNotFound, "Could not find Cluster: #{name}" unless (ch = clusterComputeResources_locked[name])
|
165
189
|
miqVimCluster = MiqVimCluster.new(self, conditionalCopy(ch))
|
166
190
|
end
|
167
|
-
|
191
|
+
logger.info "MiqVimMod.getVimCluster: returning object #{miqVimCluster.object_id}"
|
168
192
|
(miqVimCluster)
|
169
193
|
end # def getVimCluster
|
170
194
|
|
171
195
|
def getVimClusterByMor(cMor)
|
172
|
-
|
196
|
+
logger.info "MiqVimMod.getVimClusterByMor: called"
|
173
197
|
miqVimCluster = nil
|
174
198
|
@cacheLock.synchronize(:SH) do
|
175
199
|
raise MiqException::MiqVimResourceNotFound, "Could not find Cluster: #{cMor}" unless (ch = clusterComputeResourcesByMor_locked[cMor])
|
176
200
|
miqVimCluster = MiqVimCluster.new(self, conditionalCopy(ch))
|
177
201
|
end
|
178
|
-
|
202
|
+
logger.info "MiqVimMod.getVimClusterByMor: returning object #{miqVimCluster.object_id}"
|
179
203
|
(miqVimCluster)
|
180
204
|
end # def getVimClusterByMor
|
181
205
|
|
182
206
|
def getVimClusterByFilter(filter)
|
183
|
-
|
207
|
+
logger.info "MiqVimMod.getVimClusterByFilter: called"
|
184
208
|
miqVimCluster = nil
|
185
209
|
@cacheLock.synchronize(:SH) do
|
186
210
|
clusters = applyFilter(clusterComputeResourcesByMor_locked.values, filter)
|
187
211
|
raise MiqException::MiqVimResourceNotFound, "getVimClusterByFilter: Could not find Cluster matching filter" if clusters.empty?
|
188
212
|
miqVimCluster = MiqVimCluster.new(self, conditionalCopy(clusters[0]))
|
189
213
|
end
|
190
|
-
|
214
|
+
logger.info "MiqVimMod.getVimClusterByFilter: returning object #{miqVimCluster.object_id}"
|
191
215
|
(miqVimCluster)
|
192
216
|
end # def getVimClusterByFilter
|
193
217
|
|
@@ -195,54 +219,54 @@ class MiqVim < MiqVimInventory
|
|
195
219
|
# DataStore
|
196
220
|
#
|
197
221
|
def getVimDataStore(dsName)
|
198
|
-
|
222
|
+
logger.info "MiqVimMod.getVimDataStore: called"
|
199
223
|
miqVimDs = nil
|
200
224
|
@cacheLock.synchronize(:SH) do
|
201
225
|
raise MiqException::MiqVimResourceNotFound, "Could not find datastore: #{dsName}" unless (dsh = dataStores_locked[dsName])
|
202
226
|
miqVimDs = MiqVimDataStore.new(self, conditionalCopy(dsh))
|
203
227
|
end
|
204
|
-
|
228
|
+
logger.info "MiqVimMod.getVimDataStore: returning object #{miqVimDs.object_id}"
|
205
229
|
(miqVimDs)
|
206
230
|
end
|
207
231
|
|
208
232
|
def getVimDataStoreByMor(dsMor)
|
209
|
-
|
233
|
+
logger.info "MiqVimMod.getVimDataStoreByMor: called"
|
210
234
|
miqVimDs = nil
|
211
235
|
@cacheLock.synchronize(:SH) do
|
212
236
|
raise MiqException::MiqVimResourceNotFound, "Could not find datastore: #{dsMor}" unless (dsh = dataStoresByMor_locked[dsMor])
|
213
237
|
miqVimDs = MiqVimDataStore.new(self, conditionalCopy(dsh))
|
214
238
|
end
|
215
|
-
|
239
|
+
logger.info "MiqVimMod.getVimDataStoreByMor: returning object #{miqVimDs.object_id}"
|
216
240
|
(miqVimDs)
|
217
241
|
end
|
218
242
|
|
219
243
|
def getVimPerfHistory
|
220
244
|
miqVimPh = MiqVimPerfHistory.new(self)
|
221
|
-
|
245
|
+
logger.info "MiqVimMod.getVimPerfHistory: returning object #{miqVimPh.object_id}"
|
222
246
|
(miqVimPh)
|
223
247
|
end
|
224
248
|
|
225
249
|
def getVimEventHistory(eventFilterSpec = nil, pgSize = 20)
|
226
250
|
miqVimEh = MiqVimEventHistoryCollector.new(self, eventFilterSpec, pgSize)
|
227
|
-
|
251
|
+
logger.info "MiqVimMod.getVimEventHistory: returning object #{miqVimEh.object_id}"
|
228
252
|
(miqVimEh)
|
229
253
|
end
|
230
254
|
|
231
255
|
def getMiqCustomFieldsManager
|
232
256
|
miqVimCfm = MiqCustomFieldsManager.new(self)
|
233
|
-
|
257
|
+
logger.info "MiqVimMod.getMiqCustomFieldsManager: returning object #{miqVimCfm.object_id}"
|
234
258
|
(miqVimCfm)
|
235
259
|
end
|
236
260
|
|
237
261
|
def getVimAlarmManager
|
238
262
|
miqVimAm = MiqVimAlarmManager.new(self)
|
239
|
-
|
263
|
+
logger.info "MiqVimMod.getVimAlarmManager: returning object #{miqVimAm.object_id}"
|
240
264
|
(miqVimAm)
|
241
265
|
end
|
242
266
|
|
243
267
|
def getVimCustomizationSpecManager
|
244
268
|
miqVimCsm = MiqVimCustomizationSpecManager.new(self)
|
245
|
-
|
269
|
+
logger.info "MiqVimMod.getVimCustomizationSpecManager: returning object #{miqVimCsm.object_id}"
|
246
270
|
(miqVimCsm)
|
247
271
|
end
|
248
272
|
|
@@ -257,28 +281,28 @@ class MiqVim < MiqVimInventory
|
|
257
281
|
def start_monitor_updates_thread(preLoad)
|
258
282
|
checkForOrphanedMonitors
|
259
283
|
log_prefix = "MiqVim.initialize (#{@connId})"
|
260
|
-
|
284
|
+
logger.info "#{log_prefix}: starting update monitor thread"
|
261
285
|
@updateThread = Thread.new { monitor(preLoad) }
|
262
286
|
@updateThread[:vim_connection_id] = connId
|
263
|
-
|
287
|
+
logger.info "#{log_prefix}: waiting for update monitor to become ready"
|
264
288
|
until @updateMonitorReady
|
265
289
|
raise @error unless @error.nil?
|
266
290
|
break unless @updateThread.alive?
|
267
291
|
Thread.pass
|
268
292
|
end
|
269
|
-
|
293
|
+
logger.info "#{log_prefix}: update monitor ready"
|
270
294
|
end
|
271
295
|
|
272
296
|
def checkForOrphanedMonitors
|
273
297
|
log_prefix = "MiqVim.checkForOrphanedMonitors (#{@connId})"
|
274
|
-
|
298
|
+
logger.debug "#{log_prefix}: called..."
|
275
299
|
Thread.list.each do |thr|
|
276
300
|
next unless thr[:vim_connection_id] == connId
|
277
|
-
|
301
|
+
logger.error "#{log_prefix}: Terminating orphaned update monitor <#{thr.object_id}>"
|
278
302
|
thr.raise "Orphaned update monitor (#{@connId}) <#{thr.object_id}>, terminated by <#{Thread.current.object_id}>"
|
279
303
|
thr.wakeup
|
280
304
|
end
|
281
|
-
|
305
|
+
logger.debug "#{log_prefix}: done."
|
282
306
|
end
|
283
307
|
|
284
308
|
def monitor(preLoad)
|
@@ -286,7 +310,7 @@ class MiqVim < MiqVimInventory
|
|
286
310
|
begin
|
287
311
|
monitorUpdates(preLoad)
|
288
312
|
rescue Exception => err
|
289
|
-
|
313
|
+
logger.info "#{log_prefix}: returned from monitorUpdates via #{err.class} exception"
|
290
314
|
@error = err
|
291
315
|
end
|
292
316
|
end
|
@@ -296,9 +320,9 @@ class MiqVim < MiqVimInventory
|
|
296
320
|
stopUpdateMonitor
|
297
321
|
begin
|
298
322
|
if @updateThread != Thread.current && @updateThread.alive?
|
299
|
-
|
323
|
+
logger.info "#{log_prefix}: waiting for Update Monitor Thread...Starting"
|
300
324
|
@updateThread.join
|
301
|
-
|
325
|
+
logger.info "#{log_prefix}: waiting for Update Monitor Thread...Complete"
|
302
326
|
end
|
303
327
|
rescue
|
304
328
|
end
|
@@ -8,10 +8,11 @@ require 'VMwareWebService/VimService'
|
|
8
8
|
class MiqVimClientBase < VimService
|
9
9
|
@@receiveTimeout = 120
|
10
10
|
|
11
|
-
attr_reader :server, :username, :password, :connId
|
11
|
+
attr_reader :server, :port, :username, :password, :connId
|
12
12
|
|
13
|
-
def initialize(server
|
13
|
+
def initialize(server:, username:, password:, port: 443, ssl_options: {})
|
14
14
|
@server = server
|
15
|
+
@port = port
|
15
16
|
@username = username
|
16
17
|
@password = password
|
17
18
|
@connId = "#{@server}_#{@username}"
|
@@ -19,13 +20,13 @@ class MiqVimClientBase < VimService
|
|
19
20
|
@receiveTimeout = @@receiveTimeout
|
20
21
|
|
21
22
|
on_http_client_init do |http_client, _headers|
|
22
|
-
http_client.
|
23
|
-
http_client.ssl_config.
|
24
|
-
http_client.
|
23
|
+
http_client.receive_timeout = @receiveTimeout
|
24
|
+
http_client.ssl_config.verify_mode = ssl_options[:verify_ssl] || OpenSSL::SSL::VERIFY_NONE
|
25
|
+
http_client.ssl_config.cert_store.add_cert(OpenSSL::X509::Certificate.new(ssl_options[:ca_file])) if ssl_options[:ca_file]
|
25
26
|
end
|
26
27
|
|
27
|
-
on_log_header { |msg|
|
28
|
-
on_log_body { |msg|
|
28
|
+
on_log_header { |msg| logger.info msg }
|
29
|
+
on_log_body { |msg| logger.debug msg } if $miq_wiredump
|
29
30
|
|
30
31
|
super(:uri => sdk_uri, :version => 1)
|
31
32
|
|
@@ -34,7 +35,7 @@ class MiqVimClientBase < VimService
|
|
34
35
|
end
|
35
36
|
|
36
37
|
def sdk_uri
|
37
|
-
URI::HTTPS.build(:host => server, :path => "/sdk")
|
38
|
+
URI::HTTPS.build(:host => server, :port => port, :path => "/sdk")
|
38
39
|
end
|
39
40
|
|
40
41
|
def self.receiveTimeout=(val)
|
@@ -59,7 +60,7 @@ class MiqVimClientBase < VimService
|
|
59
60
|
end
|
60
61
|
|
61
62
|
def connect
|
62
|
-
|
63
|
+
logger.debug { "#{self.class.name}.connect(#{@connId}): #{$PROGRAM_NAME} #{ARGV.join(' ')}" }
|
63
64
|
@connLock.synchronize(:EX) do
|
64
65
|
return if @connected
|
65
66
|
login(@sic.sessionManager, @username, @password)
|
@@ -68,7 +69,7 @@ class MiqVimClientBase < VimService
|
|
68
69
|
end
|
69
70
|
|
70
71
|
def disconnect
|
71
|
-
|
72
|
+
logger.debug { "#{self.class.name}.disconnect(#{@connId}): #{$PROGRAM_NAME} #{ARGV.join(' ')}" }
|
72
73
|
@connLock.synchronize(:EX) do
|
73
74
|
return unless @connected
|
74
75
|
logout(@sic.sessionManager)
|
@@ -1,4 +1,8 @@
|
|
1
|
+
require 'VMwareWebService/logging'
|
2
|
+
|
1
3
|
class MiqVimCluster
|
4
|
+
include VMwareWebService::Logging
|
5
|
+
|
2
6
|
attr_reader :name, :invObj
|
3
7
|
|
4
8
|
def initialize(invObj, ch)
|
@@ -44,9 +48,9 @@ class MiqVimCluster
|
|
44
48
|
cs.vmFolder = ah[:vmFolder] unless ah[:vmFolder].nil?
|
45
49
|
end
|
46
50
|
|
47
|
-
|
51
|
+
logger.info "MiqVimCluster(#{@invObj.server}, #{@invObj.username}).addHost: calling addHost_Task"
|
48
52
|
taskMor = @invObj.addHost_Task(@cMor, cspec, ah[:asConnected].to_s, ah[:resourcePool], ah[:license])
|
49
|
-
|
53
|
+
logger.info "MiqVimCluster(#{@invObj.server}, #{@invObj.username}).addHost: returned from addHost_Task"
|
50
54
|
return taskMor unless ah[:wait]
|
51
55
|
waitForTask(taskMor)
|
52
56
|
end # def addHost
|
@@ -1,7 +1,10 @@
|
|
1
1
|
require 'sync'
|
2
2
|
require 'util/miq-extensions' # Required patch to open-uri for get_file_content
|
3
|
+
require 'VMwareWebService/logging'
|
3
4
|
|
4
5
|
class MiqVimDataStore
|
6
|
+
include VMwareWebService::Logging
|
7
|
+
|
5
8
|
attr_reader :accessible, :multipleHostAccess, :name, :dsType, :url, :freeBytes, :capacityBytes, :uncommitted, :invObj
|
6
9
|
|
7
10
|
def initialize(invObj, dsh)
|
@@ -127,13 +130,13 @@ class MiqVimDataStore
|
|
127
130
|
|
128
131
|
taskMor = nil
|
129
132
|
if recurse
|
130
|
-
|
133
|
+
logger.info "MiqVimDataStore(#{@invObj.server}, #{@invObj.username}).dsSearch: calling searchDatastoreSubFolders_Task"
|
131
134
|
taskMor = @invObj.searchDatastoreSubFolders_Task(browserMor, dsPath, searchSpec)
|
132
|
-
|
135
|
+
logger.info "MiqVimDataStore(#{@invObj.server}, #{@invObj.username}).dsSearch: returned from searchDatastoreSubFolders_Task"
|
133
136
|
else
|
134
|
-
|
137
|
+
logger.info "MiqVimDataStore(#{@invObj.server}, #{@invObj.username}).dsSearch: calling searchDatastore_Task"
|
135
138
|
taskMor = @invObj.searchDatastore_Task(browserMor, dsPath, searchSpec)
|
136
|
-
|
139
|
+
logger.info "MiqVimDataStore(#{@invObj.server}, #{@invObj.username}).dsSearch: returned from searchDatastore_Task"
|
137
140
|
end
|
138
141
|
|
139
142
|
retObj = waitForTask(taskMor)
|
@@ -200,9 +203,9 @@ class MiqVimDataStore
|
|
200
203
|
hdbs.sortFoldersFirst = "true"
|
201
204
|
end
|
202
205
|
|
203
|
-
|
206
|
+
logger.info "MiqVimDataStore(#{@invObj.server}, #{@invObj.username}).dsHash_locked: calling searchDatastoreSubFolders_Task"
|
204
207
|
taskMor = @invObj.searchDatastoreSubFolders_Task(browser_locked, "[#{@name}]", searchSpec)
|
205
|
-
|
208
|
+
logger.info "MiqVimDataStore(#{@invObj.server}, #{@invObj.username}).dsHash_locked: returned from searchDatastoreSubFolders_Task"
|
206
209
|
|
207
210
|
retObj = waitForTask(taskMor)
|
208
211
|
retObj = [retObj] unless retObj.kind_of?(Array)
|
@@ -1,4 +1,8 @@
|
|
1
|
+
require 'VMwareWebService/logging'
|
2
|
+
|
1
3
|
class MiqVimEventHistoryCollector
|
4
|
+
include VMwareWebService::Logging
|
5
|
+
|
2
6
|
attr_reader :invObj
|
3
7
|
|
4
8
|
def initialize(invObj, eventFilterSpec = nil, pgSize = 20)
|
@@ -14,7 +18,7 @@ class MiqVimEventHistoryCollector
|
|
14
18
|
|
15
19
|
def release
|
16
20
|
return unless @eventHistoryCollector
|
17
|
-
|
21
|
+
logger.info "MiqVimEventHistoryCollector.release: destroying #{@eventHistoryCollector}"
|
18
22
|
@invObj.destroyCollector(@eventHistoryCollector)
|
19
23
|
@eventHistoryCollector = nil
|
20
24
|
end
|
@@ -1,15 +1,17 @@
|
|
1
|
-
require '
|
1
|
+
require 'VMwareWebService/logging'
|
2
2
|
require 'VMwareWebService/MiqVimInventory'
|
3
3
|
|
4
4
|
class MiqVimEventMonitor < MiqVimInventory
|
5
|
-
|
6
|
-
super(server, username, password, :cache_scope_event_monitor)
|
5
|
+
include VMwareWebService::Logging
|
7
6
|
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
@
|
12
|
-
@
|
7
|
+
def initialize(server:, username:, password:, port: 443, ssl_options: {}, event_filter_spec: nil, page_size: 100, max_wait: 60)
|
8
|
+
super(:server => server, :port => port, :ssl_options => ssl_options, :username => username, :password => password, :cache_scope => :cache_scope_event_monitor)
|
9
|
+
|
10
|
+
@eventFilterSpec = event_filter_spec || VimHash.new("EventFilterSpec")
|
11
|
+
@pgSize = page_size
|
12
|
+
@maxWait = max_wait
|
13
|
+
@_monitorEvents = true
|
14
|
+
@emPropCol = nil
|
13
15
|
|
14
16
|
hostSystemsByMor
|
15
17
|
# datacentersByMor
|
@@ -73,25 +75,25 @@ class MiqVimEventMonitor < MiqVimInventory
|
|
73
75
|
end
|
74
76
|
rescue HTTPClient::ReceiveTimeoutError => terr
|
75
77
|
retry if isAlive?
|
76
|
-
|
78
|
+
logger.debug "MiqVimEventMonitor.monitorEvents: connection lost"
|
77
79
|
raise
|
78
80
|
end
|
79
81
|
rescue SignalException => err
|
80
82
|
ensure
|
81
|
-
|
83
|
+
logger.info "MiqVimEventMonitor: calling destroyPropertyFilter"
|
82
84
|
destroyPropertyFilter(filterSpecRef) if filterSpecRef
|
83
|
-
|
85
|
+
logger.info "MiqVimEventMonitor: returned from destroyPropertyFilter"
|
84
86
|
disconnect
|
85
87
|
end
|
86
88
|
end # def monitorEvents
|
87
89
|
|
88
90
|
def stop
|
89
|
-
|
91
|
+
logger.info "MiqVimEventMonitor stopping..."
|
90
92
|
@_monitorEvents = false
|
91
93
|
if @emPropCol
|
92
|
-
|
94
|
+
logger.info "MiqVimEventMonitor: calling cancelWaitForUpdates"
|
93
95
|
cancelWaitForUpdates(@emPropCol)
|
94
|
-
|
96
|
+
logger.info "MiqVimEventMonitor: returned from cancelWaitForUpdates"
|
95
97
|
end
|
96
98
|
end
|
97
99
|
|
@@ -100,14 +102,14 @@ class MiqVimEventMonitor < MiqVimInventory
|
|
100
102
|
|
101
103
|
def fixupEvent(event)
|
102
104
|
unless event.kind_of?(Hash)
|
103
|
-
|
105
|
+
logger.error "MiqVimEventMonitor.fixupEvent: Expecting Hash, got #{event.class}"
|
104
106
|
if event.kind_of?(Array)
|
105
107
|
event.each_index do |i|
|
106
|
-
|
107
|
-
|
108
|
+
logger.error "MiqVimEventMonitor.fixupEvent: event[#{i}] is a #{event[i].class}"
|
109
|
+
logger.error "\tMiqVimEventMonitor.fixupEvent: event[#{i}] = #{event[i].inspect}"
|
108
110
|
end
|
109
111
|
else
|
110
|
-
|
112
|
+
logger.error "\tMiqVimEventMonitor.fixupEvent: event = #{event.inspect}"
|
111
113
|
end
|
112
114
|
raise "MiqVimEventMonitor.fixupEvent: Expecting Hash, got #{event.class}"
|
113
115
|
end
|
@@ -164,8 +166,8 @@ class MiqVimEventMonitor < MiqVimInventory
|
|
164
166
|
begin
|
165
167
|
cancelTask(String.new(e['info']['task'].to_str))
|
166
168
|
rescue => err
|
167
|
-
|
168
|
-
|
169
|
+
logger.error err.to_s
|
170
|
+
logger.error err.backtrace.join("\n")
|
169
171
|
end
|
170
172
|
end
|
171
173
|
end # module MiqVimEventMonitor
|