ovirt 0.1.0

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.
@@ -0,0 +1,492 @@
1
+ module Ovirt
2
+ class Event < Object
3
+
4
+ self.top_level_strings = [:description, :severity]
5
+ self.top_level_integers = [:code]
6
+ self.top_level_timestamps = [:time]
7
+ self.top_level_objects = [:cdrom, :cluster, :data_center, :disk, :domain, :file, :group, :host, :host_nic, :network, :nic, :permission, :permit, :role, :snapshot, :storage, :storage_domain, :tag, :template, :user, :vm, :vmpool]
8
+
9
+ def self.parse_xml(xml)
10
+ node, hash = xml_to_hash(xml)
11
+ set_event_name(hash)
12
+ hash
13
+ end
14
+
15
+ def self.set_event_name(hash)
16
+ hash[:name] = EVENT_CODES[hash[:code]]
17
+ unless hash[:name]
18
+ hash[:name] = "UNKNOWN"
19
+ $rhevm_log.warn "MIQ(#{self.name}.#{__method__}) Unknown RHEVM event #{hash[:code]}: #{hash[:description]}"
20
+ end
21
+ end
22
+ private_class_method :set_event_name
23
+
24
+ def to_hash
25
+ self.attributes.dup
26
+ end
27
+
28
+ EVENT_CODES = {
29
+ # Code Description
30
+ 0 => "UNASSIGNED",
31
+ 1 => "VDC_START",
32
+ 2 => "VDC_STOP",
33
+ 12 => "HOST_FAILURE",
34
+ 13 => "HOST_DETECTED",
35
+ 14 => "HOST_RECOVER",
36
+ 15 => "HOST_MAINTENANCE",
37
+ 16 => "HOST_ACTIVATE",
38
+ 17 => "HOST_MAINTENANCE_FAILED",
39
+ 18 => "HOST_ACTIVATE_FAILED",
40
+ 19 => "HOST_RECOVER_FAILED",
41
+ 20 => "USER_HOST_START",
42
+ 21 => "USER_HOST_STOP",
43
+ 22 => "IRS_FAILURE",
44
+ 26 => "IRS_DISK_SPACE_LOW",
45
+ 30 => "USER_VDC_LOGIN",
46
+ 31 => "USER_VDC_LOGOUT",
47
+ 32 => "USER_RUN_VM",
48
+ 33 => "USER_STOP_VM",
49
+ 34 => "USER_ADD_VM",
50
+ 35 => "USER_UPDATE_VM",
51
+ 36 => "USER_REMOVE_VM",
52
+ 37 => "USER_ADD_VM_STARTED",
53
+ 38 => "USER_CHANGE_DISK_VM",
54
+ 39 => "USER_PAUSE_VM",
55
+ 40 => "USER_RESUME_VM",
56
+ 41 => "USER_HOST_RESTART",
57
+ 42 => "USER_ADD_HOST",
58
+ 43 => "USER_UPDATE_HOST",
59
+ 44 => "USER_REMOVE_HOST",
60
+ 45 => "USER_CREATE_SNAPSHOT",
61
+ 46 => "USER_TRY_BACK_TO_SNAPSHOT",
62
+ 47 => "USER_RESTORE_FROM_SNAPSHOT",
63
+ 48 => "USER_ADD_VM_TEMPLATE",
64
+ 49 => "USER_UPDATE_VM_TEMPLATE",
65
+ 50 => "USER_REMOVE_VM_TEMPLATE",
66
+ 51 => "USER_ADD_VM_TEMPLATE_FINISHED_SUCCESS",
67
+ 52 => "USER_ADD_VM_TEMPLATE_FINISHED_FAILURE",
68
+ 53 => "USER_ADD_VM_FINISHED_SUCCESS",
69
+ 54 => "USER_FAILED_RUN_VM",
70
+ 55 => "USER_FAILED_PAUSE_VM",
71
+ 56 => "USER_FAILED_STOP_VM",
72
+ 57 => "USER_FAILED_ADD_VM",
73
+ 58 => "USER_FAILED_UPDATE_VM",
74
+ 59 => "USER_FAILED_REMOVE_VM",
75
+ 60 => "USER_ADD_VM_FINISHED_FAILURE",
76
+ 61 => "VM_DOWN",
77
+ 62 => "VM_MIGRATION_START",
78
+ 63 => "VM_MIGRATION_DONE",
79
+ 64 => "VM_MIGRATION_ABORT",
80
+ 65 => "VM_MIGRATION_FAILED",
81
+ 66 => "VM_FAILURE",
82
+ 68 => "USER_CREATE_SNAPSHOT_FINISHED_SUCCESS",
83
+ 69 => "USER_CREATE_SNAPSHOT_FINISHED_FAILURE",
84
+ 70 => "USER_RUN_VM_AS_STATELESS_FINISHED_FAILURE",
85
+ 71 => "USER_TRY_BACK_TO_SNAPSHOT_FINISH_SUCCESS",
86
+ 72 => "USER_CHANGE_FLOPPY_VM",
87
+ 73 => "USER_INITIATED_SHUTDOWN_VM",
88
+ 74 => "USER_FAILED_SHUTDOWN_VM",
89
+ 75 => "USER_FAILED_CHANGE_FLOPPY_VM",
90
+ 76 => "USER_STOPPED_VM_INSTEAD_OF_SHUTDOWN",
91
+ 77 => "USER_FAILED_STOPPING_VM_INSTEAD_OF_SHUTDOWN",
92
+ 78 => "USER_ADD_DISK_TO_VM",
93
+ 79 => "USER_FAILED_ADD_DISK_TO_VM",
94
+ 80 => "USER_REMOVE_DISK_FROM_VM",
95
+ 81 => "USER_FAILED_REMOVE_DISK_FROM_VM",
96
+ 82 => "USER_MOVED_VM",
97
+ 83 => "USER_FAILED_MOVE_VM",
98
+ 84 => "USER_MOVED_TEMPLATE",
99
+ 85 => "USER_FAILED_MOVE_TEMPLATE",
100
+ 86 => "USER_COPIED_TEMPLATE",
101
+ 87 => "USER_FAILED_COPY_TEMPLATE",
102
+ 88 => "USER_UPDATE_VM_DISK",
103
+ 89 => "USER_FAILED_UPDATE_VM_DISK",
104
+ 90 => "USER_HOST_SHUTDOWN",
105
+ 91 => "USER_MOVED_VM_FINISHED_SUCCESS",
106
+ 92 => "USER_MOVED_VM_FINISHED_FAILURE",
107
+ 93 => "USER_MOVED_TEMPLATE_FINISHED_SUCCESS",
108
+ 94 => "USER_MOVED_TEMPLATE_FINISHED_FAILURE",
109
+ 95 => "USER_COPIED_TEMPLATE_FINISHED_SUCCESS",
110
+ 96 => "USER_COPIED_TEMPLATE_FINISHED_FAILURE",
111
+ 97 => "USER_ADD_DISK_TO_VM_FINISHED_SUCCESS",
112
+ 98 => "USER_ADD_DISK_TO_VM_FINISHED_FAILURE",
113
+ 99 => "USER_TRY_BACK_TO_SNAPSHOT_FINISH_FAILURE",
114
+ 100 => "USER_RESTORE_FROM_SNAPSHOT_FINISH_SUCCESS",
115
+ 101 => "USER_RESTORE_FROM_SNAPSHOT_FINISH_FAILURE",
116
+ 102 => "USER_FAILED_CHANGE_DISK_VM",
117
+ 103 => "USER_FAILED_RESUME_VM",
118
+ 104 => "USER_FAILED_ADD_HOST",
119
+ 105 => "USER_FAILED_UPDATE_HOST",
120
+ 106 => "USER_FAILED_REMOVE_HOST",
121
+ 107 => "USER_FAILED_HOST_RESTART",
122
+ 108 => "USER_FAILED_ADD_VM_TEMPLATE",
123
+ 109 => "USER_FAILED_UPDATE_VM_TEMPLATE",
124
+ 110 => "USER_FAILED_REMOVE_VM_TEMPLATE",
125
+ 111 => "USER_STOP_SUSPENDED_VM",
126
+ 112 => "USER_STOP_SUSPENDED_VM_FAILED",
127
+ 113 => "USER_REMOVE_VM_FINISHED",
128
+ 114 => "USER_VDC_LOGIN_FAILED",
129
+ 115 => "USER_FAILED_TRY_BACK_TO_SNAPSHOT",
130
+ 116 => "USER_FAILED_RESTORE_FROM_SNAPSHOT",
131
+ 117 => "USER_FAILED_CREATE_SNAPSHOT",
132
+ 118 => "USER_FAILED_HOST_START",
133
+ 119 => "VM_DOWN_ERROR",
134
+ 120 => "VM_MIGRATION_FAILED_FROM_TO",
135
+ 121 => "SYSTEM_HOST_RESTART",
136
+ 122 => "SYSTEM_FAILED_HOST_RESTART",
137
+ 123 => "HOST_SLOW_STORAGE_RESPONSE_TIME",
138
+ 124 => "VM_IMPORT",
139
+ 125 => "VM_IMPORT_FAILED",
140
+ 126 => "VM_NOT_RESPONDING",
141
+ 127 => "HOST_RUN_IN_NO_KVM_MODE",
142
+ 128 => "VM_MIGRATION_TRYING_RERUN",
143
+ 129 => "VM_CLEARED",
144
+ 130 => "USER_FAILED_HOST_SHUTDOWN",
145
+ 131 => "USER_EXPORT_VM",
146
+ 132 => "USER_EXPORT_VM_FAILED",
147
+ 133 => "USER_EXPORT_TEMPLATE",
148
+ 134 => "USER_EXPORT_TEMPLATE_FAILED",
149
+ 135 => "TEMPLATE_IMPORT",
150
+ 136 => "TEMPLATE_IMPORT_FAILED",
151
+ 137 => "USER_FAILED_HOST_STOP",
152
+ 138 => "VM_PAUSED_ENOSPC",
153
+ 139 => "VM_PAUSED_ERROR",
154
+ 140 => "VM_MIGRATION_FAILED_DURING_MOVE_TO_MAINTANANCE",
155
+ 141 => "HOST_VERSION_NOT_SUPPORTED_FOR_CLUSTER",
156
+ 142 => "VM_SET_TO_UNKNOWN_STATUS",
157
+ 143 => "VM_WAS_SET_DOWN_DUE_TO_HOST_REBOOT_OR_MANUAL_FENCE",
158
+ 144 => "VM_IMPORT_INFO",
159
+ 145 => "VM_BLK_VIRTIO_NO_CACHE",
160
+ 147 => "VM_SHUTDOWN_FAILED",
161
+ 149 => "USER_ADD",
162
+ 150 => "USER_INITIATED_RUN_VM",
163
+ 151 => "USER_INITIATED_RUN_VM_FAILED",
164
+ 152 => "USER_RUN_VM_ON_NON_DEFAULT_HOST",
165
+ 153 => "USER_STARTED_VM",
166
+ 182 => "USER_FAILED_ATTACH_USER_TO_VM",
167
+ 201 => "IRS_DISK_SPACE_LOW_ERROR",
168
+ 204 => "IRS_HOSTED_ON_HOST",
169
+ 250 => "USER_UPDATE_VM_CLUSTER_DEFAULT_HOST_CLEARED",
170
+ 251 => "USER_REMOVE_VM_TEMPLATE_FINISHED",
171
+ 300 => "USER_ADD_VM_POOL",
172
+ 301 => "USER_ADD_VM_POOL_FAILED",
173
+ 302 => "USER_ADD_VM_POOL_WITH_VMS",
174
+ 303 => "USER_ADD_VM_POOL_WITH_VMS_FAILED",
175
+ 304 => "USER_REMOVE_VM_POOL",
176
+ 305 => "USER_REMOVE_VM_POOL_FAILED",
177
+ 306 => "USER_ADD_VM_TO_POOL",
178
+ 307 => "USER_ADD_VM_TO_POOL_FAILED",
179
+ 308 => "USER_REMOVE_VM_FROM_POOL",
180
+ 309 => "USER_REMOVE_VM_FROM_POOL_FAILED",
181
+ 310 => "USER_ATTACH_USER_TO_POOL",
182
+ 311 => "USER_ATTACH_USER_TO_POOL_FAILED",
183
+ 312 => "USER_DETACH_USER_FROM_POOL",
184
+ 313 => "USER_DETACH_USER_FROM_POOL_FAILED",
185
+ 314 => "USER_UPDATE_VM_POOL",
186
+ 315 => "USER_UPDATE_VM_POOL_FAILED",
187
+ 316 => "USER_ATTACH_USER_TO_VM_FROM_POOL",
188
+ 317 => "USER_ATTACH_USER_TO_VM_FROM_POOL_FAILED",
189
+ 318 => "USER_ATTACH_USER_TO_VM_FROM_POOL_FINISHED_SUCCESS",
190
+ 319 => "USER_ATTACH_USER_TO_VM_FROM_POOL_FINISHED_FAILURE",
191
+ 320 => "USER_ADD_VM_POOL_WITH_VMS_ADD_HOST_FAILED",
192
+ 325 => "USER_REMOVE_ADUSER",
193
+ 326 => "USER_FAILED_REMOVE_ADUSER",
194
+ 327 => "USER_FAILED_ADD_ADUSER",
195
+ 328 => "USER_ATTACH_USER_TO_TIME_LEASED_POOL",
196
+ 329 => "USER_ATTACH_USER_TO_TIME_LEASED_POOL_FAILED",
197
+ 330 => "USER_DETACH_USER_FROM_TIME_LEASED_POOL",
198
+ 331 => "USER_DETACH_USER_FROM_TIME_LEASED_POOL_FAILED",
199
+ 332 => "USER_ATTACH_AD_GROUP_TO_TIME_LEASED_POOL",
200
+ 333 => "USER_ATTACH_AD_GROUP_TO_TIME_LEASED_POOL_FAILED",
201
+ 334 => "USER_DETACH_AD_GROUP_FROM_TIME_LEASED_POOL",
202
+ 335 => "USER_DETACH_AD_GROUP_FROM_TIME_LEASED_POOL_FAILED",
203
+ 336 => "USER_UPDATE_USER_TO_TIME_LEASED_POOL",
204
+ 337 => "USER_UPDATE_USER_TO_TIME_LEASED_POOL_FAILED",
205
+ 338 => "USER_UPDATE_AD_GROUP_TO_TIME_LEASED_POOL",
206
+ 339 => "USER_UPDATE_AD_GROUP_TO_TIME_LEASED_POOL_FAILED",
207
+ 342 => "USER_MERGE_SNAPSHOT",
208
+ 343 => "USER_FAILED_MERGE_SNAPSHOT",
209
+ 344 => "USER_UPDATE_VM_POOL_WITH_VMS",
210
+ 345 => "USER_UPDATE_VM_POOL_WITH_VMS_FAILED",
211
+ 346 => "USER_PASSWORD_CHANGED",
212
+ 347 => "USER_PASSWORD_CHANGE_FAILED",
213
+ 348 => "USER_CLEAR_UNKNOWN_VMS",
214
+ 349 => "USER_FAILED_CLEAR_UNKNOWN_VMS",
215
+ 350 => "USER_ADD_BOOKMARK",
216
+ 351 => "USER_ADD_BOOKMARK_FAILED",
217
+ 352 => "USER_UPDATE_BOOKMARK",
218
+ 353 => "USER_UPDATE_BOOKMARK_FAILED",
219
+ 354 => "USER_REMOVE_BOOKMARK",
220
+ 355 => "USER_REMOVE_BOOKMARK_FAILED",
221
+ 356 => "USER_MERGE_SNAPSHOT_FINISHED_SUCCESS",
222
+ 357 => "USER_MERGE_SNAPSHOT_FINISHED_FAILURE",
223
+ 360 => "USER_DETACH_USER_FROM_VM",
224
+ 361 => "USER_FAILED_DETACH_USER_FROM_VM",
225
+ 400 => "USER_ATTACH_VM_TO_AD_GROUP",
226
+ 401 => "USER_ATTACH_VM_TO_AD_GROUP_FAILED",
227
+ 402 => "USER_DETACH_VM_TO_AD_GROUP",
228
+ 403 => "USER_DETACH_VM_TO_AD_GROUP_FAILED",
229
+ 404 => "USER_ATTACH_VM_POOL_TO_AD_GROUP",
230
+ 405 => "USER_ATTACH_VM_POOL_TO_AD_GROUP_FAILED",
231
+ 406 => "USER_DETACH_VM_POOL_TO_AD_GROUP",
232
+ 407 => "USER_DETACH_VM_POOL_TO_AD_GROUP_FAILED",
233
+ 408 => "USER_REMOVE_AD_GROUP",
234
+ 409 => "USER_REMOVE_AD_GROUP_FAILED",
235
+ 430 => "USER_UPDATE_TAG",
236
+ 431 => "USER_UPDATE_TAG_FAILED",
237
+ 432 => "USER_ADD_TAG",
238
+ 433 => "USER_ADD_TAG_FAILED",
239
+ 434 => "USER_REMOVE_TAG",
240
+ 435 => "USER_REMOVE_TAG_FAILED",
241
+ 436 => "USER_ATTACH_TAG_TO_USER",
242
+ 437 => "USER_ATTACH_TAG_TO_USER_FAILED",
243
+ 438 => "USER_ATTACH_TAG_TO_USER_GROUP",
244
+ 439 => "USER_ATTACH_TAG_TO_USER_GROUP_FAILED",
245
+ 440 => "USER_ATTACH_TAG_TO_VM",
246
+ 441 => "USER_ATTACH_TAG_TO_VM_FAILED",
247
+ 442 => "USER_ATTACH_TAG_TO_HOST",
248
+ 443 => "USER_ATTACH_TAG_TO_HOST_FAILED",
249
+ 444 => "USER_DETACH_HOST_FROM_TAG",
250
+ 445 => "USER_DETACH_HOST_FROM_TAG_FAILED",
251
+ 446 => "USER_DETACH_VM_FROM_TAG",
252
+ 447 => "USER_DETACH_VM_FROM_TAG_FAILED",
253
+ 448 => "USER_DETACH_USER_FROM_TAG",
254
+ 449 => "USER_DETACH_USER_FROM_TAG_FAILED",
255
+ 450 => "USER_DETACH_USER_GROUP_FROM_TAG",
256
+ 451 => "USER_DETACH_USER_GROUP_FROM_TAG_FAILED",
257
+ 452 => "USER_ATTACH_TAG_TO_USER_EXISTS",
258
+ 453 => "USER_ATTACH_TAG_TO_USER_GROUP_EXISTS",
259
+ 454 => "USER_ATTACH_TAG_TO_VM_EXISTS",
260
+ 455 => "USER_ATTACH_TAG_TO_HOST_EXISTS",
261
+ 456 => "USER_LOGGED_IN_VM",
262
+ 457 => "USER_LOGGED_OUT_VM",
263
+ 458 => "USER_LOCKED_VM",
264
+ 459 => "USER_UNLOCKED_VM",
265
+ 460 => "USER_DETACH_USER_FROM_TIME_LEASED_POOL_INTERNAL",
266
+ 461 => "USER_DETACH_USER_FROM_TIME_LEASED_POOL_FAILED_INTERNAL",
267
+ 462 => "USER_DETACH_AD_GROUP_FROM_TIME_LEASED_POOL_INTERNAL",
268
+ 463 => "USER_DETACH_AD_GROUP_FROM_TIME_LEASED_POOL_FAILED_INTERNAL",
269
+ 467 => "UPDATE_TAGS_VM_DEFAULT_DISPLAY_TYPE",
270
+ 468 => "UPDATE_TAGS_VM_DEFAULT_DISPLAY_TYPE_FAILED",
271
+ 470 => "USER_ATTACH_VM_POOL_TO_AD_GROUP_INTERNAL",
272
+ 471 => "USER_ATTACH_VM_POOL_TO_AD_GROUP_FAILED_INTERNAL",
273
+ 472 => "USER_ATTACH_USER_TO_POOL_INTERNAL",
274
+ 473 => "USER_ATTACH_USER_TO_POOL_FAILED_INTERNAL",
275
+ 494 => "HOST_MANUAL_FENCE_STATUS",
276
+ 495 => "HOST_MANUAL_FENCE_STATUS_FAILED",
277
+ 496 => "HOST_FENCE_STATUS",
278
+ 497 => "HOST_FENCE_STATUS_FAILED",
279
+ 498 => "HOST_APPROVE",
280
+ 499 => "HOST_APPROVE_FAILED",
281
+ 500 => "HOST_FAILED_TO_RUN_VMS",
282
+ 501 => "USER_SUSPEND_VM",
283
+ 502 => "USER_FAILED_SUSPEND_VM",
284
+ 503 => "USER_SUSPEND_VM_OK",
285
+ 504 => "HOST_INSTALL",
286
+ 505 => "HOST_INSTALL_FAILED",
287
+ 506 => "HOST_INITIATED_RUN_VM",
288
+ 507 => "HOST_INITIATED_RUN_VM_FAILED",
289
+ 509 => "HOST_INSTALL_IN_PROGRESS",
290
+ 510 => "HOST_INSTALL_IN_PROGRESS_WARNING",
291
+ 511 => "HOST_INSTALL_IN_PROGRESS_ERROR",
292
+ 512 => "USER_SUSPEND_VM_FINISH_SUCCESS",
293
+ 513 => "HOST_RECOVER_FAILED_VMS_UNKNOWN",
294
+ 514 => "HOST_INITIALIZING",
295
+ 515 => "HOST_CPU_LOWER_THAN_CLUSTER",
296
+ 516 => "HOST_CPU_RETRIEVE_FAILED",
297
+ 517 => "HOST_SET_NONOPERATIONAL",
298
+ 518 => "HOST_SET_NONOPERATIONAL_FAILED",
299
+ 519 => "HOST_SET_NONOPERATIONAL_NETWORK",
300
+ 520 => "USER_ATTACH_USER_TO_VM",
301
+ 521 => "USER_SUSPEND_VM_FINISH_FAILURE",
302
+ 522 => "HOST_SET_NONOPERATIONAL_DOMAIN",
303
+ 523 => "HOST_SET_NONOPERATIONAL_DOMAIN_FAILED",
304
+ 524 => "AUTO_SUSPEND_VM",
305
+ 524 => "HOST_DOMAIN_DELAY_INTERVAL",
306
+ 525 => "AUTO_SUSPEND_VM_FINISH_SUCCESS",
307
+ 526 => "AUTO_SUSPEND_VM_FINISH_FAILURE",
308
+ 527 => "AUTO_FAILED_SUSPEND_VM",
309
+ 528 => "USER_EJECT_VM_DISK",
310
+ 529 => "USER_EJECT_VM_FLOPPY",
311
+ 530 => "HOST_MANUAL_FENCE_FAILED_CALL_FENCE_SPM",
312
+ 531 => "HOST_LOW_MEM",
313
+ 533 => "HOST_FAILED_CONNECTION_TO_DATA_CENTER",
314
+ 555 => "USER_MOVE_TAG",
315
+ 556 => "USER_MOVE_TAG_FAILED",
316
+ 600 => "USER_HOST_MAINTENANCE",
317
+ 601 => "CPU_FLAGS_NX_IS_MISSING",
318
+ 602 => "USER_HOST_MAINTENANCE_MIGRATION_FAILED",
319
+ 603 => "HOST_SET_NONOPERATIONAL_IFACE_DOWN",
320
+ 605 => "HOST_USED_AS_PROXY",
321
+ 800 => "IMAGES_SYNCRONIZER_DESKTOP_NOT_EXIST_IN_VDC",
322
+ 801 => "IMAGES_SYNCRONIZER_TEMPLATE_NOT_EXIST_IMAGE_EXIST",
323
+ 802 => "IMAGES_SYNCRONIZER_SNAPSHOT_NOT_EXIST_IN_VDC",
324
+ 803 => "IMAGES_SYNCRONIZER_SNAPSHOTS_NOT_ATTACHED_TO_VM_IN_VDC",
325
+ 804 => "IMAGES_SYNCRONIZER_TEMPLATE_NOT_EXIST_IN_VDC",
326
+ 805 => "IMAGES_SYNCRONIZER_DESKTOP_NOT_EXIST_IN_IRS",
327
+ 806 => "IMAGES_SYNCRONIZER_SNAPSHOT_NOT_EXIST_IN_IRS",
328
+ 807 => "IMAGES_SYNCRONIZER_DESKTOP_WITHOUT_TEMPLATE_VDC",
329
+ 808 => "IMAGES_SYNCRONIZER_IMAGE_TEMPLATE_NOT_EXIST",
330
+ 809 => "USER_ADD_HOST_GROUP",
331
+ 810 => "USER_ADD_HOST_GROUP_FAILED",
332
+ 811 => "USER_UPDATE_HOST_GROUP",
333
+ 812 => "USER_UPDATE_HOST_GROUP_FAILED",
334
+ 813 => "USER_REMOVE_HOST_GROUP",
335
+ 814 => "USER_REMOVE_HOST_GROUP_FAILED",
336
+ 815 => "USER_VDC_LOGOUT_FAILED",
337
+ 816 => "MAC_POOL_EMPTY",
338
+ 817 => "CERTIFICATE_FILE_NOT_FOUND",
339
+ 818 => "RUN_VM_FAILED",
340
+ 819 => "HOST_REGISTER_ERROR_UPDATING_HOST",
341
+ 820 => "HOST_REGISTER_ERROR_UPDATING_HOST_ALL_TAKEN",
342
+ 821 => "HOST_REGISTER_HOST_IS_ACTIVE",
343
+ 822 => "HOST_REGISTER_ERROR_UPDATING_NAME",
344
+ 823 => "HOST_REGISTER_ERROR_UPDATING_NAMES_ALL_TAKEN",
345
+ 824 => "HOST_REGISTER_NAME_IS_ACTIVE",
346
+ 825 => "HOST_REGISTER_AUTO_APPROVE_PATTERN",
347
+ 826 => "HOST_REGISTER_FAILED",
348
+ 827 => "HOST_REGISTER_EXISTING_HOST_UPDATE_FAILED",
349
+ 828 => "HOST_REGISTER_SUCCEEDED",
350
+ 829 => "VM_MIGRATION_ON_CONNECT_CHECK_FAILED",
351
+ 830 => "VM_MIGRATION_ON_CONNECT_CHECK_SUCCEEDED",
352
+ 831 => "USER_DEDICATE_VM_TO_POWERCLIENT",
353
+ 832 => "USER_DEDICATE_VM_TO_POWERCLIENT_FAILED",
354
+ 833 => "MAC_ADDRESS_IS_IN_USE",
355
+ 835 => "SYSTEM_UPDATE_HOST_GROUP",
356
+ 836 => "SYSTEM_UPDATE_HOST_GROUP_FAILED",
357
+ 850 => "USER_ADD_PERMISSION",
358
+ 851 => "USER_ADD_PERMISSION_FAILED",
359
+ 852 => "USER_REMOVE_PERMISSION",
360
+ 853 => "USER_REMOVE_PERMISSION_FAILED",
361
+ 854 => "USER_ADD_ROLE",
362
+ 855 => "USER_ADD_ROLE_FAILED",
363
+ 856 => "USER_UPDATE_ROLE",
364
+ 857 => "USER_UPDATE_ROLE_FAILED",
365
+ 858 => "USER_REMOVE_ROLE",
366
+ 859 => "USER_REMOVE_ROLE_FAILED",
367
+ 860 => "USER_ATTACHED_ACTION_GROUP_TO_ROLE",
368
+ 861 => "USER_ATTACHED_ACTION_GROUP_TO_ROLE_FAILED",
369
+ 862 => "USER_DETACHED_ACTION_GROUP_FROM_ROLE",
370
+ 863 => "USER_DETACHED_ACTION_GROUP_FROM_ROLE_FAILED",
371
+ 864 => "USER_ADD_ROLE_WITH_ACTION_GROUP",
372
+ 865 => "USER_ADD_ROLE_WITH_ACTION_GROUP_FAILED",
373
+ 900 => "AD_COMPUTER_ACCOUNT_SUCCEEDED",
374
+ 901 => "AD_COMPUTER_ACCOUNT_FAILED",
375
+ 920 => "NETWORK_ATTACH_NETWORK_TO_HOST",
376
+ 921 => "NETWORK_ATTACH_NETWORK_TO_HOST_FAILED",
377
+ 922 => "NETWORK_DETACH_NETWORK_FROM_HOST",
378
+ 923 => "NETWORK_DETACH_NETWORK_FROM_HOST_FAILED",
379
+ 924 => "NETWORK_ADD_BOND",
380
+ 925 => "NETWORK_ADD_BOND_FAILED",
381
+ 926 => "NETWORK_REMOVE_BOND",
382
+ 927 => "NETWORK_REMOVE_BOND_FAILED",
383
+ 928 => "NETWORK_HOST_NETWORK_MATCH_CLUSTER",
384
+ 929 => "NETWORK_HOST_NETWORK_NOT_MATCH_CLUSTER",
385
+ 930 => "NETWORK_REMOVE_VM_INTERFACE",
386
+ 931 => "NETWORK_REMOVE_VM_INTERFACE_FAILED",
387
+ 932 => "NETWORK_ADD_VM_INTERFACE",
388
+ 933 => "NETWORK_ADD_VM_INTERFACE_FAILED",
389
+ 934 => "NETWORK_UPDATE_VM_INTERFACE",
390
+ 935 => "NETWORK_UPDATE_VM_INTERFACE_FAILED",
391
+ 936 => "NETWORK_ADD_TEMPLATE_INTERFACE",
392
+ 937 => "NETWORK_ADD_TEMPLATE_INTERFACE_FAILED",
393
+ 938 => "NETWORK_REMOVE_TEMPLATE_INTERFACE",
394
+ 939 => "NETWORK_REMOVE_TEMPLATE_INTERFACE_FAILED",
395
+ 940 => "NETWORK_UPDATE_TEMPLATE_INTERFACE",
396
+ 941 => "NETWORK_UPDATE_TEMPLATE_INTERFACE_FAILED",
397
+ 942 => "NETWORK_ADD_NETWORK",
398
+ 943 => "NETWORK_ADD_NETWORK_FAILED",
399
+ 944 => "NETWORK_REMOVE_NETWORK",
400
+ 945 => "NETWORK_REMOVE_NETWORK_FAILED",
401
+ 946 => "NETWORK_ATTACH_NETWORK_TO_HOST_GROUP",
402
+ 947 => "NETWORK_ATTACH_NETWORK_TO_HOST_GROUP_FAILED",
403
+ 948 => "NETWORK_DETACH_NETWORK_TO_HOST_GROUP",
404
+ 949 => "NETWORK_DETACH_NETWORK_TO_HOST_GROUP_FAILED",
405
+ 950 => "USER_ADD_STORAGE_POOL",
406
+ 951 => "USER_ADD_STORAGE_POOL_FAILED",
407
+ 952 => "USER_UPDATE_STORAGE_POOL",
408
+ 953 => "USER_UPDATE_STORAGE_POOL_FAILED",
409
+ 954 => "USER_REMOVE_STORAGE_POOL",
410
+ 955 => "USER_REMOVE_STORAGE_POOL_FAILED",
411
+ 956 => "USER_ADD_STORAGE_DOMAIN",
412
+ 957 => "USER_ADD_STORAGE_DOMAIN_FAILED",
413
+ 958 => "USER_UPDATE_STORAGE_DOMAIN",
414
+ 959 => "USER_UPDATE_STORAGE_DOMAIN_FAILED",
415
+ 960 => "USER_REMOVE_STORAGE_DOMAIN",
416
+ 961 => "USER_REMOVE_STORAGE_DOMAIN_FAILED",
417
+ 962 => "USER_ATTACH_STORAGE_DOMAIN_TO_POOL",
418
+ 963 => "USER_ATTACH_STORAGE_DOMAIN_TO_POOL_FAILED",
419
+ 964 => "USER_DETACH_STORAGE_DOMAIN_FROM_POOL",
420
+ 965 => "USER_DETACH_STORAGE_DOMAIN_FROM_POOL_FAILED",
421
+ 966 => "USER_ACTIVATED_STORAGE_DOMAIN",
422
+ 967 => "USER_ACTIVATE_STORAGE_DOMAIN_FAILED",
423
+ 968 => "USER_DEACTIVATED_STORAGE_DOMAIN",
424
+ 969 => "USER_DEACTIVATE_STORAGE_DOMAIN_FAILED",
425
+ 970 => "SYSTEM_DEACTIVATED_STORAGE_DOMAIN",
426
+ 971 => "SYSTEM_DEACTIVATE_STORAGE_DOMAIN_FAILED",
427
+ 972 => "USER_EXTENDED_STORAGE_DOMAIN",
428
+ 973 => "USER_EXTENDED_STORAGE_DOMAIN_FAILED",
429
+ 974 => "USER_REMOVE_VG",
430
+ 975 => "USER_REMOVE_VG_FAILED",
431
+ 976 => "USER_ACTIVATE_STORAGE_POOL",
432
+ 977 => "USER_ACTIVATE_STORAGE_POOL_FAILED",
433
+ 978 => "SYSTEM_FAILED_CHANGE_STORAGE_POOL_STATUS",
434
+ 979 => "SYSTEM_CHANGE_STORAGE_POOL_STATUS_NO_HOST_FOR_SPM",
435
+ 980 => "SYSTEM_CHANGE_STORAGE_POOL_STATUS_PROBLEMATIC",
436
+ 981 => "USER_FORCE_REMOVE_STORAGE_DOMAIN",
437
+ 982 => "USER_FORCE_REMOVE_STORAGE_DOMAIN_FAILED",
438
+ 983 => "RECONSTRUCT_MASTER_FAILED_NO_MASTER",
439
+ 984 => "RECONSTRUCT_MASTER_DONE",
440
+ 985 => "RECONSTRUCT_MASTER_FAILED",
441
+ 986 => "SYSTEM_CHANGE_STORAGE_POOL_STATUS_PROBLEMATIC_SEARCHING_NEW_SPM",
442
+ 987 => "SYSTEM_CHANGE_STORAGE_POOL_STATUS_PROBLEMATIC_WITH_ERROR",
443
+ 988 => "USER_CONNECT_HOSTS_TO_LUN_FAILED",
444
+ 989 => "SYSTEM_CHANGE_STORAGE_POOL_STATUS_PROBLEMATIC_FROM_NON_OPERATIONAL",
445
+ 990 => "SYSTEM_MASTER_DOMAIN_NOT_IN_SYNC",
446
+ 991 => "RECOVERY_STORAGE_POOL",
447
+ 992 => "RECOVERY_STORAGE_POOL_FAILED",
448
+ 993 => "SYSTEM_CHANGE_STORAGE_POOL_STATUS_RESET_IRS",
449
+ 994 => "CONNECT_STORAGE_SERVERS_FAILED",
450
+ 995 => "CONNECT_STORAGE_POOL_FAILED",
451
+ 996 => "STORAGE_DOMAIN_ERROR",
452
+ 998 => "ISO_DOMAIN_REFRESH_SUCCESSFUL",
453
+ 1012 => "NETWORK_INTERFACE_PLUGGED_INTO_VM",
454
+ 1100 => "NETWORK_UPDATE_DISPLAY_TO_HOST_GROUP",
455
+ 1101 => "NETWORK_UPDATE_DISPLAY_TO_HOST_GROUP_FAILED",
456
+ 1102 => "NETWORK_UPDATE_NETWORK_TO_HOST_INTERFACE",
457
+ 1103 => "NETWORK_UPDATE_NETWORK_TO_HOST_INTERFACE_FAILED",
458
+ 1104 => "NETWORK_COMMINT_NETWORK_CHANGES",
459
+ 1105 => "NETWORK_COMMINT_NETWORK_CHANGES_FAILED",
460
+ 1106 => "NETWORK_HOST_USING_WRONG_CLUSER_VLAN",
461
+ 1107 => "NETWORK_HOST_MISSING_CLUSER_VLAN",
462
+ 1150 => "IMPORTEXPORT_EXPORT_VM",
463
+ 1151 => "IMPORTEXPORT_EXPORT_VM_FAILED",
464
+ 1152 => "IMPORTEXPORT_IMPORT_VM",
465
+ 1153 => "IMPORTEXPORT_IMPORT_VM_FAILED",
466
+ 1154 => "IMPORTEXPORT_REMOVE_TEMPLATE",
467
+ 1155 => "IMPORTEXPORT_REMOVE_TEMPLATE_FAILED",
468
+ 1156 => "IMPORTEXPORT_EXPORT_TEMPLATE",
469
+ 1157 => "IMPORTEXPORT_EXPORT_TEMPLATE_FAILED",
470
+ 1158 => "IMPORTEXPORT_IMPORT_TEMPLATE",
471
+ 1159 => "IMPORTEXPORT_IMPORT_TEMPLATE_FAILED",
472
+ 1160 => "IMPORTEXPORT_REMOVE_VM",
473
+ 1161 => "IMPORTEXPORT_REMOVE_VM_FAILED",
474
+ 1162 => "IMPORTEXPORT_STARTING_EXPORT_VM",
475
+ 1163 => "IMPORTEXPORT_STARTING_IMPORT_TEMPLATE",
476
+ 1164 => "IMPORTEXPORT_STARTING_EXPORT_TEMPLATE",
477
+ 1165 => "IMPORTEXPORT_STARTING_IMPORT_VM",
478
+ 1166 => "IMPORTEXPORT_STARTING_REMOVE_TEMPLATE",
479
+ 1167 => "IMPORTEXPORT_STARTING_REMOVE_VM",
480
+ 1168 => "IMPORTEXPORT_FAILED_TO_IMPORT_VM",
481
+ 1169 => "IMPORTEXPORT_FAILED_TO_IMPORT_TEMPLATE",
482
+ 1200 => "VM_RENAMED",
483
+ 9000 => "HOST_ALERT_FENCING_IS_NOT_CONFIGURED",
484
+ 9001 => "HOST_ALERT_FENCING_TEST_FAILED",
485
+ 9002 => "HOST_ALERT_FENCING_OPERATION_FAILED",
486
+ 9003 => "HOST_ALERT_FENCING_OPERATION_SKIPPED",
487
+ 9004 => "HOST_ALERT_FENCING_NO_PROXY_HOST",
488
+ 9500 => "TASK_STOPPING_ASYNC_TASK",
489
+ 9501 => "TASK_CLEARING_ASYNC_TASK",
490
+ }
491
+ end
492
+ end
@@ -0,0 +1,36 @@
1
+ module Ovirt
2
+ class EventMonitor
3
+ def initialize(options={})
4
+ @options = options
5
+ end
6
+
7
+ def inventory
8
+ @inventory ||= Inventory.new(@options)
9
+ end
10
+
11
+ def start
12
+ trap(:TERM) { $rhevm_log.info "EventMonitor#start: ignoring SIGTERM" }
13
+ @since = nil
14
+ @inventory = nil
15
+ @monitor_events = true
16
+ end
17
+
18
+ def stop
19
+ @monitor_events = false
20
+ end
21
+
22
+ def each_batch
23
+ while @monitor_events do
24
+ events = inventory.events(@since).sort_by { |e| e[:id].to_i }
25
+ @since = events.last[:id].to_i unless events.empty?
26
+ yield events
27
+ end
28
+ end
29
+
30
+ def each
31
+ each_batch do |events|
32
+ events.each { |e| yield e }
33
+ end
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,13 @@
1
+ module Ovirt
2
+ # Abstract RHEVM Error Class
3
+ class Error < StandardError; end
4
+
5
+ # Existence
6
+ class TemplateAlreadyExists < Error; end
7
+ class VmAlreadyExists < Error; end
8
+
9
+ # Power State
10
+ class VmAlreadyRunning < Error; end
11
+ class VmIsNotRunning < Error; end
12
+ class VmNotReadyToBoot < Error; end
13
+ end
data/lib/ovirt/file.rb ADDED
@@ -0,0 +1,13 @@
1
+ module Ovirt
2
+ class File < Object
3
+
4
+ self.top_level_strings = [:name]
5
+ self.top_level_objects = [:storage_domain]
6
+
7
+ def self.parse_xml(xml)
8
+ node, hash = xml_to_hash(xml)
9
+
10
+ hash
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,12 @@
1
+ module Ovirt
2
+ class Group < Object
3
+
4
+ self.top_level_strings = [:name]
5
+
6
+ def self.parse_xml(xml)
7
+ node, hash = xml_to_hash(xml)
8
+
9
+ hash
10
+ end
11
+ end
12
+ end
data/lib/ovirt/host.rb ADDED
@@ -0,0 +1,44 @@
1
+ module Ovirt
2
+ class Host < Object
3
+
4
+ self.top_level_strings = [:name, :type, :address]
5
+ self.top_level_integers = [:port]
6
+ self.top_level_booleans = [:storage_manager]
7
+ self.top_level_objects = [:cluster]
8
+
9
+ def self.parse_xml(xml)
10
+ node, hash = xml_to_hash(xml)
11
+
12
+ hash[:relationships][:host_nics] = hash[:relationships].delete(:nics)
13
+
14
+ parse_first_node(node, :status, hash,
15
+ :node => [:state])
16
+
17
+ parse_first_node(node, :power_management, hash,
18
+ :attribute => [:type],
19
+ :node => [:address, :username, :options],
20
+ :node_to_bool => [:enabled])
21
+
22
+ parse_first_node(node, :ksm, hash,
23
+ :node_to_bool => [:enabled])
24
+
25
+ parse_first_node(node, :transparent_hugepages, hash,
26
+ :node_to_bool => [:enabled])
27
+
28
+ parse_first_node(node, :iscsi, hash,
29
+ :node => [:initiator])
30
+
31
+ parse_first_node(node, :cpu, hash,
32
+ :node => [:name],
33
+ :node_to_i => [:speed])
34
+
35
+ parse_first_node_with_hash(node, 'cpu/topology', hash.store_path(:cpu, :topology, {}),
36
+ :attribute_to_i => [:sockets, :cores])
37
+
38
+ parse_first_node(node, :summary, hash,
39
+ :node_to_i => [:active, :migrating, :total])
40
+
41
+ hash
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,38 @@
1
+ module Ovirt
2
+ class HostNic < Object
3
+
4
+ self.top_level_strings = [:name, :boot_protocol]
5
+ self.top_level_integers = [:speed]
6
+ self.top_level_objects = [:host, :network]
7
+
8
+ def self.element_name
9
+ "host_nic"
10
+ end
11
+
12
+ def self.parse_xml(xml)
13
+ node, hash = xml_to_hash(xml)
14
+
15
+ parse_first_node(node, :status, hash, :node => [:state])
16
+ parse_first_node(node, :mac, hash, :attribute => [:address])
17
+ parse_first_node(node, :ip, hash, :attribute => [:address, :netmask, :gateway])
18
+ parse_first_node(node, :network, hash, :node => [:name])
19
+
20
+ hash[:bonding] = {}
21
+ node.xpath('bonding/options').each do |opts|
22
+ hash[:bonding][:options] = []
23
+ opts.xpath('option').each do |opt|
24
+ hash[:bonding][:options] << {:name => opt[:name], :value => opt[:value], :type => opt[:type]}
25
+ end
26
+ end
27
+
28
+ node.xpath('bonding/slaves').each do |slaves|
29
+ hash[:bonding][:slaves] = {:host_nics => []}
30
+ slaves.xpath('host_nic').each do |slave|
31
+ hash[:bonding][:slaves][:host_nics] << {:id => slave[:id], :href => slave[:href]}
32
+ end
33
+ end
34
+
35
+ hash
36
+ end
37
+ end
38
+ end