Class: OvirtSDK4::AssignedPermissionsService

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

Direct Known Subclasses

SystemPermissionsService

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:



2361
2362
2363
# File 'lib/ovirtsdk4/services.rb', line 2361

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:



2388
2389
2390
# File 'lib/ovirtsdk4/services.rb', line 2388

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:



2415
2416
2417
# File 'lib/ovirtsdk4/services.rb', line 2415

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:



2442
2443
2444
# File 'lib/ovirtsdk4/services.rb', line 2442

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:



2469
2470
2471
# File 'lib/ovirtsdk4/services.rb', line 2469

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:



2549
2550
2551
# File 'lib/ovirtsdk4/services.rb', line 2549

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:



2576
2577
2578
# File 'lib/ovirtsdk4/services.rb', line 2576

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:



2603
2604
2605
# File 'lib/ovirtsdk4/services.rb', line 2603

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:



2630
2631
2632
# File 'lib/ovirtsdk4/services.rb', line 2630

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:



2657
2658
2659
# File 'lib/ovirtsdk4/services.rb', line 2657

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:



2522
2523
2524
# File 'lib/ovirtsdk4/services.rb', line 2522

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:



2669
2670
2671
# File 'lib/ovirtsdk4/services.rb', line 2669

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.



2680
2681
2682
2683
2684
2685
2686
2687
2688
2689
# File 'lib/ovirtsdk4/services.rb', line 2680

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