Block Storage API

Block Storage API

For details on how to use block_storage, see Using OpenStack Block Storage

The BlockStorage Class

The block_storage high-level interface is available through the block_storage member of a Connection object. The block_storage member will only be added if the service is detected.

Volume Operations

class openstack.block_storage.v2._proxy.Proxy(session, statsd_client=None, statsd_prefix=None, prometheus_counter=None, prometheus_histogram=None, influxdb_config=None, influxdb_client=None, *args, **kwargs)
get_volume(volume)

Get a single volume

Parameters:

volume – The value can be the ID of a volume or a Volume instance.

Returns:

One Volume

Raises:

NotFoundException when no resource can be found.

find_volume(name_or_id, ignore_missing=True, *, details=True, all_projects=False)

Find a single volume

Parameters:
  • volume – The name or ID a volume

  • ignore_missing (bool) – When set to False NotFoundException will be raised when the volume does not exist.

  • details (bool) – When set to False no extended attributes will be returned. The default, True, will cause an object with additional attributes to be returned.

  • all_projects (bool) – When set to True, search for volume by name across all projects. Note that this will likely result in a higher chance of duplicates. Admin-only by default.

Returns:

One Volume or None.

Raises:

NotFoundException when no resource can be found.

Raises:

DuplicateResource when multiple resources are found.

volumes(*, details=True, all_projects=False, **query)

Retrieve a generator of volumes

Parameters:
  • details (bool) – When set to False no extended attributes will be returned. The default, True, will cause objects with additional attributes to be returned.

  • all_projects (bool) – When set to True, list volumes from all projects. Admin-only by default.

  • query (kwargs) –

    Optional query parameters to be sent to limit the volumes being returned. Available parameters include:

    • name: Name of the volume as a string.

    • status: Value of the status of the volume so that you can filter on “available” for example.

Returns:

A generator of volume objects.

create_volume(**attrs)

Create a new volume from attributes

Parameters:

attrs (dict) – Keyword arguments which will be used to create a Volume, comprised of the properties on the Volume class.

Returns:

The results of volume creation

Return type:

Volume

delete_volume(volume, ignore_missing=True, force=False)

Delete a volume

Parameters:
  • volume – The value can be either the ID of a volume or a Volume instance.

  • ignore_missing (bool) – When set to False NotFoundException will be raised when the volume does not exist. When set to True, no exception will be set when attempting to delete a nonexistent volume.

  • force (bool) – Whether to try forcing volume deletion.

Returns:

None

extend_volume(volume, size)

Extend a volume

Parameters:
  • volume – The value can be either the ID of a volume or a Volume instance.

  • size – New volume size

Returns:

None

retype_volume(volume, new_type, migration_policy='never')

Retype the volume.

Parameters:
  • volume – The value can be either the ID of a volume or a Volume instance.

  • new_type – The new volume type that volume is changed with. The value can be either the ID of the volume type or a Type instance.

  • migration_policy (str) – Specify if the volume should be migrated when it is re-typed. Possible values are on-demand or never. Default: never.

Returns:

None

set_volume_bootable_status(volume, bootable)

Set bootable status of the volume.

Parameters:
  • volume – The value can be either the ID of a volume or a Volume instance.

  • bootable (bool) – Specifies whether the volume should be bootable or not.

Returns:

None

set_volume_image_metadata(volume, **metadata)

Update image metadata for a volume

Parameters:
  • volume – Either the ID of a volume or a Volume.

  • metadata (kwargs) – Key/value pairs to be updated in the volume’s image metadata. No other metadata is modified by this call.

Returns:

None

delete_volume_image_metadata(volume, keys=None)

Delete metadata for a volume

Parameters:
  • volume – Either the ID of a volume or a Volume.

  • keys (list) – The keys to delete. If left empty complete metadata will be removed.

Returns:

None

reset_volume_status(volume, status=None, attach_status=None, migration_status=None)

Reset volume statuses.

Parameters:
  • volume – The value can be either the ID of a volume or a Volume instance.

  • status (str) – The new volume status.

  • attach_status (str) – The new volume attach status.

  • migration_status (str) – The new volume migration status (admin only).

Returns:

None

attach_volume(volume, mountpoint, instance=None, host_name=None)

Attaches a volume to a server.

