Class: OvirtSDK4::EventsService
- Defined in:
- lib/ovirtsdk4/services.rb,
lib/ovirtsdk4/services.rb
Instance Method Summary collapse
-
#add(event, opts = {}) ⇒ Event
Adds an external event to the internal audit log.
-
#event_service(id) ⇒ EventService
Reference to the service that manages a specific event.
-
#list(opts = {}) ⇒ Array<Event>
Get list of events.
-
#service(path) ⇒ Service
Locates the service corresponding to the given path.
-
#undelete(opts = {}) ⇒ Object
Executes the
undelete
method.
Methods inherited from Service
Instance Method Details
#add(event, opts = {}) ⇒ Event
Adds an external event to the internal audit log.
This is intended for integration with external systems that detect or produce events relevant for the administrator of the system. For example, an external monitoring tool may be able to detect that a file system is full inside the guest operating system of a virtual machine. This event can be added to the internal audit log sending a request like this:
POST /ovirt-engine/api/events
<event>
<description>File system /home is full</description>
<severity>alert</severity>
<origin>mymonitor</origin>
<custom_id>1467879754</custom_id>
</event>
Events can also be linked to specific objects. For example, the above event could be linked to the specific
virtual machine where it happened, using the vm
link:
POST /ovirt-engine/api/events
<event>
<description>File system /home is full</description>
<severity>alert</severity>
<origin>mymonitor</origin>
<custom_id>1467879754</custom_id>
<vm id="aae98225-5b73-490d-a252-899209af17e9"/>
</event>
Note
|
When using links, like the vm in the previous example, only the id attribute is accepted. The name
attribute, if provided, is simply ignored.
|
9002 9003 9004 |
# File 'lib/ovirtsdk4/services.rb', line 9002 def add(event, opts = {}) internal_add(event, Event, ADD, opts) end |
#event_service(id) ⇒ EventService
Reference to the service that manages a specific event.
9203 9204 9205 |
# File 'lib/ovirtsdk4/services.rb', line 9203 def event_service(id) EventService.new(self, id) end |
#list(opts = {}) ⇒ Array<Event>
Get list of events.
GET /ovirt-engine/api/events
To the above request we get following response:
<events>
<event href="/ovirt-engine/api/events/2" id="2">
<description>User admin@internal-authz logged out.</description>
<code>31</code>
<correlation_id>1e892ea9</correlation_id>
<custom_id>-1</custom_id>
<flood_rate>30</flood_rate>
<origin>oVirt</origin>
<severity>normal</severity>
<time>2016-09-14T12:14:34.541+02:00</time>
<user href="/ovirt-engine/api/users/57d91d48-00da-0137-0138-000000000244" id="57d91d48-00da-0137-0138-000000000244"/>
</event>
<event href="/ovirt-engine/api/events/1" id="1">
<description>User admin logged in.</description>
<code>30</code>
<correlation_id>1fbd81f4</correlation_id>
<custom_id>-1</custom_id>
<flood_rate>30</flood_rate>
<origin>oVirt</origin>
<severity>normal</severity>
<time>2016-09-14T11:54:35.229+02:00</time>
<user href="/ovirt-engine/api/users/57d91d48-00da-0137-0138-000000000244" id="57d91d48-00da-0137-0138-000000000244"/>
</event>
</events>
The following events occur:
-
id="1" - The API logs in the admin user account.
-
id="2" - The API logs out of the admin user account.
The order of the returned list of events is always garanteed. If the sortby
clause is included in the
search
parameter, then the events will be ordered according to that clause. If the sortby
clause isn’t
included, then the events will be sorted by the numeric value of the id
attribute, starting with the
highest value. This, combined with the max
parameter, simplifies obtaining the most recent event:
GET /ovirt-engine/api/events?max=1
9166 9167 9168 |
# File 'lib/ovirtsdk4/services.rb', line 9166 def list(opts = {}) internal_get(LIST, opts) end |
#service(path) ⇒ Service
Locates the service corresponding to the given path.
9214 9215 9216 9217 9218 9219 9220 9221 9222 9223 |
# File 'lib/ovirtsdk4/services.rb', line 9214 def service(path) if path.nil? || path == '' return self end index = path.index('/') if index.nil? return event_service(path) end return event_service(path[0..(index - 1)]).service(path[(index + 1)..-1]) end |
#undelete(opts = {}) ⇒ Object
Executes the undelete
method.
9192 9193 9194 |
# File 'lib/ovirtsdk4/services.rb', line 9192 def undelete(opts = {}) internal_action(:undelete, nil, UNDELETE, opts) end |