class OvirtSDK4::EventsService
Public Class Methods
Creates a new implementation of the service.
@param connection [Connection] The connection to be used by this service.
@param path [String] The relative path of this service, for example `vms/123/disks`.
@api private
# File lib/ovirtsdk4/services.rb, line 6654 def initialize(connection, path) @connection = connection @path = path end
Public Instance Methods
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:
- source
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:
- source
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.
@param event [Event]
@return [Event]
# File lib/ovirtsdk4/services.rb, line 6700 def add(event, opts = {}) if event.is_a?(Hash) event = OvirtSDK4::Event.new(event) end request = Request.new(:method => :POST, :path => @path) begin writer = XmlWriter.new(nil, true) EventWriter.write_one(event, writer) request.body = writer.string ensure writer.close end response = @connection.send(request) case response.code when 201, 202 begin reader = XmlReader.new(response.body) return EventReader.read_one(reader) ensure reader.close end else check_fault(response) end end
Locates the `event` service.
@param id [String] The identifier of the `event`.
@return [EventService] A reference to the `event` service.
# File lib/ovirtsdk4/services.rb, line 6820 def event_service(id) return EventService.new(@connection, "#{@path}/#{id}") end
Returns the representation of the object managed by this service.
@param opts [Hash] Additional options.
@option opts [Boolean] :case_sensitive 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`.
@option opts [Integer] :from Indicates the identifier of the the first event that should be returned. The identifiers of events are
strictly increasing, so when this parameter is used only the events with that identifiers equal or greater than the given value will be returned. For example, the following request will return only the events with identifiers greater or equal than `123`: [source] ---- 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.
@option opts [Integer] :max Sets the maximum number of events to return. If not specified all the events are returned.
@option opts [String] :search A query string used to restrict the returned events.
@return [Array<Event>]
# File lib/ovirtsdk4/services.rb, line 6754 def list(opts = {}) query = {} value = opts[:case_sensitive] unless value.nil? value = Writer.render_boolean(value) query['case_sensitive'] = value end value = opts[:from] unless value.nil? value = Writer.render_integer(value) query['from'] = value end value = opts[:max] unless value.nil? value = Writer.render_integer(value) query['max'] = value end value = opts[:search] unless value.nil? query['search'] = value end request = Request.new(:method => :GET, :path => @path, :query => query) response = @connection.send(request) case response.code when 200 begin reader = XmlReader.new(response.body) return EventReader.read_many(reader) ensure reader.close end else check_fault(response) end end
Locates the service corresponding to the given path.
@param path [String] The path of the service.
@return [Service] A reference to the service.
# File lib/ovirtsdk4/services.rb, line 6831 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
Returns an string representation of this service.
@return [String]
# File lib/ovirtsdk4/services.rb, line 6847 def to_s return "#<#{EventsService}:#{@path}>" end
Executes the `undelete` method.
# File lib/ovirtsdk4/services.rb, line 6793 def undelete(opts = {}) action = Action.new(opts) writer = XmlWriter.new(nil, true) ActionWriter.write_one(action, writer) body = writer.string writer.close request = Request.new({ :method => :POST, :path => "#{@path}/undelete", :body => body, }) response = @connection.send(request) case response.code when 200 action = check_action(response) else check_fault(response) end end