class OvirtSDK4::StorageDomainService

Constants

GET
IS_ATTACHED
REDUCE_LUNS
REFRESH_LUNS
REMOVE
UPDATE
UPDATE_OVF_STORE

Public Instance Methods

disk_profiles_service() click to toggle source

Locates the `disk_profiles` service.

@return [AssignedDiskProfilesService] A reference to `disk_profiles` service.

# File lib/ovirtsdk4/services.rb, line 22339
def disk_profiles_service
  @disk_profiles_service ||= AssignedDiskProfilesService.new(self, 'diskprofiles')
end
disk_snapshots_service() click to toggle source

Locates the `disk_snapshots` service.

@return [DiskSnapshotsService] A reference to `disk_snapshots` service.

# File lib/ovirtsdk4/services.rb, line 22348
def disk_snapshots_service
  @disk_snapshots_service ||= DiskSnapshotsService.new(self, 'disksnapshots')
end
disks_service() click to toggle source

Reference to the service that manages the disks available in the storage domain.

@return [StorageDomainDisksService] A reference to `disks` service.

# File lib/ovirtsdk4/services.rb, line 22357
def disks_service
  @disks_service ||= StorageDomainDisksService.new(self, 'disks')
end
files_service() click to toggle source

Returns a reference to the service that manages the files available in the storage domain.

@return [FilesService] A reference to `files` service.

# File lib/ovirtsdk4/services.rb, line 22366
def files_service
  @files_service ||= FilesService.new(self, 'files')
end
get(opts = {}) click to toggle source

Retrieves the description of the storage domain.

@param opts [Hash] Additional options.

@option opts [Boolean] :filter Indicates if the results should be filtered according to the permissions of the user.

@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 [StorageDomain]

# File lib/ovirtsdk4/services.rb, line 22040
def get(opts = {})
  internal_get(GET, opts)
end
images_service() click to toggle source

Locates the `images` service.

@return [ImagesService] A reference to `images` service.

# File lib/ovirtsdk4/services.rb, line 22375
def images_service
  @images_service ||= ImagesService.new(self, 'images')
end
is_attached(opts = {}) click to toggle source

Used for querying if the storage domain is already attached to a data center using the is_attached boolean field, which is part of the storage server. IMPORTANT: Executing this API will cause the host to disconnect from the storage domain.

@param opts [Hash] Additional options.

@option opts [Boolean] :async Indicates if the action should be performed asynchronously.

@option opts [Host] :host Indicates the data center's host.

@option opts [Boolean] :is_attached Indicates whether the storage domain is attached to the data center.

@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 22073
def is_attached(opts = {})
  internal_action(:isattached, :is_attached, IS_ATTACHED, opts)
end
permissions_service() click to toggle source

Locates the `permissions` service.

@return [AssignedPermissionsService] A reference to `permissions` service.

# File lib/ovirtsdk4/services.rb, line 22384
def permissions_service
  @permissions_service ||= AssignedPermissionsService.new(self, 'permissions')
end
reduce_luns(opts = {}) click to toggle source

This operation reduces logical units from the storage domain.

In order to do so the data stored on the provided logical units will be moved to other logical units of the storage domain and only then they will be reduced from the storage domain.

For example, in order to reduce two logical units from a storage domain send a request like this:

“`http POST /ovirt-engine/api/storageDomains/123/reduceluns HTTP/1.1 “`

With a request body like this:

“`xml

<action>
  <logical_units>
    <logical_unit id="1IET_00010001"/>
    <logical_unit id="1IET_00010002"/>
  </logical_units>
</action>

“`

Note that this operation is only applicable to block storage domains (i.e., storage domains with the
xref:types/storage_type[storage type] of iSCSI or FCP).

@param opts [Hash] Additional options.

@option opts [Array<LogicalUnit>] :logical_units The logical units that need to be reduced from the 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 22122
def reduce_luns(opts = {})
  internal_action(:reduceluns, nil, REDUCE_LUNS, opts)
end
refresh_luns(opts = {}) click to toggle source

This operation refreshes the LUN size.

After increasing the size of the underlying LUN on the storage server, the user can refresh the LUN size. This action forces a rescan of the provided LUNs and updates the database with the new size, if required.

For example, in order to refresh the size of two LUNs send a request like this:

“`http POST /ovirt-engine/api/storageDomains/262b056b-aede-40f1-9666-b883eff59d40/refreshluns HTTP/1.1 “`

With a request body like this:

“`xml

<action>
  <logical_units>
    <logical_unit id="1IET_00010001"/>
    <logical_unit id="1IET_00010002"/>
  </logical_units>
</action>

“`

@param opts [Hash] Additional options.

@option opts [Boolean] :async Indicates if the refresh should be performed asynchronously.

@option opts [Array<LogicalUnit>] :logical_units The LUNs that need to be refreshed.

@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 22173
def refresh_luns(opts = {})
  internal_action(:refreshluns, nil, REFRESH_LUNS, opts)
end
remove(opts = {}) click to toggle source

Removes the storage domain.

Without any special parameters, the storage domain is detached from the system and removed from the database. The storage domain can then be imported to the same or to a different setup, with all the data on it. If the storage is not accessible the operation will fail.

If the `destroy` parameter is `true` then the operation will always succeed, even if the storage is not accessible, the failure is just ignored and the storage domain is removed from the database anyway.

If the `format` parameter is `true` then the actual storage is formatted, and the metadata is removed from the LUN or directory, so it can no longer be imported to the same or to a different setup.

@param opts [Hash] Additional options.

