class OvirtSDK4::ClusterService

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

Public Instance Methods

affinity_groups_service() click to toggle source

Locates the `affinity_groups` service.

@return [AffinityGroupsService] A reference to `affinity_groups` service.

# File lib/ovirtsdk4/services.rb, line 4243
def affinity_groups_service
  return AffinityGroupsService.new(@connection, "#{@path}/affinitygroups")
end
cpu_profiles_service() click to toggle source

Locates the `cpu_profiles` service.

@return [AssignedCpuProfilesService] A reference to `cpu_profiles` service.

# File lib/ovirtsdk4/services.rb, line 4251
def cpu_profiles_service
  return AssignedCpuProfilesService.new(@connection, "#{@path}/cpuprofiles")
end
get(opts = {}) click to toggle source

Returns the representation of the object managed by this service.

@param opts [Hash] Additional options.

@option opts [Boolean] :filter Indicates if the results should be filtered according to the permissions of the user.

@return [Cluster]

# File lib/ovirtsdk4/services.rb, line 4127
def get(opts = {})
  query = {}
  value = opts[:filter]
  unless value.nil?
    value = Writer.render_boolean(value)
    query['filter'] = 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 ClusterReader.read_one(reader)
    ensure
      reader.close
    end
  else
    check_fault(response)
  end
end
gluster_hooks_service() click to toggle source

Locates the `gluster_hooks` service.

@return [GlusterHooksService] A reference to `gluster_hooks` service.

# File lib/ovirtsdk4/services.rb, line 4259
def gluster_hooks_service
  return GlusterHooksService.new(@connection, "#{@path}/glusterhooks")
end
gluster_volumes_service() click to toggle source

Locates the `gluster_volumes` service.

@return [GlusterVolumesService] A reference to `gluster_volumes` service.

# File lib/ovirtsdk4/services.rb, line 4267
def gluster_volumes_service
  return GlusterVolumesService.new(@connection, "#{@path}/glustervolumes")
end
network_filters_service() click to toggle source

A sub collection with all the supported network filters for this cluster.

@return [NetworkFiltersService] A reference to `network_filters` service.

# File lib/ovirtsdk4/services.rb, line 4275
def network_filters_service
  return NetworkFiltersService.new(@connection, "#{@path}/networkfilters")
end
networks_service() click to toggle source

Locates the `networks` service.

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

# File lib/ovirtsdk4/services.rb, line 4283
def networks_service
  return AssignedNetworksService.new(@connection, "#{@path}/networks")
end
permissions_service() click to toggle source

Locates the `permissions` service.

@return [AssignedPermissionsService] A reference to `permissions` service.

# File lib/ovirtsdk4/services.rb, line 4291
def permissions_service
  return AssignedPermissionsService.new(@connection, "#{@path}/permissions")
end
remove(opts = {}) click to toggle source

Deletes the object managed by this service.

@param opts [Hash] Additional options.

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

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

Executes the `reset_emulated_machine` method.

@param opts [Hash] Additional options.

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

# File lib/ovirtsdk4/services.rb, line 4176
def reset_emulated_machine(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}/resetemulatedmachine",
  :body => body,
  })
  response = @connection.send(request)
  case response.code
  when 200
    action = check_action(response)
  else
    check_action(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 4302
def service(path)
  if path.nil? || path == ''
    return self
  end
  if path == 'affinitygroups'
    return affinity_groups_service
  end
  if path.start_with?('affinitygroups/')
    return affinity_groups_service.service(path[15..-1])
  end
  if path == 'cpuprofiles'
    return cpu_profiles_service
  end
  if path.start_with?('cpuprofiles/')
    return cpu_profiles_service.service(path[12..-1])
  end
  if path == 'glusterhooks'
    return gluster_hooks_service
  end
  if path.start_with?('glusterhooks/')
    return gluster_hooks_service.service(path[13..-1])
  end
  if path == 'glustervolumes'
    return gluster_volumes_service
  end
  if path.start_with?('glustervolumes/')
    return gluster_volumes_service.service(path[15..-1])
  end
  if path == 'networkfilters'
    return network_filters_service
  end
  if path.start_with?('networkfilters/')
    return network_filters_service.service(path[15..-1])
  end
  if path == 'networks'
    return networks_service
  end
  if path.start_with?('networks/')
    return networks_service.service(path[9..-1])
  end
  if path == 'permissions'
    return permissions_service
  end
  if path.start_with?('permissions/')
    return permissions_service.service(path[12..-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 4356
def to_s
  return "#<#{ClusterService}:#{@path}>"
end
update(cluster) click to toggle source

Updates the `cluster`.

@param cluster [Cluster] The `cluster` to update. @param opts [Hash] Additional options.

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

@return [Cluster]

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