class OvirtSDK4::DiskService
Constants
- COPY
- EXPORT
- GET
- MOVE
- REFRESH_LUN
- REMOVE
- SPARSIFY
- UPDATE
Public Instance Methods
This operation copies a disk to the specified storage domain.
For example, copy of a disk can be facilitated using the following request:
- source
POST /ovirt-engine/api/disks/123/copy
With a request body like this:
- source,xml
<action>
<storage_domain id="456"/> <disk> <name>mydisk</name> </disk>
</action>
If the disk profile or the quota used currently by the disk aren't defined for the new storage domain, then they can be explicitly specified. If they aren't then the first available disk profile and the default quota are used.
For example, to explicitly use disk profile `987` and quota `753` send a request body like this:
- source,xml
<action>
<storage_domain id="456"/> <disk_profile id="987"/> <quota id="753"/>
</action>
@param opts [Hash] Additional options.
@option opts [Boolean] :async Indicates if the copy should be performed asynchronously.
@option opts [Disk] :disk
@option opts [DiskProfile] :disk_profile Disk profile for the disk in the new storage domain.
Disk profiles are defined for storage domains, so the old disk profile will not exist in the new storage domain. If this parameter is not used, the first disk profile from the new storage domain to which the user has permissions will be assigned to the disk.
@option opts [Boolean] :filter Indicates if the results should be filtered according to the permissions of the user.
@option opts [Quota] :quota Quota for the disk in the new storage domain.
This optional parameter can be used to specify new quota for the disk, because the current quota may not be defined for the new storage domain. If this parameter is not used and the old quota is not defined for the new storage domain, the default (unlimited) quota will be assigned to the disk.
@option opts [StorageDomain] :storage_domain The storage domain where the new disk will be created. Can be specified using the `id` or `name`
attributes. For example, to copy a disk to the storage domain named `mydata` send a request like this: .... POST /ovirt-engine/api/storagedomains/123/disks/789 .... With a request body like this: [source,xml] ---- <action> <storage_domain> <name>mydata</name> </storage_domain> </action> ----
@option opts [Hash] :headers ({}) Additional HTTP headers.
@option opts [Hash] :query ({}) Additional URL query parameters.
@option opts [Integer] :timeout (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.
@option opts [Boolean] :wait (true) If `true` wait for the response.
# File lib/ovirtsdk4/services.rb, line 33356 def copy(opts = {}) internal_action(:copy, nil, COPY, opts) end
Exports a disk to an export storage domain.
@param opts [Hash] Additional options.
@option opts [Boolean] :async Indicates if the export should be performed asynchronously.
@option opts [Boolean] :filter Indicates if the results should be filtered according to the permissions of the user.
@option opts [StorageDomain] :storage_domain
@option opts [Hash] :headers ({}) Additional HTTP headers.
@option opts [Hash] :query ({}) Additional URL query parameters.
@option opts [Integer] :timeout (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.
@option opts [Boolean] :wait (true) If `true` wait for the response.
# File lib/ovirtsdk4/services.rb, line 33388 def export(opts = {}) internal_action(:export, nil, EXPORT, opts) end
Retrieves the description of the disk.
@param opts [Hash] Additional options.
@option opts [String] :follow Indicates which inner links should be followed. The objects referenced by these links will be fetched as part
of the current request. See <<documents/003_common_concepts/follow, here>> for details.
@option opts [Hash] :headers ({}) Additional HTTP headers.
@option opts [Hash] :query ({}) Additional URL query parameters.
@option opts [Integer] :timeout (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.
@option opts [Boolean] :wait (true) If `true` wait for the response.
@return [Disk]
# File lib/ovirtsdk4/services.rb, line 33417 def get(opts = {}) internal_get(GET, opts) end
Moves a disk to another storage domain.
For example, to move the disk with identifier `123` to a storage domain with identifier `456` send the following request:
- source
POST /ovirt-engine/api/disks/123/move
With the following request body:
- source,xml
<action>
<storage_domain id="456"/>
</action>
If the disk profile or the quota used currently by the disk aren't defined for the new storage domain, then they can be explicitly specified. If they aren't then the first available disk profile and the default quota are used.
For example, to explicitly use disk profile `987` and quota `753` send a request body like this:
- source,xml
<action>
<storage_domain id="456"/> <disk_profile id="987"/> <quota id="753"/>
</action>
@param opts [Hash] Additional options.
@option opts [Boolean] :async Indicates if the move should be performed asynchronously.
@option opts [DiskProfile] :disk_profile Disk profile for the disk in the new storage domain.
Disk profiles are defined for storage domains, so the old disk profile will not exist in the new storage domain. If this parameter is not used, the first disk profile from the new storage domain to which the user has permissions will be assigned to the disk.
@option opts [Boolean] :filter Indicates if the results should be filtered according to the permissions of the user.
@option opts [Quota] :quota Quota for the disk in the new storage domain.
This optional parameter can be used to specify new quota for the disk, because the current quota may not be defined for the new storage domain. If this parameter is not used and the old quota is not defined for the new storage domain, the default (unlimited) quota will be assigned to the disk.
@option opts [StorageDomain] :storage_domain
@option opts [Hash] :headers ({}) Additional HTTP headers.
@option opts [Hash] :query ({}) Additional URL query parameters.
@option opts [Integer] :timeout (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.
@option opts [Boolean] :wait (true) If `true` wait for the response.
# File lib/ovirtsdk4/services.rb, line 33500 def move(opts = {}) internal_action(:move, nil, MOVE, opts) end
Reference to the service that manages the permissions assigned to the disk.
@return [AssignedPermissionsService] A reference to `permissions` service.
# File lib/ovirtsdk4/services.rb, line 33657 def permissions_service @permissions_service ||= AssignedPermissionsService.new(self, 'permissions') end
Refreshes a direct LUN disk with up-to-date information from the storage.
Refreshing a direct LUN disk is useful when:
-
The LUN was added using the API without the host parameter, and therefore does not contain any information from the storage (see <<services/disks/methods/add, DisksService::add>>).
-
New information about the LUN is available on the storage and you want to update the LUN with it.
To refresh direct LUN disk `123` using host `456`, send the following request:
- source
POST /ovirt-engine/api/disks/123/refreshlun
With the following request body:
- source,xml
<action>
<host id='456'/>
</action>
@param opts [Hash] Additional options.
@option opts [Host] :host The host that will be used to refresh the direct LUN disk.
@option opts [Hash] :headers ({}) Additional HTTP headers.
@option opts [Hash] :query ({}) Additional URL query parameters.
@option opts [Integer] :timeout (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.
@option opts [Boolean] :wait (true) If `true` wait for the response.
# File lib/ovirtsdk4/services.rb, line 33548 def refresh_lun(opts = {}) internal_action(:refreshlun, nil, REFRESH_LUN, opts) end
Removes a disk.
@param opts [Hash] Additional options.
@option opts [Boolean] :async Indicates if the remove should be performed asynchronously. @option opts [Hash] :headers ({}) Additional HTTP headers.
@option opts [Hash] :query ({}) Additional URL query parameters.
@option opts [Integer] :timeout (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.
@option opts [Boolean] :wait (true) If `true` wait for the response.
# File lib/ovirtsdk4/services.rb, line 33573 def remove(opts = {}) internal_remove(REMOVE, opts) end
Locates the service corresponding to the given path.
@param path [String] The path of the service.
@return [Service] A reference to the service.
# File lib/ovirtsdk4/services.rb, line 33677 def service(path) if path.nil? || path == '' return self end if path == 'permissions' return permissions_service end if path.start_with?('permissions/') return permissions_service.service(path[12..-1]) end if path == 'statistics' return statistics_service end if path.start_with?('statistics/') return statistics_service.service(path[11..-1]) end raise Error.new("The path \"#{path}\" doesn't correspond to any service") end
Sparsify the disk.
Sparsification frees space in the disk image that is not used by its filesystem. As a result, the image will occupy less space on the storage.
Currently sparsification works only on disks without snapshots. Disks having derived disks are also not allowed.
@param opts [Hash] Additional options.
@option opts [Hash] :headers ({}) Additional HTTP headers.
@option opts [Hash] :query ({}) Additional URL query parameters.
@option opts [Integer] :timeout (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.
@option opts [Boolean] :wait (true) If `true` wait for the response.
# File lib/ovirtsdk4/services.rb, line 33602 def sparsify(opts = {}) internal_action(:sparsify, nil, SPARSIFY, opts) end
Locates the `statistics` service.
@return [StatisticsService] A reference to `statistics` service.
# File lib/ovirtsdk4/services.rb, line 33666 def statistics_service @statistics_service ||= StatisticsService.new(self, 'statistics') end
This operation updates the disk with the appropriate parameters. The only field that can be updated is `qcow_version`.
For example, update disk can be facilitated using the following request:
- source
PUT /ovirt-engine/api/disks/123
With a request body like this:
- source,xml
<disk>
<qcow_version>qcow2_v3</qcow_version>
</disk>
Since the backend operation is asynchronous the disk element which will be returned to the user might not be synced with the changed properties.
@param disk [Disk] The update to apply to the disk. @param opts [Hash] Additional options.
@option opts [Hash] :headers ({}) Additional HTTP headers.
@option opts [Hash] :query ({}) Additional URL query parameters.
@option opts [Integer] :timeout (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.
@option opts [Boolean] :wait (true) If `true` wait for the response.
@return [Disk]
# File lib/ovirtsdk4/services.rb, line 33648 def update(disk, opts = {}) internal_update(disk, Disk, UPDATE, opts) end