class OvirtSDK4::IscsiBondService

Public Class Methods

new(connection, path) click to toggle source

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 13619
def initialize(connection, path)
  @connection = connection
  @path = path
end

Public Instance Methods

get(opts = {}) click to toggle source

Returns the representation of the object managed by this service.

@param opts [Hash] Additional options.

@return [IscsiBond]

# File lib/ovirtsdk4/services.rb, line 13631
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 IscsiBondReader.read_one(reader)
    ensure
      reader.close
    end
  else
    check_fault(response)
  end
end
networks_service() click to toggle source

Locates the `networks` service.

@return [NetworksService] A reference to `networks` service.

# File lib/ovirtsdk4/services.rb, line 13741
def networks_service
  NetworksService.new(@connection, "#{@path}/networks")
end
remove(opts = {}) click to toggle source

Removes of an existing iSCSI bond.

For example, to remove the iSCSI bond `456` send a request like this:

source

DELETE /ovirt-engine/api/datacenters/123/iscsibonds/456


@param opts [Hash] Additional options.

@option opts [Boolean] :async Indicates if the remove should be performed asynchronously.

# File lib/ovirtsdk4/services.rb, line 13661
def remove(opts = {})
  query = {}
  value = opts[:async]
  unless value.nil?
    value = Writer.render_boolean(value)
    query['async'] = value
  end
  request = HttpRequest.new(method: :DELETE, url: @path, query: query)
  response = @connection.send(request)
  unless response.code == 200
    check_fault(response)
  end
end
service(path) click to toggle source

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 13761
def service(path)
  if path.nil? || path == ''
    return self
  end
  if path == 'networks'
    return networks_service
  end
  if path.start_with?('networks/')
    return networks_service.service(path[9..-1])
  end
  if path == 'storageserverconnections'
    return storage_server_connections_service
  end
  if path.start_with?('storageserverconnections/')
    return storage_server_connections_service.service(path[25..-1])
  end
  raise Error.new("The path \"#{path}\" doesn't correspond to any service")
end
storage_server_connections_service() click to toggle source

Locates the `storage_server_connections` service.

@return [StorageServerConnectionsService] A reference to `storage_server_connections` service.

# File lib/ovirtsdk4/services.rb, line 13750
def storage_server_connections_service
  StorageServerConnectionsService.new(@connection, "#{@path}/storageserverconnections")
end
to_s() click to toggle source

Returns an string representation of this service.

@return [String]

# File lib/ovirtsdk4/services.rb, line 13785
def to_s
  "#<#{IscsiBondService}:#{@path}>"
end
update(bond, opts = {}) click to toggle source

Updates an iSCSI bond.

Updating of an iSCSI bond can be done on the `name` and the `description` attributes only. For example, to update the iSCSI bond `456` of data center `123`, send a request like this:

source

PUT /ovirt-engine/api/datacenters/123/iscsibonds/1234


The request body should look like this:

source,xml

<iscsi_bond>

<name>mybond</name>
<description>My iSCSI bond</description>

</iscsi_bond>


@param bond [IscsiBond] The `bond` to update. @param opts [Hash] Additional options.

@option opts [Boolean] :async Indicates if the update should be performed asynchronously.

@return [IscsiBond]

# File lib/ovirtsdk4/services.rb, line 13703
def update(bond, opts = {})
  if bond.is_a?(Hash)
    bond = OvirtSDK4::IscsiBond.new(bond)
  end
  query = {}
  value = opts[:async]
  unless value.nil?
    value = Writer.render_boolean(value)
    query['async'] = value
  end
  request = HttpRequest.new(method: :PUT, url: @path, query: query)
  begin
    writer = XmlWriter.new(nil, true)
    IscsiBondWriter.write_one(bond, 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 IscsiBondReader.read_one(reader)
    ensure
      reader.close
    end
    return result
  else
    check_fault(response)
  end
end