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 24162 def initialize(connection, path) @connection = connection @path = path end
Returns the representation of the object managed by this service.
@param opts [Hash] Additional options.
@return [StorageConnection]
# File lib/ovirtsdk4/services.rb, line 24174 def get(opts = {}) query = {} request = HttpRequest.new(method: :GET, url: @path, query: query) response = @connection.send(request) case response.code when 200 begin reader = XmlReader.new(response.body) return StorageConnectionReader.read_one(reader) ensure reader.close end else check_fault(response) end end
Removes a storage connection.
A storage connection can only be deleted if neither storage domain nor LUN disks reference it. The host name or id is optional; providing it disconnects (unmounts) the connection from that host.
@param opts [Hash] Additional options.
@option opts [Boolean] :async Indicates if the remove should be performed asynchronously. @option opts [String] :host The name or identifier of the host from which the connection would be unmounted (disconnected). If not
provided, no host will be disconnected. For example, to use the host with identifier `456` to delete the storage connection with identifier `123` send a request like this: [source] ---- DELETE /ovirt-engine/api/storageconnections/123?host=456 ----
# File lib/ovirtsdk4/services.rb, line 24210 def remove(opts = {}) query = {} value = opts[:async] unless value.nil? value = Writer.render_boolean(value) query['async'] = value end value = opts[:host] unless value.nil? query['host'] = value end request = HttpRequest.new(method: :DELETE, url: @path, query: query) response = @connection.send(request) unless response.code == 200 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 24307 def service(path) if path.nil? || path == '' return self end raise Error.new("The path \"#{path}\" doesn't correspond to any service") end
Returns an string representation of this service.
@return [String]
# File lib/ovirtsdk4/services.rb, line 24319 def to_s "#<#{StorageServerConnectionService}:#{@path}>" end
Updates the storage connection.
For example, to change the address of the storage server send a request like this:
PUT /ovirt-engine/api/storageconnections/123
With a request body like this:
<storage_connection>
<address>mynewnfs.example.com</address> <host> <name>myhost</name> </host>
</storage_connection>
@param connection [StorageConnection] The `connection` to update. @param opts [Hash] Additional options.
@option opts [Boolean] :async Indicates if the update should be performed asynchronously.
@option opts [Boolean] :force Indicates if the operation should succeed regardless to the relevant storage domain's status
(i.e. updating is also applicable when storage domain's status is not maintenance). This parameter is optional, and the default value is `false`.
@return [StorageConnection]
# File lib/ovirtsdk4/services.rb, line 24262 def update(connection, opts = {}) if connection.is_a?(Hash) connection = OvirtSDK4::StorageConnection.new(connection) end query = {} value = opts[:async] unless value.nil? value = Writer.render_boolean(value) query['async'] = value end value = opts[:force] unless value.nil? value = Writer.render_boolean(value) query['force'] = value end request = HttpRequest.new(method: :PUT, url: @path, query: query) begin writer = XmlWriter.new(nil, true) StorageConnectionWriter.write_one(connection, writer) request.body = writer.string ensure writer.close end response = @connection.send(request) case response.code when 200 begin reader = XmlReader.new(response.body) return StorageConnectionReader.read_one(reader) ensure reader.close end return result else check_fault(response) end end