Parameters:
  • volume – The value can be either the ID of a volume or a Volume instance.

  • mountpoint (str) – The attaching mount point.

  • instance (str) – The UUID of the attaching instance.

  • host_name (str) – The name of the attaching host.

Returns:

None

detach_volume(volume, attachment, force=False, connector=None)

Detaches a volume from a server.

Parameters:
  • volume – The value can be either the ID of a volume or a Volume instance.

  • attachment (str) – The ID of the attachment.

  • force (bool) – Whether to force volume detach (Rolls back an unsuccessful detach operation after you disconnect the volume.)

  • connector (dict) – The connector object.

Returns:

None

unmanage_volume(volume)
Removes a volume from Block Storage management without removing the

back-end storage object that is associated with it.

Parameters:

volume – The value can be either the ID of a volume or a Volume instance.

Returns:

None

migrate_volume(volume, host=None, force_host_copy=False, lock_volume=False)

Migrates a volume to the specified host.

Parameters:
  • volume – The value can be either the ID of a volume or a Volume instance.

  • host (str) – The target host for the volume migration. Host format is host@backend.

  • force_host_copy (bool) – If false (the default), rely on the volume backend driver to perform the migration, which might be optimized. If true, or the volume driver fails to migrate the volume itself, a generic host-based migration is performed.

  • lock_volume (bool) – If true, migrating an available volume will change its status to maintenance preventing other operations from being performed on the volume such as attach, detach, retype, etc.

Returns:

None

complete_volume_migration(volume, new_volume, error=False)

Complete the migration of a volume.

Parameters:
  • volume – The value can be either the ID of a volume or a Volume instance.

  • new_volume (str) – The UUID of the new volume.

  • error (bool) – Used to indicate if an error has occured elsewhere that requires clean up.

Returns:

None

get_volume_metadata(volume)

Return a dictionary of metadata for a volume

Parameters:

volume – Either the ID of a volume or a Volume.

Returns:

A Volume with the volume’s metadata. All keys and values are Unicode text.

Return type:

Volume

set_volume_metadata(volume, **metadata)

Update metadata for a volume

Parameters:
  • volume – Either the ID of a volume or a Volume.

  • metadata (kwargs) – Key/value pairs to be updated in the volume’s metadata. No other metadata is modified by this call. All keys and values are stored as Unicode.

Returns:

A Volume with the volume’s metadata. All keys and values are Unicode text.

Return type:

Volume

delete_volume_metadata(volume, keys=None)

Delete metadata for a volume

Parameters:
  • volume – Either the ID of a volume or a Volume.

  • keys (list) – The keys to delete. If left empty complete metadata will be removed.

Return type:

None

Backup Operations

class openstack.block_storage.v2._proxy.Proxy(session, statsd_client=None, statsd_prefix=None, prometheus_counter=None, prometheus_histogram=None, influxdb_config=None, influxdb_client=None, *args, **kwargs)
backups(details=True, **query)

Retrieve a generator of backups

Parameters:
  • details (bool) – When set to False no additional details will be returned. The default, True, will cause objects with additional attributes to be returned.

  • query (dict) –

    Optional query parameters to be sent to limit the resources being returned:

    • offset: pagination marker

    • limit: pagination limit

    • sort_key: Sorts by an attribute. A valid value is name, status, container_format, disk_format, size, id, created_at, or updated_at. Default is created_at. The API uses the natural sorting direction of the sort_key attribute value.

    • sort_dir: Sorts by one or more sets of attribute and sort direction combinations. If you omit the sort direction in a set, default is desc.

Returns:

A generator of backup objects.

get_backup(backup)

Get a backup

Parameters:

backup – The value can be the ID of a backup or a Backup instance.

Returns:

Backup instance

Return type:

Backup

create_backup(**attrs)

Create a new Backup from attributes with native API

Parameters:

attrs (dict) – Keyword arguments which will be used to create a Backup comprised of the properties on the Backup class.

Returns:

The results of Backup creation

Return type:

Backup

delete_backup(backup, ignore_missing=True, force=False)

Delete a CloudBackup

Parameters:
  • backup – The value can be the ID of a backup or a Backup instance

  • ignore_missing (bool) – When set to False NotFoundException will be raised when the zone does not exist. When set to True, no exception will be set when attempting to delete a nonexistent zone.

  • force (bool) – Whether to try forcing backup deletion

