Class: OvirtSDK4::EventsService

Inherits:
Service
  • Object
show all
Defined in:
lib/ovirtsdk4/services.rb,
lib/ovirtsdk4/services.rb

Instance Method Summary collapse

Methods inherited from Service

#inspect, #to_s

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.

Parameters:

  • event (Event)

    The event to add.

  • opts (Hash) (defaults to: {})

    Additional options.

Options Hash (opts):

  • :headers (Hash) — default: {}

    Additional HTTP headers.

  • :query (Hash) — default: {}

    Additional URL query parameters.

  • :timeout (Integer) — default: nil

    The timeout for this request, in seconds. If no value is explicitly given then the timeout set globally for the connection will be used.

  • :wait (Boolean) — default: true

    If true wait for the response.

Returns:



7982
7983
7984
# File 'lib/ovirtsdk4/services.rb', line 7982

def add(event, opts = {})
  internal_add(event, Event, ADD, opts)
end

#event_service(id) ⇒ EventService

Reference to the service that manages a specific event.

Parameters:

  • id (String)

    The identifier of the event.

Returns:



8183
8184
8185
# File 'lib/ovirtsdk4/services.rb', line 8183

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

Parameters:

  • opts (Hash) (defaults to: {})

    Additional options.

Options Hash (opts):

  • :case_sensitive (Boolean)

    Indicates if the search performed using the search parameter should be performed taking case into account. The default value is true, which means that case is taken into account. If you want to search ignoring case set it to false.

  • :follow (String)

    Indicates which inner links should be followed. The objects referenced by these links will be fetched as part of the current request. See here for details.

  • :from (Integer)

    Indicates the event index after which events should be returned. The indexes of events are strictly increasing, so when this parameter is used only the events with greater indexes will be returned. For example, the following request will return only the events with indexes greater than 123:

    GET /ovirt-engine/api/events?from=123

    This parameter is optional, and if not specified then the first event returned will be most recently generated.

  • :max (Integer)

    Sets the maximum number of events to return. If not specified all the events are returned.

  • :search (String)

    The events service provides search queries similar to other resource services.

    We can search by providing specific severity.

    GET /ovirt-engine/api/events?search=severity%3Dnormal

    To the above request we get a list of events which severity is equal to normal:

    <events>
      <event href="/ovirt-engine/api/events/2" id="2">
        <description>User admin@internal-authz logged out.</description>
        <code>31</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>
      <event href="/ovirt-engine/api/events/1" id="1">
        <description>Affinity Rules Enforcement Manager started.</description>
        <code>10780</code>
        <custom_id>-1</custom_id>
        <flood_rate>30</flood_rate>
        <origin>oVirt</origin>
        <severity>normal</severity>
        <time>2016-09-14T11:52:18.861+02:00</time>
      </event>
    </events>

    A virtualization environment generates a large amount of events after a period of time. However, the API only displays a default number of events for one search query. To display more than the default, the API separates results into pages with the page command in a search query. The following search query tells the API to paginate results using a page value in combination with the sortby clause:

    sortby time asc page 1

    Below example paginates event resources. The URL-encoded request is:

    GET /ovirt-engine/api/events?search=sortby%20time%20asc%20page%201

    Increase the page value to view the next page of results.

    GET /ovirt-engine/api/events?search=sortby%20time%20asc%20page%202
  • :headers (Hash) — default: {}

    Additional HTTP headers.

  • :query (Hash) — default: {}

    Additional URL query parameters.

  • :timeout (Integer) — default: nil

    The timeout for this request, in seconds. If no value is explicitly given then the timeout set globally for the connection will be used.

  • :wait (Boolean) — default: true

    If true wait for the response.

Returns:



8146
8147
8148
# File 'lib/ovirtsdk4/services.rb', line 8146

def list(opts = {})
  internal_get(LIST, opts)
end

#service(path) ⇒ Service

Locates the service corresponding to the given path.

Parameters:

  • path (String)

    The path of the service.

Returns:

  • (Service)

    A reference to the service.



8194
8195
8196
8197
8198
8199
8200
8201
8202
8203
# File 'lib/ovirtsdk4/services.rb', line 8194

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.

Parameters:

  • opts (Hash) (defaults to: {})

    Additional options.

Options Hash (opts):

  • :async (Boolean)

    Indicates if the un-delete should be performed asynchronously.

  • :headers (Hash) — default: {}

    Additional HTTP headers.

  • :query (Hash) — default: {}

    Additional URL query parameters.

  • :timeout (Integer) — default: nil

    The timeout for this request, in seconds. If no value is explicitly given then the timeout set globally for the connection will be used.

  • :wait (Boolean) — default: true

    If true wait for the response.



8172
8173
8174
# File 'lib/ovirtsdk4/services.rb', line 8172

def undelete(opts = {})
  internal_action(:undelete, nil, UNDELETE, opts)
end