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:



26269
26270
26271
# File 'lib/ovirtsdk4/services.rb', line 26269

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:



26296
26297
26298
# File 'lib/ovirtsdk4/services.rb', line 26296

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:



26323
26324
26325
# File 'lib/ovirtsdk4/services.rb', line 26323

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:



26350
26351
26352
# File 'lib/ovirtsdk4/services.rb', line 26350

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:



26377
26378
26379
# File 'lib/ovirtsdk4/services.rb', line 26377

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:



26457
26458
26459
# File 'lib/ovirtsdk4/services.rb', line 26457

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:



26484
26485
26486
# File 'lib/ovirtsdk4/services.rb', line 26484

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:



26511
26512
26513
# File 'lib/ovirtsdk4/services.rb', line 26511

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:



26538
26539
26540
# File 'lib/ovirtsdk4/services.rb', line 26538

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:



26565
26566
26567
# File 'lib/ovirtsdk4/services.rb', line 26565

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:



26430
26431
26432
# File 'lib/ovirtsdk4/services.rb', line 26430

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:



26577
26578
26579
# File 'lib/ovirtsdk4/services.rb', line 26577

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.



26588
26589
26590
26591
26592
26593
26594
26595
26596
26597
# File 'lib/ovirtsdk4/services.rb', line 26588

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