class OvirtSDK4::InstanceTypeService

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

Public Instance Methods

get(opts = {}) click to toggle source

Get a specific instance type and it's attributes.

source

GET /ovirt-engine/api/instancetypes/123


@param opts [Hash] Additional options.

@return [InstanceType]

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

Reference to the service that manages the graphic consoles that are attached to this instance type.

@return [InstanceTypeGraphicsConsolesService] A reference to `graphics_consoles` service.

# File lib/ovirtsdk4/services.rb, line 12597
def graphics_consoles_service
  InstanceTypeGraphicsConsolesService.new(@connection, "#{@path}/graphicsconsoles")
end
nics_service() click to toggle source

Reference to the service that manages the NICs that are attached to this instance type.

@return [InstanceTypeNicsService] A reference to `nics` service.

# File lib/ovirtsdk4/services.rb, line 12606
def nics_service
  InstanceTypeNicsService.new(@connection, "#{@path}/nics")
end
remove(opts = {}) click to toggle source

Removes a specific instance type from the system.

If a virtual machine was created using an instance type X after removal of the instance type the virtual machine's instance type will be set to `custom`.

source

DELETE /ovirt-engine/api/instancetypes/123


@param opts [Hash] Additional options.

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

# File lib/ovirtsdk4/services.rb, line 12506
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 12626
def service(path)
  if path.nil? || path == ''
    return self
  end
  if path == 'graphicsconsoles'
    return graphics_consoles_service
  end
  if path.start_with?('graphicsconsoles/')
    return graphics_consoles_service.service(path[17..-1])
  end
  if path == 'nics'
    return nics_service
  end
  if path.start_with?('nics/')
    return nics_service.service(path[5..-1])
  end
  if path == 'watchdogs'
    return watchdogs_service
  end
  if path.start_with?('watchdogs/')
    return watchdogs_service.service(path[10..-1])
  end
  raise Error.new("The path \"#{path}\" doesn't correspond to any service")
end
to_s() click to toggle source

Returns an string representation of this service.

@return [String]

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

Update a specific instance type and it's attributes.

All the attributes are editable after creation. If a virtual machine was created using an instance type X and some configuration in instance type X was updated, the virtual machine's configuration will be updated automatically by the engine.

source

PUT /ovirt-engine/api/instancetypes/123


For example, to update the memory of instance type `123` to 1 GiB and set the cpu topology to 2 sockets and 1 core, send a request like this:

source, xml

<instance_type>

<memory>1073741824</memory>
<cpu>
  <topology>
    <cores>1</cores>
    <sockets>2</sockets>
    <threads>1</threads>
  </topology>
</cpu>

</instance_type>


@param instance_type [InstanceType] The `instance_type` to update. @param opts [Hash] Additional options.

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

@return [InstanceType]

# File lib/ovirtsdk4/services.rb, line 12558
def update(instance_type, opts = {})
  if instance_type.is_a?(Hash)
    instance_type = OvirtSDK4::InstanceType.new(instance_type)
  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)
    InstanceTypeWriter.write_one(instance_type, 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 InstanceTypeReader.read_one(reader)
    ensure
      reader.close
    end
    return result
  else
    check_fault(response)
  end
end
watchdogs_service() click to toggle source

Reference to the service that manages the watchdogs that are attached to this instance type.

@return [InstanceTypeWatchdogsService] A reference to `watchdogs` service.

# File lib/ovirtsdk4/services.rb, line 12615
def watchdogs_service
  InstanceTypeWatchdogsService.new(@connection, "#{@path}/watchdogs")
end