Class: OvirtSDK4::StorageDomainService

Inherits:
Service
  • Object
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

#disk_profiles_serviceAssignedDiskProfilesService

Locates the disk_profiles service.

Returns:



21187
21188
21189
# File 'lib/ovirtsdk4/services.rb', line 21187

def disk_profiles_service
  @disk_profiles_service ||= AssignedDiskProfilesService.new(self, 'diskprofiles')
end

#disk_snapshots_serviceDiskSnapshotsService

Locates the disk_snapshots service.

Returns:



21196
21197
21198
# File 'lib/ovirtsdk4/services.rb', line 21196

def disk_snapshots_service
  @disk_snapshots_service ||= DiskSnapshotsService.new(self, 'disksnapshots')
end

#disks_serviceStorageDomainDisksService

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

Returns:



21205
21206
21207
# File 'lib/ovirtsdk4/services.rb', line 21205

def disks_service
  @disks_service ||= StorageDomainDisksService.new(self, 'disks')
end

#files_serviceFilesService

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

Returns:



21214
21215
21216
# File 'lib/ovirtsdk4/services.rb', line 21214

def files_service
  @files_service ||= FilesService.new(self, 'files')
end

#get(opts = {}) ⇒ StorageDomain

Returns the representation of the object managed by this service.

Parameters:

  • opts (Hash) (defaults to: {})

    Additional options.

Options Hash (opts):

  • :filter (Boolean)

    Indicates if the results should be filtered according to the permissions of the user.

  • :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:



20879
20880
20881
# File 'lib/ovirtsdk4/services.rb', line 20879

def get(opts = {})
  internal_get(GET, opts)
end

#images_serviceImagesService

Locates the images service.

Returns:



21223
21224
21225
# File 'lib/ovirtsdk4/services.rb', line 21223

def images_service
  @images_service ||= ImagesService.new(self, 'images')
end

#is_attached(opts = {}) ⇒ Object

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.

Parameters:

  • opts (Hash) (defaults to: {})

    Additional options.

Options Hash (opts):

  • :async (Boolean)

    Indicates if the action should be performed asynchronously.

  • :host (Host)
  • :is_attached (Boolean)
  • :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.



20912
20913
20914
# File 'lib/ovirtsdk4/services.rb', line 20912

def is_attached(opts = {})
  internal_action(:isattached, :is_attached, IS_ATTACHED, opts)
end

#permissions_serviceAssignedPermissionsService

Locates the permissions service.

Returns:



21232
21233
21234
# File 'lib/ovirtsdk4/services.rb', line 21232

def permissions_service
  @permissions_service ||= AssignedPermissionsService.new(self, 'permissions')
end

#reduce_luns(opts = {}) ⇒ Object

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:

POST /ovirt-engine/api/storageDomains/123/reduceluns

With a request body like this:

 <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
<<types/storage_type, storage type> of iSCSI or FCP).

Parameters:

  • opts (Hash) (defaults to: {})

    Additional options.

Options Hash (opts):

  • :logical_units (Array<LogicalUnit>)

    The logical units that need to be reduced from the storage domain.

  • :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.



20963
20964
20965
# File 'lib/ovirtsdk4/services.rb', line 20963

def reduce_luns(opts = {})
  internal_action(:reduceluns, nil, REDUCE_LUNS, opts)
end

#refresh_luns(opts = {}) ⇒ Object

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:

POST /ovirt-engine/api/storageDomains/262b056b-aede-40f1-9666-b883eff59d40/refreshluns

With a request body like this:

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

Parameters:

  • opts (Hash) (defaults to: {})

    Additional options.

Options Hash (opts):

  • :async (Boolean)

    Indicates if the refresh should be performed asynchronously.

  • :logical_units (Array<LogicalUnit>)

    The LUNs that need to be refreshed.

  • :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.



21016
21017
21018
# File 'lib/ovirtsdk4/services.rb', line 21016

def refresh_luns(opts = {})
  internal_action(:refreshluns, nil, REFRESH_LUNS, opts)
end

#remove(opts = {}) ⇒ Object

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.

Parameters:

  • opts (Hash) (defaults to: {})

    Additional options.

Options Hash (opts):

  • :async (Boolean)

    Indicates if the remove should be performed asynchronously.

  • :destroy (Boolean)

    Indicates if the operation should succeed, and the storage domain removed from the database, even if the storage is not accessible.

    DELETE /ovirt-engine/api/storageDomains/123?destroy=true

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

  • :format (Boolean)

    Indicates if the actual storage should be formatted, removing all the metadata from the underlying LUN or directory:

    DELETE /ovirt-engine/api/storageDomains/123?format=true

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

  • :host (String)

    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:

    DELETE /ovirt-engine/api/storageDomains/123?host=myhost
  • :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.



21085
21086
21087
# File 'lib/ovirtsdk4/services.rb', line 21085

def remove(opts = {})
  internal_remove(REMOVE, opts)
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.

Raises:



21270
21271
21272
21273
21274
21275
21276
21277
21278
21279
21280
21281
21282
21283
21284
21285
21286
21287
21288
21289
21290
21291
21292
21293
21294
21295
21296
21297
21298
21299
21300
21301
21302
21303
21304
21305
21306
21307
21308
21309
21310
21311
21312
21313
21314
21315
21316
21317
21318
21319
21320
21321
21322
21323
21324
21325
21326
21327
21328
21329
# File 'lib/ovirtsdk4/services.rb', line 21270

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_serviceStorageDomainServerConnectionsService

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

Returns:



21241
21242
21243
# File 'lib/ovirtsdk4/services.rb', line 21241

def storage_connections_service
  @storage_connections_service ||= StorageDomainServerConnectionsService.new(self, 'storageconnections')
end

#templates_serviceStorageDomainTemplatesService

Locates the templates service.

Returns:



21250
21251
21252
# File 'lib/ovirtsdk4/services.rb', line 21250

def templates_service
  @templates_service ||= StorageDomainTemplatesService.new(self, 'templates')
end

#update(storage_domain, opts = {}) ⇒ StorageDomain

Updates a storage domain.

Not all of the StorageDomain'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:

PUT /ovirt-engine/api/storageDomains/123

With a request body as follows:

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

Parameters:

  • storage_domain (StorageDomain)

    The storage_domain to update.

  • opts (Hash) (defaults to: {})

    Additional options.

Options Hash (opts):

  • :async (Boolean)

    Indicates if the update should be performed asynchronously.

  • :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:



21137
21138
21139
# File 'lib/ovirtsdk4/services.rb', line 21137

def update(storage_domain, opts = {})
  internal_update(storage_domain, StorageDomain, UPDATE, opts)
end

#update_ovf_store(opts = {}) ⇒ Object

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.

Parameters:

  • opts (Hash) (defaults to: {})

    Additional options.

Options Hash (opts):

  • :async (Boolean)

    Indicates if the OVF_STORE update should be performed asynchronously.

  • :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.



21178
21179
21180
# File 'lib/ovirtsdk4/services.rb', line 21178

def update_ovf_store(opts = {})
  internal_action(:updateovfstore, nil, UPDATE_OVF_STORE, opts)
end

#vms_serviceStorageDomainVmsService

Locates the vms service.

Returns:



21259
21260
21261
# File 'lib/ovirtsdk4/services.rb', line 21259

def vms_service
  @vms_service ||= StorageDomainVmsService.new(self, 'vms')
end