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:



2364
2365
2366
# File 'lib/ovirtsdk4/services.rb', line 2364

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:



2391
2392
2393
# File 'lib/ovirtsdk4/services.rb', line 2391

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:



2418
2419
2420
# File 'lib/ovirtsdk4/services.rb', line 2418

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:



2445
2446
2447
# File 'lib/ovirtsdk4/services.rb', line 2445

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:



2472
2473
2474
# File 'lib/ovirtsdk4/services.rb', line 2472

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:



2552
2553
2554
# File 'lib/ovirtsdk4/services.rb', line 2552

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:



2579
2580
2581
# File 'lib/ovirtsdk4/services.rb', line 2579

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:



2606
2607
2608
# File 'lib/ovirtsdk4/services.rb', line 2606

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:



2633
2634
2635
# File 'lib/ovirtsdk4/services.rb', line 2633

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:



2660
2661
2662
# File 'lib/ovirtsdk4/services.rb', line 2660

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:



2525
2526
2527
# File 'lib/ovirtsdk4/services.rb', line 2525

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:



2672
2673
2674
# File 'lib/ovirtsdk4/services.rb', line 2672

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.



2683
2684
2685
2686
2687
2688
2689
2690
2691
2692
# File 'lib/ovirtsdk4/services.rb', line 2683

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