Class: OvirtSDK4::RolesService

Inherits:
Service
  • Object
show all
Defined in:
lib/ovirtsdk4/services.rb,
lib/ovirtsdk4/services.rb

Instance Method Summary collapse

Methods inherited from Service

#inspect, #to_s

Instance Method Details

#add(role, opts = {}) ⇒ Role

Create a new role. The role can be administrative or non-administrative and can have different permits.

For example, to add the MyRole non-administrative role with permits to login and create virtual machines send a request like this (note that you have to pass permit id):

POST /ovirt-engine/api/roles

With a request body like this:

<role>
  <name>MyRole</name>
  <description>My custom role to create virtual machines</description>
  <administrative>false</administrative>
  <permits>
    <permit id="1"/>
    <permit id="1300"/>
  </permits>
</group>

Parameters:

  • role (Role)

    Role that will be added.

  • opts (Hash) (defaults to: {})

    Additional options.

Options Hash (opts):

  • :headers (Hash) — default: {}

    Additional HTTP headers.

  • :query (Hash) — default: {}

    Additional URL query parameters.

  • :timeout (Integer) — default: nil

    The timeout for this request, in seconds. If no value is explicitly given then the timeout set globally for the connection will be used.

  • :wait (Boolean) — default: true

    If true wait for the response.

Returns:


20053
20054
20055
# File 'lib/ovirtsdk4/services.rb', line 20053

def add(role, opts = {})
  internal_add(role, Role, ADD, opts)
end

#list(opts = {}) ⇒ Array<Role>

List roles.

GET /ovirt-engine/api/roles

You will receive response in XML like this one:

<roles>
  <role id="123">
     <name>SuperUser</name>
     <description>Roles management administrator</description>
     <link href="/ovirt-engine/api/roles/123/permits" rel="permits"/>
     <administrative>true</administrative>
     <mutable>false</mutable>
  </role>
  ...
</roles>

The order of the returned list of roles isn’t guaranteed.

Parameters:

  • opts (Hash) (defaults to: {})

    Additional options.

Options Hash (opts):

  • :follow (String)

    Indicates which inner links should be followed. The objects referenced by these links will be fetched as part of the current request. See here for details.

  • :max (Integer)

    Sets the maximum number of roles to return. If not specified all the roles are returned.

  • :headers (Hash) — default: {}

    Additional HTTP headers.

  • :query (Hash) — default: {}

    Additional URL query parameters.

  • :timeout (Integer) — default: nil

    The timeout for this request, in seconds. If no value is explicitly given then the timeout set globally for the connection will be used.

  • :wait (Boolean) — default: true

    If true wait for the response.

Returns:


20108
20109
20110
# File 'lib/ovirtsdk4/services.rb', line 20108

def list(opts = {})
  internal_get(LIST, opts)
end

#role_service(id) ⇒ RoleService

Sub-resource locator method, returns individual role resource on which the remainder of the URI is dispatched.

Parameters:

  • id (String)

    The identifier of the role.

Returns:


20119
20120
20121
# File 'lib/ovirtsdk4/services.rb', line 20119

def role_service(id)
  RoleService.new(self, id)
end

#service(path) ⇒ Service

Locates the service corresponding to the given path.

Parameters:

  • path (String)

    The path of the service.

Returns:

  • (Service)

    A reference to the service.


20130
20131
20132
20133
20134
20135
20136
20137
20138
20139
# File 'lib/ovirtsdk4/services.rb', line 20130

def service(path)
  if path.nil? || path == ''
    return self
  end
  index = path.index('/')
  if index.nil?
    return role_service(path)
  end
  return role_service(path[0..(index - 1)]).service(path[(index + 1)..-1])
end