@option opts [Boolean] :async Indicates if the remove should be performed asynchronously. @option opts [Boolean] :destroy Indicates if the operation should succeed, and the storage domain removed from the database, even if the

storage is not accessible.

```http
DELETE /ovirt-engine/api/storageDomains/123?destroy=true HTTP/1.1
```

This parameter is optional, and the default value is `false`.
When the value of `destroy` is `true` the `host` parameter will be ignored.

@option opts [Boolean] :format Indicates if the actual storage should be formatted, removing all the metadata from the underlying LUN or

directory:

```http
DELETE /ovirt-engine/api/storageDomains/123?format=true HTTP/1.1
```

This parameter is optional, and the default value is `false`.

@option opts [String] :host Indicates which host should be used to remove the storage domain.

This parameter is mandatory, except if the `destroy` parameter is included and its value is `true`, in that
case the `host` parameter will be ignored.

The value should contain the name or the identifier of the host. For example, to use the host named `myhost`
to remove the storage domain with identifier `123` send a request like this:

```http
DELETE /ovirt-engine/api/storageDomains/123?host=myhost HTTP/1.1
```

@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 22239
def remove(opts = {})
  internal_remove(REMOVE, opts)
end
service(path) click to toggle source

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 22422
def service(path)
  if path.nil? || path == ''
    return self
  end
  if path == 'diskprofiles'
    return disk_profiles_service
  end
  if path.start_with?('diskprofiles/')
    return disk_profiles_service.service(path[13..-1])
  end
  if path == 'disksnapshots'
    return disk_snapshots_service
  end
  if path.start_with?('disksnapshots/')
    return disk_snapshots_service.service(path[14..-1])
  end
  if path == 'disks'
    return disks_service
  end
  if path.start_with?('disks/')
    return disks_service.service(path[6..-1])
  end
  if path == 'files'
    return files_service
  end
  if path.start_with?('files/')
    return files_service.service(path[6..-1])
  end
  if path == 'images'
    return images_service
  end
  if path.start_with?('images/')
    return images_service.service(path[7..-1])
  end
  if path == 'permissions'
    return permissions_service
  end
  if path.start_with?('permissions/')
    return permissions_service.service(path[12..-1])
  end
  if path == 'storageconnections'
    return storage_connections_service
  end
  if path.start_with?('storageconnections/')
    return storage_connections_service.service(path[19..-1])
  end
  if path == 'templates'
    return templates_service
  end
  if path.start_with?('templates/')
    return templates_service.service(path[10..-1])
  end
  if path == 'vms'
    return vms_service
  end
  if path.start_with?('vms/')
    return vms_service.service(path[4..-1])
  end
  raise Error.new("The path \"#{path}\" doesn't correspond to any service")
end
storage_connections_service() click to toggle source

Returns a reference to the service that manages the storage connections.

@return [StorageDomainServerConnectionsService] A reference to `storage_connections` service.

# File lib/ovirtsdk4/services.rb, line 22393
def storage_connections_service
  @storage_connections_service ||= StorageDomainServerConnectionsService.new(self, 'storageconnections')
end
templates_service() click to toggle source

Locates the `templates` service.

@return [StorageDomainTemplatesService] A reference to `templates` service.

# File lib/ovirtsdk4/services.rb, line 22402
def templates_service
  @templates_service ||= StorageDomainTemplatesService.new(self, 'templates')
end
update(storage_domain, opts = {}) click to toggle source

Updates a storage domain.

Not all of the xref:types/storage_domain's attributes are updatable after creation. Those that can be updated are: `name`, `description`, `comment`, `warning_low_space_indicator`, `critical_space_action_blocker` and `wipe_after_delete.` (Note that changing the `wipe_after_delete` attribute will not change the wipe after delete property of disks that already exist).

To update the `name` and `wipe_after_delete` attributes of a storage domain with an identifier `123`, send a request as follows:

“`http PUT /ovirt-engine/api/storageDomains/123 HTTP/1.1 “`

With a request body as follows:

“`xml <storage_domain>

<name>data2</name>
<wipe_after_delete>true</wipe_after_delete>

</storage_domain> “`

@param storage_domain [StorageDomain] The updated storage domain. @param opts [Hash] Additional options.

@option opts [Boolean] :async Indicates if the update 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.

@return [StorageDomain]

# File lib/ovirtsdk4/services.rb, line 22289
def update(storage_domain, opts = {})
  internal_update(storage_domain, StorageDomain, UPDATE, opts)
end
update_ovf_store(opts = {}) click to toggle source

This operation forces the update of the `OVF_STORE` of this storage domain.

The `OVF_STORE` is a disk image that contains the metadata of virtual machines and disks that reside in the storage domain. This metadata is used in case the domain is imported or exported to or from a different data center or a different installation.

By default the `OVF_STORE` is updated periodically (set by default to 60 minutes) but users might want to force an update after an important change, or when the they believe the `OVF_STORE` is corrupt.

When initiated by the user, `OVF_STORE` update will be performed whether an update is needed or not.

@param opts [Hash] Additional options.

@option opts [Boolean] :async Indicates if the `OVF_STORE` update 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 22330
def update_ovf_store(opts = {})
  internal_action(:updateovfstore, nil, UPDATE_OVF_STORE, opts)
end
vms_service() click to toggle source

Locates the `vms` service.

@return [StorageDomainVmsService] A reference to `vms` service.

# File lib/ovirtsdk4/services.rb, line 22411
def vms_service
  @vms_service ||= StorageDomainVmsService.new(self, 'vms')
end