Class: OvirtSDK4::SystemPermissionsService

Inherits:
AssignedPermissionsService 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(permission, opts = {}) ⇒ Permission

Assign a new permission to a user or group for specific entity.

For example, to assign the UserVmManager role to the virtual machine with id 123 to the user with id 456 send a request like this:

POST /ovirt-engine/api/vms/123/permissions

With a request body like this:

<permission>
  <role>
    <name>UserVmManager</name>
  </role>
  <user id="456"/>
</permission>

To assign the SuperUser role to the system to the user with id 456 send a request like this:

POST /ovirt-engine/api/permissions

With a request body like this:

<permission>
  <role>
    <name>SuperUser</name>
  </role>
  <user id="456"/>
</permission>

If you want to assign permission to the group instead of the user please replace the user element with the group element with proper id of the group. For example to assign the UserRole role to the cluster with id 123 to the group with id 789 send a request like this:

POST /ovirt-engine/api/clusters/123/permissions

With a request body like this:

<permission>
  <role>
    <name>UserRole</name>
  </role>
  <group id="789"/>
</permission>

Parameters:

  • permission (Permission)

    The permission.

  • 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:



25155
25156
25157
# File 'lib/ovirtsdk4/services.rb', line 25155

def add(permission, opts = {})
  internal_add(permission, Permission, ADD, opts)
end

#add_cluster_permission(permission, opts = {}) ⇒ Permission

Add a new permission on the cluster to the group in the system.

Parameters:

  • permission (Permission)

    The permission.

  • 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:



25182
25183
25184
# File 'lib/ovirtsdk4/services.rb', line 25182

def add_cluster_permission(permission, opts = {})
  internal_add(permission, Permission, ADD_CLUSTER_PERMISSION, opts)
end

#add_data_center_permission(permission, opts = {}) ⇒ Permission

Add a new permission on the data center to the group in the system.

Parameters:

  • permission (Permission)

    The permission.

  • 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:



25209
25210
25211
# File 'lib/ovirtsdk4/services.rb', line 25209

def add_data_center_permission(permission, opts = {})
  internal_add(permission, Permission, ADD_DATA_CENTER_PERMISSION, opts)
end

#add_group_level(permission, opts = {}) ⇒ Permission

Add a new group level permission for a given virtual machine.

Parameters:

  • permission (Permission)

    The permission.

  • 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:



25236
25237
25238
# File 'lib/ovirtsdk4/services.rb', line 25236

def add_group_level(permission, opts = {})
  internal_add(permission, Permission, ADD_GROUP_LEVEL, opts)
end

#add_host_permission(permission, opts = {}) ⇒ Permission

Add a new permission on the host to the group in the system.

Parameters:

  • permission (Permission)

    The permission.

  • 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:



25263
25264
25265
# File 'lib/ovirtsdk4/services.rb', line 25263

def add_host_permission(permission, opts = {})
  internal_add(permission, Permission, ADD_HOST_PERMISSION, opts)
end

#add_storage_domain_permission(permission, opts = {}) ⇒ Permission

Add a new permission on the storage domain to the group in the system.

Parameters:

  • permission (Permission)

    The permission.

  • 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:



25343
25344
25345
# File 'lib/ovirtsdk4/services.rb', line 25343

def add_storage_domain_permission(permission, opts = {})
  internal_add(permission, Permission, ADD_STORAGE_DOMAIN_PERMISSION, opts)
end

#add_template_permission(permission, opts = {}) ⇒ Permission

Add a new permission on the template to the group in the system.

Parameters:

  • permission (Permission)

    The permission.

  • 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:



25370
25371
25372
# File 'lib/ovirtsdk4/services.rb', line 25370

def add_template_permission(permission, opts = {})
  internal_add(permission, Permission, ADD_TEMPLATE_PERMISSION, opts)
end

#add_user_level(permission, opts = {}) ⇒ Permission

Add a new user level permission for a given virtual machine.

Parameters:

  • permission (Permission)

    The permission.

  • 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:



25397
25398
25399
# File 'lib/ovirtsdk4/services.rb', line 25397

def add_user_level(permission, opts = {})
  internal_add(permission, Permission, ADD_USER_LEVEL, opts)
end

#add_vm_permission(permission, opts = {}) ⇒ Permission

Add a new permission on the vm to the group in the system.

Parameters:

  • permission (Permission)

    The permission.

  • 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:



25424
25425
25426
# File 'lib/ovirtsdk4/services.rb', line 25424

def add_vm_permission(permission, opts = {})
  internal_add(permission, Permission, ADD_VM_PERMISSION, opts)
end

#add_vm_pool_permission(permission, opts = {}) ⇒ Permission

Add a new permission on the vm pool to the group in the system.

Parameters:

  • permission (Permission)

    The permission.

  • 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:



25451
25452
25453
# File 'lib/ovirtsdk4/services.rb', line 25451

def add_vm_pool_permission(permission, opts = {})
  internal_add(permission, Permission, ADD_VM_POOL_PERMISSION, opts)
end

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

List all the permissions of the specific entity.

For example to list all the permissions of the cluster with id 123 send a request like this:

GET /ovirt-engine/api/clusters/123/permissions
<permissions>
  <permission id="456">
    <cluster id="123"/>
    <role id="789"/>
    <user id="451"/>
  </permission>
  <permission id="654">
    <cluster id="123"/>
    <role id="789"/>
    <group id="127"/>
  </permission>
</permissions>

The order of the returned permissions 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.

  • :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:



25316
25317
25318
# File 'lib/ovirtsdk4/services.rb', line 25316

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

#permission_service(id) ⇒ PermissionService

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

Parameters:

  • id (String)

    The identifier of the permission.

Returns:



25463
25464
25465
# File 'lib/ovirtsdk4/services.rb', line 25463

def permission_service(id)
  PermissionService.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.



25474
25475
25476
25477
25478
25479
25480
25481
25482
25483
# File 'lib/ovirtsdk4/services.rb', line 25474

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