块存储 API¶
有关如何使用 block_storage 的详细信息,请参阅 使用 OpenStack 块存储
块存储类¶
块存储高级接口可通过 Connection 对象的 block_storage 成员访问。只有在检测到服务时,才会添加 block_storage 成员。
备份操作¶
- class openstack.block_storage.v2._proxy.Proxy(session, *, service_type=None, service_name=None, interface=None, region_name=None, endpoint_override=None, version=None, auth=None, user_agent=None, connect_retries=None, logger=None, allow=None, additional_headers=None, client_name=None, client_version=None, allow_version_hack=None, global_request_id=None, min_version=None, max_version=None, default_microversion=None, status_code_retries=None, retriable_status_codes=None, raise_exc=None, rate_limit=None, concurrency=None, connect_retry_delay=None, status_code_retry_delay=None, statsd_client=None, statsd_prefix=None, prometheus_counter=None, prometheus_histogram=None, influxdb_config=None, influxdb_client=None)
- backups(details=True, **query)
检索备份生成器
- 参数:
details (bool) – 当设置为
False时,不会返回其他详细信息。默认情况下,True将返回具有其他属性的对象。query (dict) –
可选查询参数,用于发送到要限制返回的资源的参数
offset: 分页标记
limit: 分页限制
sort_key: 按属性排序。有效值为 name、status、container_format、disk_format、size、id、created_at 或 updated_at。默认值为 created_at。API 使用 sort_key 属性值的自然排序方向。
sort_dir: 按一个或多个属性和排序方向组合进行排序。如果省略集合中的排序方向,则默认值为 desc。
- 返回值:
备份对象生成器。
- create_backup(**attrs)
从属性使用原生 API 创建新的备份
- delete_backup(backup, ignore_missing=True, force=False)
删除 CloudBackup
- 参数:
backup – 该值可以是备份的 ID,也可以是
Backup实例ignore_missing (bool) – 当设置为
False时,如果区域不存在,将引发NotFoundException。当设置为True时,尝试删除不存在的区域时不会设置任何异常。force (bool) – 是否尝试强制删除备份
- 返回值:
无
- restore_backup(backup, volume_id, name)
将备份恢复到卷
- reset_backup_status(backup, status)
重置备份状态
- 参数:
backup – 该值可以是备份的 ID,也可以是
Backup实例。status (str) – 新备份状态
- 返回值:
无
功能操作¶
- class openstack.block_storage.v2._proxy.Proxy(session, *, service_type=None, service_name=None, interface=None, region_name=None, endpoint_override=None, version=None, auth=None, user_agent=None, connect_retries=None, logger=None, allow=None, additional_headers=None, client_name=None, client_version=None, allow_version_hack=None, global_request_id=None, min_version=None, max_version=None, default_microversion=None, status_code_retries=None, retriable_status_codes=None, raise_exc=None, rate_limit=None, concurrency=None, connect_retry_delay=None, status_code_retry_delay=None, statsd_client=None, statsd_prefix=None, prometheus_counter=None, prometheus_histogram=None, influxdb_config=None, influxdb_client=None)
- get_capabilities(host)
获取后端的 capabilites
- 参数:
host – 指定要获取卷统计信息和属性的后端。
- 返回值:
一个 ~openstack.block_storage.v2.capabilites.Capabilities 实例。
- 引发:
NotFoundException,当找不到资源时。
限制操作¶
- class openstack.block_storage.v2._proxy.Proxy(session, *, service_type=None, service_name=None, interface=None, region_name=None, endpoint_override=None, version=None, auth=None, user_agent=None, connect_retries=None, logger=None, allow=None, additional_headers=None, client_name=None, client_version=None, allow_version_hack=None, global_request_id=None, min_version=None, max_version=None, default_microversion=None, status_code_retries=None, retriable_status_codes=None, raise_exc=None, rate_limit=None, concurrency=None, connect_retry_delay=None, status_code_retry_delay=None, statsd_client=None, statsd_prefix=None, prometheus_counter=None, prometheus_histogram=None, influxdb_config=None, influxdb_client=None)
- get_limits(project=None)
检索限制
- 参数:
project – 要获取限制的项目,该值可以是
Project的 ID 或实例。- 返回值:
一个 Limits 对象,包括
AbsoluteLimit和RateLimit- 返回类型:
QuotaClassSet 操作¶
- class openstack.block_storage.v2._proxy.Proxy(session, *, service_type=None, service_name=None, interface=None, region_name=None, endpoint_override=None, version=None, auth=None, user_agent=None, connect_retries=None, logger=None, allow=None, additional_headers=None, client_name=None, client_version=None, allow_version_hack=None, global_request_id=None, min_version=None, max_version=None, default_microversion=None, status_code_retries=None, retriable_status_codes=None, raise_exc=None, rate_limit=None, concurrency=None, connect_retry_delay=None, status_code_retry_delay=None, statsd_client=None, statsd_prefix=None, prometheus_counter=None, prometheus_histogram=None, influxdb_config=None, influxdb_client=None)
- get_quota_class_set(quota_class_set='default')
获取单个配额类集
仅允许一个配额类,
default。- 参数:
quota_class_set – 该值可以是配额类集的 ID(仅支持
default)或QuotaClassSet实例。- 返回值:
一个
QuotaClassSet- 引发:
NotFoundException,当找不到资源时。
- update_quota_class_set(quota_class_set, **attrs)
更新 QuotaClassSet。
仅允许一个配额类,
default。- 参数:
quota_class_set – 要更新的 QuotaClassSet 的 ID(仅支持
default)或QuotaClassSet实例。attrs – 要更新由
quota_class_set表示的 QuotaClassSet 上的属性。
- 返回值:
更新的 QuotaSet
- 返回类型:
QuotaSet 操作¶
- class openstack.block_storage.v2._proxy.Proxy(session, *, service_type=None, service_name=None, interface=None, region_name=None, endpoint_override=None, version=None, auth=None, user_agent=None, connect_retries=None, logger=None, allow=None, additional_headers=None, client_name=None, client_version=None, allow_version_hack=None, global_request_id=None, min_version=None, max_version=None, default_microversion=None, status_code_retries=None, retriable_status_codes=None, raise_exc=None, rate_limit=None, concurrency=None, connect_retry_delay=None, status_code_retry_delay=None, statsd_client=None, statsd_prefix=None, prometheus_counter=None, prometheus_histogram=None, influxdb_config=None, influxdb_client=None)
- get_quota_set(project, usage=False, **query)
显示项目的 QuotaSet 信息
- 参数:
project – 项目的
Project的 ID 或实例,用于检索配额usage (bool) – 当设置为
True时,将填充配额使用量和预留量。query (dict) – 要使用的其他查询参数。
- 返回值:
一个
QuotaSet- 引发:
NotFoundException,当找不到资源时。
- get_quota_set_defaults(project)
显示项目的 QuotaSet 默认值
- 参数:
project – 项目的
Project的 ID 或实例,用于检索配额- 返回值:
一个
QuotaSet- 引发:
NotFoundException,当找不到资源时。
- revert_quota_set(project, **query)
重置项目/用户的配额。
- 参数:
project – 项目的
Project的 ID 或实例,用于重置配额。query (dict) – 附加参数,用于指定查询条件。
- 返回值:
无
- update_quota_set(project, **attrs)
更新配额集合。
- 参数:
project – 项目的 ID 或
Project实例,用于重置该项目的配额。attrs – 要更新的配额集合的属性,由
quota_set表示。
- 返回值:
更新的 QuotaSet
- 返回类型:
服务操作¶
- class openstack.block_storage.v2._proxy.Proxy(session, *, service_type=None, service_name=None, interface=None, region_name=None, endpoint_override=None, version=None, auth=None, user_agent=None, connect_retries=None, logger=None, allow=None, additional_headers=None, client_name=None, client_version=None, allow_version_hack=None, global_request_id=None, min_version=None, max_version=None, default_microversion=None, status_code_retries=None, retriable_status_codes=None, raise_exc=None, rate_limit=None, concurrency=None, connect_retry_delay=None, status_code_retry_delay=None, statsd_client=None, statsd_prefix=None, prometheus_counter=None, prometheus_histogram=None, influxdb_config=None, influxdb_client=None)
- find_service(name_or_id, ignore_missing=True, **query)
查找单个服务
- 参数:
name_or_id – 服务的名称或 ID
ignore_missing (bool) – 当设置为
False时,如果资源不存在,将引发NotFoundException。当设置为True时,尝试查找不存在的资源时将返回 None。query (dict) – 附加属性,例如 ‘host’
- 返回值:
One: class:~openstack.block_storage.v2.service.Service or None
- 引发:
NotFoundException,当找不到资源时。- 引发:
DuplicateResource当找到多个资源时。
- services(**query)
返回服务生成器
- 参数:
query (kwargs) – 可选的查询参数,用于限制返回的资源。
- 返回值:
Service 对象生成器
- 返回类型:
class: ~openstack.block_storage.v2.service.Service
- enable_service(service)
启用服务
- 参数:
service – 服务的 ID 或
Service实例。- 返回值:
更新的服务实例
- 返回类型:
class: ~openstack.block_storage.v2.service.Service
- disable_service(service, *, reason=None)
禁用服务
- 参数:
service – 服务的 ID 或
Service实例reason (str) – 禁用服务的理由
- 返回值:
更新的服务实例
- 返回类型:
class: ~openstack.block_storage.v2.service.Service
- thaw_service(service)
解冻服务
- 参数:
service – 服务的 ID 或
Service实例- 返回值:
更新的服务实例
- 返回类型:
class: ~openstack.block_storage.v2.service.Service
- freeze_service(service)
冻结服务
- 参数:
service – 服务的 ID 或
Service实例- 返回值:
更新的服务实例
- 返回类型:
class: ~openstack.block_storage.v2.service.Service
- failover_service(service, *, backend_id=None)
故障转移服务
仅适用于复制 cinder-volume 服务。
- 参数:
service – 服务的 ID 或
Service实例- 返回值:
更新的服务实例
- 返回类型:
class: ~openstack.block_storage.v2.service.Service
快照操作¶
- class openstack.block_storage.v2._proxy.Proxy(session, *, service_type=None, service_name=None, interface=None, region_name=None, endpoint_override=None, version=None, auth=None, user_agent=None, connect_retries=None, logger=None, allow=None, additional_headers=None, client_name=None, client_version=None, allow_version_hack=None, global_request_id=None, min_version=None, max_version=None, default_microversion=None, status_code_retries=None, retriable_status_codes=None, raise_exc=None, rate_limit=None, concurrency=None, connect_retry_delay=None, status_code_retry_delay=None, statsd_client=None, statsd_prefix=None, prometheus_counter=None, prometheus_histogram=None, influxdb_config=None, influxdb_client=None)
- get_snapshot(snapshot)
获取单个快照
- 参数:
snapshot – 该值可以是快照的 ID 或
Snapshot实例。- 返回值:
One
Snapshot- 引发:
NotFoundException,当找不到资源时。
- snapshots(*, details=True, all_projects=False, **query)
检索快照生成器
- 参数:
details (bool) – 当设置为
False时,将返回Snapshot对象。默认情况下,True将返回SnapshotDetail对象。all_projects (bool) – 当设置为
True时,将列出所有项目的快照。默认情况下仅限管理员使用。query (kwargs) –
可选查询参数,用于限制返回的快照。可用参数包括
name: 快照名称,字符串类型。
volume_id: 快照的卷 ID。
status: 快照的状态值,以便您可以按“available”进行筛选,例如。
- 返回值:
快照对象生成器。
- create_snapshot(**attrs)
从属性创建新的快照
- delete_snapshot(snapshot, ignore_missing=True)
删除快照
- 参数:
snapshot – 该值可以是快照的 ID 或
Snapshot实例。ignore_missing (bool) – 当设置为
False时,如果快照不存在,将引发NotFoundException。当设置为True时,尝试删除不存在的快照时不会设置任何异常。
- 返回值:
无
- reset_snapshot_status(snapshot, status)
重置快照状态
- 参数:
snapshot – 该值可以是备份的 ID 或
Snapshot实例。status (str) – 新快照状态
- 返回值:
无
统计操作¶
- class openstack.block_storage.v2._proxy.Proxy(session, *, service_type=None, service_name=None, interface=None, region_name=None, endpoint_override=None, version=None, auth=None, user_agent=None, connect_retries=None, logger=None, allow=None, additional_headers=None, client_name=None, client_version=None, allow_version_hack=None, global_request_id=None, min_version=None, max_version=None, default_microversion=None, status_code_retries=None, retriable_status_codes=None, raise_exc=None, rate_limit=None, concurrency=None, connect_retry_delay=None, status_code_retry_delay=None, statsd_client=None, statsd_prefix=None, prometheus_counter=None, prometheus_histogram=None, influxdb_config=None, influxdb_client=None)
- backend_pools(**query)
返回 cinder 后端存储池的生成器
- 参数:
query (kwargs) – 可选的查询参数,用于限制返回的资源。
:returns cinder 后端存储池对象生成器
传输操作¶
- class openstack.block_storage.v2._proxy.Proxy(session, *, service_type=None, service_name=None, interface=None, region_name=None, endpoint_override=None, version=None, auth=None, user_agent=None, connect_retries=None, logger=None, allow=None, additional_headers=None, client_name=None, client_version=None, allow_version_hack=None, global_request_id=None, min_version=None, max_version=None, default_microversion=None, status_code_retries=None, retriable_status_codes=None, raise_exc=None, rate_limit=None, concurrency=None, connect_retry_delay=None, status_code_retry_delay=None, statsd_client=None, statsd_prefix=None, prometheus_counter=None, prometheus_histogram=None, influxdb_config=None, influxdb_client=None)
- create_transfer(**attrs)
创建新的传输记录
- delete_transfer(transfer, ignore_missing=True)
删除卷转移
- 参数:
transfer – 该值可以是传输的 ID 或
Transfer`实例。ignore_missing (bool) – 当设置为
False时,如果传输不存在,将引发NotFoundException。当设置为True时,尝试删除不存在的传输时不会设置任何异常。
- 返回值:
无
- find_transfer(name_or_id, ignore_missing=True)
查找单个传输
- 参数:
name_or_id – 传输的名称或 ID
ignore_missing (bool) – 当设置为
False时,如果卷传输不存在,将引发NotFoundException。
- 返回值:
One
Transfer- 引发:
NotFoundException,当找不到资源时。- 引发:
DuplicateResource当找到多个资源时。
- get_transfer(transfer)
获取单个传输
- 参数:
transfer – 该值可以是传输的 ID 或
Transfer实例。- 返回值:
One
Transfer- 引发:
NotFoundException,当找不到资源时。
- transfers(*, details=True, all_projects=False, **query)
检索传输生成器
- 参数:
details (bool) – 当设置为
False时,将不会返回任何扩展属性。默认情况下,True将返回具有附加属性的对象。all_projects (bool) – 当设置为
True时,将列出所有项目的传输。默认情况下仅限管理员使用。query (kwargs) – 可选查询参数,用于限制返回的传输。
- 返回值:
传输对象生成器。
类型操作¶
- class openstack.block_storage.v2._proxy.Proxy(session, *, service_type=None, service_name=None, interface=None, region_name=None, endpoint_override=None, version=None, auth=None, user_agent=None, connect_retries=None, logger=None, allow=None, additional_headers=None, client_name=None, client_version=None, allow_version_hack=None, global_request_id=None, min_version=None, max_version=None, default_microversion=None, status_code_retries=None, retriable_status_codes=None, raise_exc=None, rate_limit=None, concurrency=None, connect_retry_delay=None, status_code_retry_delay=None, statsd_client=None, statsd_prefix=None, prometheus_counter=None, prometheus_histogram=None, influxdb_config=None, influxdb_client=None)
- get_type(type)
获取单个类型
- 参数:
type – 该值可以是类型的 ID 或
Type实例。- 返回值:
One
Type- 引发:
NotFoundException,当找不到资源时。
- types(**query)
检索卷类型生成器
- 返回值:
卷类型对象生成器。
- delete_type(type, ignore_missing=True)
删除类型
- 参数:
type – 该值可以是类型的 ID 或
Type实例。ignore_missing (bool) – 如果设置为
False,当类型不存在时会引发NotFoundException异常。如果设置为True,尝试删除不存在的类型时将不会设置任何异常。
- 返回值:
无
卷操作¶
- class openstack.block_storage.v2._proxy.Proxy(session, *, service_type=None, service_name=None, interface=None, region_name=None, endpoint_override=None, version=None, auth=None, user_agent=None, connect_retries=None, logger=None, allow=None, additional_headers=None, client_name=None, client_version=None, allow_version_hack=None, global_request_id=None, min_version=None, max_version=None, default_microversion=None, status_code_retries=None, retriable_status_codes=None, raise_exc=None, rate_limit=None, concurrency=None, connect_retry_delay=None, status_code_retry_delay=None, statsd_client=None, statsd_prefix=None, prometheus_counter=None, prometheus_histogram=None, influxdb_config=None, influxdb_client=None)
- get_volume(volume)
获取单个卷
- 参数:
volume – 该值可以是卷的 ID,也可以是
Volume实例。- 返回值:
一个
Volume- 引发:
NotFoundException,当找不到资源时。
- find_volume(name_or_id, ignore_missing=True, *, details=True, all_projects=False)
查找单个卷
- 参数:
volume – 卷的名称或 ID
ignore_missing (bool) – 如果设置为
False,当卷不存在时会引发NotFoundException异常。details (bool) – 如果设置为
False,将不会返回扩展属性。默认情况下,True会返回包含附加属性的对象。all_projects (bool) – 如果设置为
True,将在所有项目上按名称查找卷。请注意,这可能会增加重复的几率。默认情况下仅限管理员使用。
- 返回值:
一个
Volume或 None。- 引发:
NotFoundException,当找不到资源时。- 引发:
DuplicateResource当找到多个资源时。
- volumes(*, details=True, all_projects=False, **query)
检索卷生成器
- 参数:
details (bool) – 当设置为
False时,将不会返回任何扩展属性。默认情况下,True将返回具有附加属性的对象。all_projects (bool) – 如果设置为
True,将列出所有项目的卷。默认情况下仅限管理员使用。query (kwargs) –
可选查询参数,将发送到服务器以限制返回的卷。可用的参数包括
name: 卷的名称,字符串类型。
status: 卷的状态值,例如“available”用于过滤。
- 返回值:
卷对象生成器。
- create_volume(**attrs)
从属性创建新卷
- delete_volume(volume, ignore_missing=True, *, force=False, cascade=False)
删除卷
- 参数:
volume – 该值可以是卷的 ID,也可以是
Volume实例。ignore_missing (bool) – 如果设置为
False,当卷不存在时会引发NotFoundException异常。如果设置为True,尝试删除不存在的卷时将不会设置任何异常。force (bool) – 是否尝试强制删除卷。
cascade (bool) – 是否连同卷一起删除任何快照。
- 返回值:
无
- extend_volume(volume, size)
扩展卷
- 参数:
volume – 该值可以是卷的 ID,也可以是
Volume实例。size – 新卷大小
- 返回值:
无
- retype_volume(volume, new_type, migration_policy='never')
更改卷类型。
- set_volume_bootable_status(volume, bootable)
设置卷的可启动状态。
- 参数:
volume – 该值可以是卷的 ID,也可以是
Volume实例。bootable (bool) – 指定卷是否应可启动。
- 返回值:
无
- set_volume_image_metadata(volume, **metadata)
更新卷的镜像元数据
- 参数:
volume – 卷的 ID 或
Volume。metadata (kwargs) – 要更新到卷的镜像元数据中的键/值对。本次调用不会修改其他元数据。
- 返回值:
无
- delete_volume_image_metadata(volume, keys=None)
删除卷的元数据
- 参数:
volume – 卷的 ID 或
Volume。keys (list) – 要删除的键。如果留空,将删除完整的元数据。
- 返回值:
无
- reset_volume_status(volume, status=None, attach_status=None, migration_status=None)
重置卷状态。
- 参数:
volume – 该值可以是卷的 ID,也可以是
Volume实例。status (str) – 新卷状态。
attach_status (str) – 新卷附加状态。
migration_status (str) – 新卷迁移状态(仅限管理员)。
- 返回值:
无
- attach_volume(volume, mountpoint, instance=None, host_name=None)
将卷附加到服务器。
- 参数:
volume – 该值可以是卷的 ID,也可以是
Volume实例。mountpoint (str) – 附加的挂载点。
instance (str) – 附加实例的 UUID。
host_name (str) – 附加主机的名称。
- 返回值:
无
- detach_volume(volume, attachment, force=False, connector=None)
将卷从服务器分离。
- 参数:
volume – 该值可以是卷的 ID,也可以是
Volume实例。attachment (str) – 附加的 ID。
force (bool) – 是否强制分离卷(在断开卷连接后回滚未成功分离的操作)。
connector (dict) – 连接器对象。
- 返回值:
无
- unmanage_volume(volume)
- 从块存储管理中移除卷,而不移除与之关联的后端存储对象。
migrate_volume(volume, host=None, force_host_copy=False, lock_volume=False)
- 参数:
volume – 该值可以是卷的 ID,也可以是
Volume实例。- 返回值:
无
- 将卷迁移到指定的主机。
host (str) – 卷迁移的目标主机。主机格式为 host@backend。
- 参数:
volume – 该值可以是卷的 ID,也可以是
Volume实例。force_host_copy (bool) – 如果为 false(默认值),则依赖于卷后端驱动程序执行迁移,这可能会得到优化。如果为 true,或者卷驱动程序未能自行迁移卷,则将执行基于主机的通用迁移。
lock_volume (bool) – 如果为 true,迁移可用卷会将状态更改为维护状态,从而防止对卷执行其他操作,例如附加、分离、重新类型化等。
complete_volume_migration(volume, new_volume, error=False)
- 返回值:
无
- 完成卷的迁移。
new_volume (str) – 新卷的 UUID。
- 参数:
volume – 该值可以是卷的 ID,也可以是
Volume实例。error (bool) – 用于指示其他地方是否发生错误,需要进行清理。
get_volume_metadata(volume)
- 返回值:
无
- 返回卷的元数据字典
一个
Volume,其中包含卷的元数据。所有键和值都是 Unicode 文本。
- 更新卷的元数据
metadata (kwargs) – 要更新到卷的元数据中的键/值对。本次调用不会修改其他元数据。所有键和值都存储为 Unicode。
- 删除卷的元数据
删除卷的元数据
- 参数:
volume – 卷的 ID 或
Volume。keys (list) – 要删除的键。如果留空,将删除完整的元数据。
- 返回类型:
无
辅助函数¶
- class openstack.block_storage.v2._proxy.Proxy(session, *, service_type=None, service_name=None, interface=None, region_name=None, endpoint_override=None, version=None, auth=None, user_agent=None, connect_retries=None, logger=None, allow=None, additional_headers=None, client_name=None, client_version=None, allow_version_hack=None, global_request_id=None, min_version=None, max_version=None, default_microversion=None, status_code_retries=None, retriable_status_codes=None, raise_exc=None, rate_limit=None, concurrency=None, connect_retry_delay=None, status_code_retry_delay=None, statsd_client=None, statsd_prefix=None, prometheus_counter=None, prometheus_histogram=None, influxdb_config=None, influxdb_client=None)
- wait_for_status(res, status='available', failures=None, interval=2, wait=None, attribute='status', callback=None)
等待资源达到特定状态。
- 参数:
session – 用于进行此请求的会话。
resource – 要等待达到状态的资源。资源必须通过
attribute指定状态属性。status – 期望的资源状态。
failures – 将指示转换失败的状态,例如 ‘ERROR’。默认为 [‘ERROR’]。
interval – 两次检查之间的秒数。
wait – 等待转换的最大秒数。设置为
None以无限期等待。attribute – 包含状态的资源属性的名称。
callback – 回调函数。将使用单个值(进度)调用此函数。此函数特定于 API,但通常是从 0-100 的百分比值。
- 返回值:
更新后的资源。
- 引发:
ResourceTimeout如果在wait秒内未能转换为状态。- 引发:
ResourceFailure如果资源转换为failures中的状态之一。- 引发:
AttributeError如果资源没有status属性
- wait_for_delete(res, interval=2, wait=120, callback=None)
等待资源被删除。
- 参数:
res – 要等待被删除的资源。
interval – 两次连续检查之间的秒数。
wait – 在更改之前等待的最大秒数。
callback – 回调函数。将使用单个值(进度)调用此函数,该值是从 0-100 的百分比值。
- 返回值:
成功时返回资源。
- 引发:
ResourceTimeout如果在指定秒数内未能转换为删除状态。