Returns:

None

restore_backup(backup, volume_id, name)

Restore a Backup to volume

Parameters:
  • backup – The value can be the ID of a backup or a Backup instance

  • volume_id – The ID of the volume to restore the backup to.

  • name – The name for new volume creation to restore.

Returns:

Updated backup instance

Return type:

Backup

Capabilities Operations

class openstack.block_storage.v2._proxy.Proxy(session, statsd_client=None, statsd_prefix=None, prometheus_counter=None, prometheus_histogram=None, influxdb_config=None, influxdb_client=None, *args, **kwargs)
get_capabilities(host)

Get a backend’s capabilites

Parameters:

host – Specified backend to obtain volume stats and properties.

Returns:

One :class: ~openstack.block_storage.v2.capabilites.Capabilities instance.

Raises:

NotFoundException when no resource can be found.

Limits Operations

class openstack.block_storage.v2._proxy.Proxy(session, statsd_client=None, statsd_prefix=None, prometheus_counter=None, prometheus_histogram=None, influxdb_config=None, influxdb_client=None, *args, **kwargs)
get_limits(project=None)

Retrieves limits

Parameters:

project – A project to get limits for. The value can be either the ID of a project or an Project instance.

Returns:

A Limits object, including both AbsoluteLimit and RateLimit

Return type:

Limits

Type Operations

class openstack.block_storage.v2._proxy.Proxy(session, statsd_client=None, statsd_prefix=None, prometheus_counter=None, prometheus_histogram=None, influxdb_config=None, influxdb_client=None, *args, **kwargs)
get_type(type)

Get a single type

Parameters:

type – The value can be the ID of a type or a Type instance.

Returns:

One Type

Raises:

NotFoundException when no resource can be found.

types(**query)

Retrieve a generator of volume types

Returns:

A generator of volume type objects.

create_type(**attrs)

Create a new type from attributes

Parameters:

attrs (dict) – Keyword arguments which will be used to create a Type, comprised of the properties on the Type class.

Returns:

The results of type creation

Return type:

Type

delete_type(type, ignore_missing=True)

Delete a type

Parameters:
  • type – The value can be either the ID of a type or a Type instance.

  • ignore_missing (bool) – When set to False NotFoundException will be raised when the type does not exist. When set to True, no exception will be set when attempting to delete a nonexistent type.

Returns:

None

Snapshot Operations

class openstack.block_storage.v2._proxy.Proxy(session, statsd_client=None, statsd_prefix=None, prometheus_counter=None, prometheus_histogram=None, influxdb_config=None, influxdb_client=None, *args, **kwargs)
get_snapshot(snapshot)

Get a single snapshot

Parameters:

snapshot – The value can be the ID of a snapshot or a Snapshot instance.

Returns:

One Snapshot

Raises:

NotFoundException when no resource can be found.

snapshots(*, details=True, all_projects=False, **query)

Retrieve a generator of snapshots

Parameters:
  • details (bool) – When set to False Snapshot objects will be returned. The default, True, will cause SnapshotDetail objects to be returned.

  • all_projects (bool) – When set to True, list snapshots from all projects. Admin-only by default.

  • query (kwargs) –

    Optional query parameters to be sent to limit the snapshots being returned. Available parameters include:

    • name: Name of the snapshot as a string.

    • volume_id: volume id of a snapshot.

    • status: Value of the status of the snapshot so that you can filter on “available” for example.

Returns:

A generator of snapshot objects.

create_snapshot(**attrs)

Create a new snapshot from attributes

Parameters:

attrs (dict) – Keyword arguments which will be used to create a Snapshot, comprised of the properties on the Snapshot class.

Returns:

The results of snapshot creation

Return type:

Snapshot

delete_snapshot(snapshot, ignore_missing=True)

Delete a snapshot

Parameters:
  • snapshot – The value can be either the ID of a snapshot or a Snapshot instance.

  • ignore_missing (bool) – When set to False NotFoundException will be raised when the snapshot does not exist. When set to True, no exception will be set when attempting to delete a nonexistent snapshot.

Returns:

None

Stats Operations

