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 HTTP/1.1

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 HTTP/1.1

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 HTTP/1.1

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:



26088
26089
26090
# File 'lib/ovirtsdk4/services.rb', line 26088

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:



26115
26116
26117
# File 'lib/ovirtsdk4/services.rb', line 26115

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:



26142
26143
26144
# File 'lib/ovirtsdk4/services.rb', line 26142

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:



26169
26170
26171
# File 'lib/ovirtsdk4/services.rb', line 26169

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:



26196
26197
26198
# File 'lib/ovirtsdk4/services.rb', line 26196

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:



26275
26276
26277
# File 'lib/ovirtsdk4/services.rb', line 26275

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:



26302
26303
26304
# File 'lib/ovirtsdk4/services.rb', line 26302

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:



26329
26330
26331
# File 'lib/ovirtsdk4/services.rb', line 26329

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:



26356
26357
26358
# File 'lib/ovirtsdk4/services.rb', line 26356

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:



26383
26384
26385
# File 'lib/ovirtsdk4/services.rb', line 26383

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 HTTP/1.1
<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:



26248
26249
26250
# File 'lib/ovirtsdk4/services.rb', line 26248

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:



26395
26396
26397
# File 'lib/ovirtsdk4/services.rb', line 26395

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.



26406
26407
26408
26409
26410
26411
26412
26413
26414
26415
# File 'lib/ovirtsdk4/services.rb', line 26406

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