class openstack.block_storage.v2._proxy.Proxy(session, statsd_client=None, statsd_prefix=None, prometheus_counter=None, prometheus_histogram=None, influxdb_config=None, influxdb_client=None, *args, **kwargs)
backend_pools(**query)

Returns a generator of cinder Back-end storage pools

Parameters:

query (kwargs) – Optional query parameters to be sent to limit the resources being returned.

:returns A generator of cinder Back-end storage pools objects

QuotaClassSet Operations

class openstack.block_storage.v2._proxy.Proxy(session, statsd_client=None, statsd_prefix=None, prometheus_counter=None, prometheus_histogram=None, influxdb_config=None, influxdb_client=None, *args, **kwargs)
get_quota_class_set(quota_class_set='default')

Get a single quota class set

Only one quota class is permitted, default.

Parameters:

quota_class_set – The value can be the ID of a quota class set (only default is supported) or a QuotaClassSet instance.

Returns:

One QuotaClassSet

Raises:

NotFoundException when no resource can be found.

update_quota_class_set(quota_class_set, **attrs)

Update a QuotaClassSet.

Only one quota class is permitted, default.

Parameters:
  • quota_class_set – Either the ID of a quota class set (only default is supported) or a QuotaClassSet instance.

  • attrs – The attributes to update on the QuotaClassSet represented by quota_class_set.

Returns:

The updated QuotaSet

Return type:

QuotaSet

QuotaSet Operations

class openstack.block_storage.v2._proxy.Proxy(session, statsd_client=None, statsd_prefix=None, prometheus_counter=None, prometheus_histogram=None, influxdb_config=None, influxdb_client=None, *args, **kwargs)
get_quota_set(project, usage=False, **query)

Show QuotaSet information for the project

Parameters:
  • project – ID or instance of Project of the project for which the quota should be retrieved

  • usage (bool) – When set to True quota usage and reservations would be filled.

  • query (dict) – Additional query parameters to use.

Returns:

One QuotaSet

Raises:

NotFoundException when no resource can be found.

get_quota_set_defaults(project)

Show QuotaSet defaults for the project

Parameters:

project – ID or instance of Project of the project for which the quota should be retrieved

Returns:

One QuotaSet

Raises:

NotFoundException when no resource can be found.

revert_quota_set(project, **query)

Reset Quota for the project/user.

Parameters:
  • project – ID or instance of Project of the project for which the quota should be resetted.

  • query (dict) – Additional parameters to be used.

Returns:

None

update_quota_set(project, **attrs)

Update a QuotaSet.

Parameters:
  • project – ID or instance of Project of the project for which the quota should be reset.

  • attrs – The attributes to update on the QuotaSet represented by quota_set.

Returns:

The updated QuotaSet

Return type:

QuotaSet

Helpers

class openstack.block_storage.v2._proxy.Proxy(session, statsd_client=None, statsd_prefix=None, prometheus_counter=None, prometheus_histogram=None, influxdb_config=None, influxdb_client=None, *args, **kwargs)
wait_for_status(res, status='available', failures=None, interval=2, wait=120, callback=None)

Wait for a resource to be in a particular status.

Parameters:
  • res – The resource to wait on to reach the specified status. The resource must have a status attribute.

  • status – Desired status.

  • failures (list) – Statuses that would be interpreted as failures.

  • interval – Number of seconds to wait before to consecutive checks. Default to 2.

  • wait – Maximum number of seconds to wait before the change. Default to 120.

  • callback – A callback function. This will be called with a single value, progress.

Returns:

The resource is returned on success.

Raises:

ResourceTimeout if transition to the desired status failed to occur in specified seconds.

Raises:

ResourceFailure if the resource has transited to one of the failure statuses.

Raises:

AttributeError if the resource does not have a status attribute.

wait_for_delete(res, interval=2, wait=120, callback=None)

Wait for a resource to be deleted.

Parameters:
  • res – The resource to wait on to be deleted.

  • interval – Number of seconds to wait before to consecutive checks. Default to 2.

  • wait – Maximum number of seconds to wait before the change. Default to 120.

  • callback – A callback function. This will be called with a single value, progress.

Returns:

The resource is returned on success.

Raises:

ResourceTimeout if transition to delete failed to occur in the specified seconds.

Creative Commons Attribution 3.0 License

Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.