块存储 API¶
有关如何使用 block_storage 的详细信息,请参阅 使用 OpenStack 块存储
块存储类¶
块存储高级接口可通过 Connection 对象的 block_storage 成员访问。只有检测到该服务时,才会添加 block_storage 成员。
挂载¶
- class openstack.block_storage.v3._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_attachment(volume, **attrs)
创建新的挂载
这是一个内部 API,仅应由使用卷挂载的服务(如 nova、glance、ironic 等)调用。
- 参数:
volume – 该值可以是卷的 ID 或
Volume实例。attrs (dict) – 关键字参数,将用于创建一个
Attachment,该对象由 Attachment 类上的属性(如 connector、instance_id、mode 等)组成。
- 返回值:
挂载创建的结果
- 返回类型:
- get_attachment(attachment)
获取单个卷
这是一个内部 API,仅应由使用卷挂载的服务(如 nova、glance、ironic 等)调用。
- 参数:
attachment – 该值可以是挂载的 ID 或
Attachment实例。- 返回值:
一个
Attachment- 引发:
NotFoundException,当找不到资源时。
- attachments(**query)
返回挂载的生成器。
这是一个内部 API,仅应由使用卷挂载的服务(如 nova、glance、ironic 等)调用。
- 参数:
query (kwargs) – 可选的查询参数,用于限制返回的资源。
- 返回值:
挂载对象生成器。
- delete_attachment(attachment, ignore_missing=True)
删除挂载
这是一个内部 API,仅应由使用卷挂载的服务(如 nova、glance、ironic 等)调用。
- 参数:
type – 该值可以是挂载的 ID 或
Attachment实例。ignore_missing (bool) – 当设置为
False时,如果挂载不存在,将引发NotFoundException。当设置为True时,尝试删除不存在的挂载时不会设置任何异常。
- 返回值:
无
- update_attachment(attachment, **attrs)
更新挂载
这是一个内部 API,仅应由使用卷挂载的服务(如 nova、glance、ironic 等)调用。
- 参数:
attachment – 该值可以是挂载的 ID 或
Attachment实例。attrs (dict) – 关键字参数,将用于更新一个
Attachment,该对象由 Attachment 类上的属性组成
- 返回值:
更新后的挂载
- 返回类型:
挂载
- complete_attachment(attachment)
完成挂载
这是一个内部 API,仅应由使用卷挂载的服务(如 nova、glance、ironic 等)调用。
- 参数:
attachment – 该值可以是挂载的 ID 或
Attachment实例。- 返回值:
无- 返回类型:
挂载
可用区操作¶
- class openstack.block_storage.v3._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)
- availability_zones()
返回可用区的生成器
- 返回值:
可用区生成器
- 返回类型:
后端池操作¶
- class openstack.block_storage.v3._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.v3._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。
project_id: 要查询备份的项目 ID。
- 返回值:
备份对象生成器。
- find_backup(name_or_id, ignore_missing=True, **details=True)
查找单个备份
- 参数:
snapshot – 备份的名称或 ID
ignore_missing (bool) – 当设置为
False时,如果备份不存在,将引发NotFoundException。details (bool) – 当设置为
False时,不会返回任何其他详细信息。默认情况下,True将返回具有附加属性的对象。
- 返回值:
一个
Backup- 引发:
NotFoundException,当找不到资源时。- 引发:
DuplicateResource当找到多个资源时。
- 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=None, name=None)
将备份恢复到卷
- reset_backup_status(backup, status)
重置备份状态
- 参数:
backup – 该值可以是备份的 ID 或
Backup实例。status (str) – 新备份状态
- 返回值:
无
块存储摘要操作¶
- class openstack.block_storage.v3._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)
- summary(all_projects, **kwargs)
获取卷摘要
此方法返回部署中的卷摘要。
- 参数:
all_projects – 是否返回所有项目的摘要信息。
- 返回值:
一个 :class: ~openstack.block_storage.v3.block_storage_summary.Summary 实例。
Capabilities 操作¶
- class openstack.block_storage.v3._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)
获取后端的 Capabilities
- 参数:
host – 要获取卷统计信息和属性的指定后端。
- 返回值:
一个 :class: ~openstack.block_storage.v3.capabilites.Capabilities 实例。
- 引发:
NotFoundException,当找不到资源时。
默认卷类型¶
- class openstack.block_storage.v3._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)
- default_types()
列出默认类型。
- 返回值:
与项目关联的默认类型列表。
- show_default_type(project)
显示项目的默认类型。
- 参数:
project – 该值可以是项目的 ID,也可以是
Project实例。- 返回值:
与项目关联的默认类型。
- set_default_type(project, type)
设置项目的默认类型。
- unset_default_type(project)
取消设置项目的默认类型。
- 参数:
project – 该值可以是项目的 ID,也可以是
Project实例。- 返回值:
无
限制操作¶
- class openstack.block_storage.v3._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 – 要获取限制的项目。该值可以是项目的 ID,也可以是
Project实例。- 返回值:
一个 Limits 对象,包括
AbsoluteLimit和RateLimit。- 返回类型:
Group 操作¶
- class openstack.block_storage.v3._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_group(group_id, **attrs)
获取一个 Group
- 参数:
group_id – 要获取的 Group 的 ID。
attrs (dict) – 可选的查询参数,用于限制返回的资源。
- 返回值:
一个 Group 实例。
- 返回类型:
- find_group(name_or_id, ignore_missing=True, *, details=True)
查找单个 Group
- 参数:
name_or_id – Group 的名称或 ID。
ignore_missing (bool) – 当设置为
False时,如果 Group 快照不存在,将引发NotFoundException。details (bool) – 当设置为
False时,将不会返回其他详细信息。默认情况下,True将导致返回其他详细信息。
- 返回值:
一个
Group。- 引发:
NotFoundException,当找不到资源时。- 引发:
DuplicateResource当找到多个资源时。
- groups(**query)
检索 Group 生成器
- 参数:
details (bool) – 当设置为
False时,将不会返回其他详细信息。默认情况下,True将导致返回其他详细信息。query (dict) –
可选查询参数,将发送到限制返回的资源
all_tenants: 显示所有项目的详细信息。
sort: 逗号分隔的排序键和可选排序方向列表。
limit: 返回最多 limit 值个项目。
offset: 与 limit 结合使用,以返回切片中的项目。指定列表中的起始位置。
marker: 上次看到的项目的 ID。
list_volume: 显示此组中的卷 ID。
detailed: 如果为 True,将列出带有详细信息的组。
search_opts: 搜索选项。
- 返回值:
Group 对象生成器。
- create_group(**attrs)
从属性创建新的 Group
- create_group_from_source(**attrs)
从源创建新的 Group
- delete_group(group, delete_volumes=False)
删除一个组
- 参数:
group – 要删除的
Group。delete_volumes (bool) – 当设置为
True时,Group 中的卷将被删除。
- 返回值:
无.
- update_group(group, **attrs)
更新 Group
- 参数:
group – 该值可以是 Group 的 ID,也可以是
Group实例。attrs (dict) – 要更新到 Group 上的属性。
- 返回值:
更新后的 Group
- 返回类型:
Group
- reset_group_status(group, status)
重置 Group 状态
- 参数:
group – 要设置状态的
Group。status – Group 的状态。
- 返回值:
无
Group Snapshot 操作¶
- class openstack.block_storage.v3._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_group_snapshot(group_snapshot_id)
获取一个 Group Snapshot
- 参数:
group_snapshot_id – 要获取的 Group Snapshot 的 ID。
- 返回值:
一个 GroupSnapshot 实例。
- 返回类型:
- find_group_snapshot(name_or_id, ignore_missing=True, *, details=True)
查找单个 Group Snapshot
- 参数:
name_or_id – Group Snapshot 的名称或 ID。
ignore_missing (bool) – 当设置为
False时,如果 Group 快照不存在,将引发NotFoundException。details (bool) – 当设置为
False时,将不会返回其他详细信息。默认情况下,True将导致返回其他详细信息。
- 返回值:
- 引发:
NotFoundException,当找不到资源时。- 引发:
DuplicateResource当找到多个资源时。
- group_snapshots(**query)
检索 Group Snapshot 生成器
- 参数:
details (bool) – 当为
True时,将返回带有填充其他属性的GroupSnapshot对象。query (kwargs) – 可选的查询参数,用于限制返回的 Group Snapshot。
- 返回值:
Group Snapshot 对象生成器。
- create_group_snapshot(**attrs)
创建 Group Snapshot
- 参数:
attrs (dict) – 关键字参数,将用于创建由 GroupSnapshot 类上的属性组成的
GroupSnapshot。- 返回值:
Group Snapshot 创建的结果。
- 返回类型:
- reset_group_snapshot_status(group_snapshot, status)
重置 Group Snapshot 状态
- 参数:
group_snapshot – 要设置状态的
GroupSnapshot。state – 要设置的 Group Snapshot 的状态。
- 返回值:
无
- delete_group_snapshot(group_snapshot, ignore_missing=True)
删除 Group Snapshot
- 参数:
group_snapshot – 要删除的
GroupSnapshot。- 返回值:
无
Group 类型操作¶
- class openstack.block_storage.v3._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_group_type(group_type)
获取特定的 Group 类型
- 参数:
group_type – 该值可以是 Group 类型的 ID,也可以是
GroupType实例。- 返回值:
一个 :class: ~openstack.block_storage.v3.group_type.GroupType 实例。
- 引发:
NotFoundException,当找不到资源时。
- find_group_type(name_or_id, ignore_missing=True)
查找单个 Group 类型
- 参数:
name_or_id – Group 类型的名称或 ID。
ignore_missing (bool) – 当设置为
False时,如果 Group 类型不存在,将引发NotFoundException。
- 返回值:
一个
GroupType。- 引发:
NotFoundException,当找不到资源时。- 引发:
DuplicateResource当找到多个资源时。
- group_types(**query)
检索 Group 类型生成器
- 参数:
query (dict) –
可选查询参数,将发送到限制返回的资源
sort: 逗号分隔的排序键和可选排序方向列表,格式为 <key> [:<direction>]。有效的方向是 asc(升序)或 desc(降序)。
limit: 请求项目页面大小。返回最多 limit 值个项目。使用 limit 参数进行初始有限请求,并在后续有限请求中使用响应中上次看到的项目的 ID 作为 marker 参数值。
offset: 与 limit 结合使用,以返回切片中的项目。是列表中的起始位置。
marker: 上次看到的项目的 ID。
- 返回值:
Group 类型对象生成器。
- create_group_type(**attrs)
创建一个组类型
- 参数:
attrs (dict) – 关键字参数,将用于创建由 GroupType 类上的属性组成的
GroupType。- 返回值:
Group 类型创建的结果。
- 返回类型:
GroupTye.
- delete_group_type(group_type, ignore_missing=True)
删除组类型
- 参数:
group_type – 该值可以是 Group 类型的 ID,也可以是
GroupType实例。ignore_missing (bool) – 当设置为
False时,如果区域不存在,将引发NotFoundException。当设置为True时,尝试删除不存在的区域时不会设置任何异常。
- 返回值:
无
- update_group_type(group_type, **attrs)
更新组类型
- fetch_group_type_group_specs(group_type)
列出组类型的组规格。
- create_group_type_group_specs(group_type, group_specs)
为组类型创建组规格。
- get_group_type_group_specs_property(group_type, prop)
检索组类型的组规格属性。
- 参数:
group_type – 组类型的 ID 或
GroupType实例。prop (str) – 属性名称。
- 返回值:
请求属性的字符串值。
- update_group_type_group_specs_property(group_type, prop, val)
更新组类型的组规格属性。
- 参数:
group_type – 组类型的 ID 或
GroupType实例。prop (str) – 属性名称。
val (str) – 属性值。
- 返回值:
请求属性的字符串值。
- delete_group_type_group_specs_property(group_type, prop)
从组类型中删除组规格属性。
- 参数:
group_type – 组类型的 ID 或
GroupType实例。prop (str) – 属性名称。
- 返回值:
无
QuotaClassSet 操作¶
- class openstack.block_storage.v3._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 – 配额类集的 ID(仅支持
default)或attrs – 要更新由
quota_class_set表示的 QuotaClassSet 上的属性。
- 返回值:
更新的 QuotaSet
- 返回类型:
QuotaSet 操作¶
- class openstack.block_storage.v3._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)
显示项目的配额集信息
- 参数:
project – 项目的
Project的 ID 或实例,用于检索配额usage (bool) – 当设置为
True时,将填充配额使用量和预留量。query (dict) – 要使用的其他查询参数。
- 返回值:
一个
QuotaSet- 引发:
NotFoundException,当找不到资源时。
- get_quota_set_defaults(project)
显示项目的配额集默认值
- 参数:
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.v3._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’
- 返回值:
一个:类:~openstack.block_storage.v3.service.Service 或 None
- 引发:
NotFoundException,当找不到资源时。- 引发:
DuplicateResource当找到多个资源时。
- services(**query)
返回服务生成器
- 参数:
query (kwargs) – 可选的查询参数,用于限制返回的资源。
- 返回值:
Service 对象的生成器
- 返回类型:
类:~openstack.block_storage.v3.service.Service
- enable_service(service)
启用服务
- 参数:
service – 服务的 ID 或
Service实例。- 返回值:
更新的服务实例
- 返回类型:
类:~openstack.block_storage.v3.service.Service
- disable_service(service, *, reason=None)
禁用服务
- 参数:
service – 服务的 ID 或
Service实例reason (str) – 禁用服务的理由
- 返回值:
更新的服务实例
- 返回类型:
类:~openstack.block_storage.v3.service.Service
- thaw_service(service)
解冻服务
- 参数:
service – 服务的 ID 或
Service实例- 返回值:
更新的服务实例
- 返回类型:
类:~openstack.block_storage.v3.service.Service
- freeze_service(service)
冻结服务
- 参数:
service – 服务的 ID 或
Service实例- 返回值:
更新的服务实例
- 返回类型:
类:~openstack.block_storage.v3.service.Service
- set_service_log_levels(*, level, binary=None, server=None, prefix=None)
设置服务的日志级别。
- 参数:
level – 要设置的日志级别,不区分大小写,允许的值为
INFO、WARNING、ERROR和DEBUG。binary – 服务的二进制名称。
server – 主机名称。
prefix – 我们正在查询的日志路径的前缀,例如
cinder.或sqlalchemy.engine.如果未提供或传递了空字符串,将检索所有日志级别。
- 返回值:
None。
- get_service_log_levels(*, binary=None, server=None, prefix=None)
获取服务的日志级别。
- 参数:
binary – 服务的二进制名称。
server – 主机名称。
prefix – 我们正在查询的日志路径的前缀,例如
cinder.或sqlalchemy.engine.如果未提供或传递了空字符串,将检索所有日志级别。
- 返回值:
一个
LogLevel对象的生成器。
- failover_service(service, *, cluster=None, backend_id=None)
故障转移服务
仅适用于复制 cinder-volume 服务。
- 参数:
service – 服务的 ID 或
Service实例- 返回值:
更新的服务实例
- 返回类型:
类:~openstack.block_storage.v3.service.Service
快照操作¶
- class openstack.block_storage.v3._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实例。- 返回值:
一个
Snapshot- 引发:
NotFoundException,当找不到资源时。
- find_snapshot(name_or_id, ignore_missing=True, *, details=True, all_projects=False)
查找单个快照
- 参数:
snapshot – 快照的名称或 ID
ignore_missing (bool) – 如果设置为
FalseNotFoundException将在快照不存在时引发。如果设置为True,则尝试查找不存在的资源时将返回 None。details (bool) – 如果设置为
False:class: ~openstack.block_storage.v3.snapshot.Snapshot 对象将返回。默认情况下,True将导致返回更多属性。all_projects (bool) – 如果设置为
True,则跨所有项目按名称搜索快照。默认情况下仅限管理员。
- 返回值:
一个
Snapshot- 引发:
NotFoundException,当找不到资源时。- 引发:
DuplicateResource当找到多个资源时。
- snapshots(*, details=True, all_projects=False, **query)
检索快照生成器
- 参数:
details (bool) – 如果设置为
False:class: ~openstack.block_storage.v3.snapshot.Snapshot 对象将返回。默认情况下,True将导致返回更多属性。all_projects (bool) – 如果设置为
True,则从所有项目列出快照。默认情况下仅限管理员。query (kwargs) –
可选查询参数,用于限制返回的快照。可用参数包括
name: 快照的名称,字符串类型。
project_id: 按项目过滤快照。
volume_id: 快照的卷 ID。
status: 快照状态的值,以便您可以过滤“可用”例如。
- 返回值:
快照对象的生成器。
- create_snapshot(**attrs)
从属性创建新的快照
- update_snapshot(snapshot, **attrs)
更新快照
- delete_snapshot(snapshot, ignore_missing=True, force=False)
删除快照
- 参数:
snapshot – 该值可以是快照的 ID 或
Snapshot实例。ignore_missing (bool) – 如果设置为
FalseNotFoundException将在快照不存在时引发。如果设置为True,则尝试删除不存在的快照时不会设置任何异常。force (bool) – 是否尝试强制删除快照。
- 返回值:
无
- get_snapshot_metadata(snapshot)
返回快照的元数据字典
- set_snapshot_metadata(snapshot, **metadata)
更新快照的元数据
- delete_snapshot_metadata(snapshot, keys=None)
删除快照的元数据
- 参数:
snapshot – 快照的 ID 或
Snapshot。keys (list) – 要删除的键。如果留空,将删除完整的元数据。
- 返回类型:
无
- reset_snapshot_status(snapshot, status)
重置快照的状态
- 参数:
snapshot – 该值可以是备份的 ID 或
Snapshot实例。status (str) – 新的快照状态
- 返回值:
无
- set_snapshot_status(snapshot, status, progress=None)
更新快照状态相关的字段。
- 参数:
snapshot – 该值可以是备份的 ID 或
Snapshot实例。status (str) – 新的快照状态
progress (str) – 快照构建进度的百分比值。
- 返回值:
无
- manage_snapshot(**attrs)
通过使用现有存储而不是分配新存储来创建快照。
- unmanage_snapshot(snapshot)
取消管理块存储配置中的快照。
- 参数:
snapshot – 快照的 ID 或
Snapshot。- 返回值:
无
统计操作¶
- class openstack.block_storage.v3._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.v3._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。
- 返回值:
一个
Transfer- 引发:
NotFoundException,当找不到资源时。- 引发:
DuplicateResource当找到多个资源时。
- get_transfer(transfer)
获取单个传输
- 参数:
transfer – 该值可以是传输的 ID 或
Transfer实例。- 返回值:
一个
Transfer- 引发:
NotFoundException,当找不到资源时。
- transfers(*, details=True, all_projects=False, **query)
检索传输生成器
- 参数:
details (bool) – 当设置为
False时,不会返回任何扩展属性。默认情况下,True将返回具有附加属性的对象。all_projects (bool) – 当设置为
True时,将列出所有项目的传输。默认情况下仅限管理员。query (kwargs) – 可选的查询参数,用于发送以限制返回的传输。
- 返回值:
传输对象生成器。
类型操作¶
- class openstack.block_storage.v3._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实例。- 返回值:
一个
Type- 引发:
NotFoundException,当找不到资源时。
- find_type(name_or_id, ignore_missing=True)
查找单个卷类型
- 参数:
snapshot – 卷类型的名称或 ID
ignore_missing (bool) – 当设置为
False时,如果卷类型不存在,将引发NotFoundException。
- 返回值:
一个
Type- 引发:
NotFoundException,当找不到资源时。- 引发:
DuplicateResource当找到多个资源时。
- types(**query)
检索卷类型生成器
- 返回值:
卷类型对象生成器。
- delete_type(type, ignore_missing=True)
删除类型
- 参数:
type – 该值可以是类型的 ID,也可以是
Type实例。ignore_missing (bool) – 当设置为
False时,如果类型不存在,将引发NotFoundException。当设置为True时,尝试删除不存在的类型时不会设置任何异常。
- 返回值:
无
- update_type(type, **attrs)
更新类型
- update_type_extra_specs(type, **attrs)
更新类型的 extra_specs
- 参数:
type – 该值可以是类型的 ID,也可以是
Type实例。attrs (dict) – 要更新到类型上的 extra spec 属性
- 返回值:
包含更新后的 extra_specs 的字典
- delete_type_extra_specs(type, keys)
删除类型的 extra_specs
注意:此方法将为 keys 中的每个键执行 HTTP DELETE 请求。
- 参数:
type – 该值可以是类型的 ID,也可以是
Type实例。keys – 要删除的键
- 返回值:
无
- get_type_access(type)
列出具有对私有卷类型访问权限的项目 ID。
- 参数:
type – 该值可以是类型的 ID,也可以是
Type实例。- 返回值:
描述具有对指定类型访问权限的项目字典列表
- add_type_access(type, project_id)
将私有卷类型访问权限添加到项目。
- 参数:
type – 该值可以是类型的 ID,也可以是
Type实例。project_id (str) – 项目的 ID。要将卷类型访问权限添加到此项目 ID。
- 返回值:
无
- remove_type_access(type, project_id)
从项目删除私有卷类型访问权限。
- 参数:
type – 该值可以是类型的 ID,也可以是
Type实例。project_id (str) – 项目的 ID。要将卷类型访问权限从此项目 ID 移除。
- 返回值:
无
- get_type_encryption(volume_type_id)
获取卷类型的加密详细信息
- 参数:
volume_type_id – 该值可以是类型的 ID 或
Type实例。- 返回值:
- 引发:
NotFoundException,当找不到资源时。
- create_type_encryption(volume_type, **attrs)
从属性创建新的类型加密
- 参数:
volume_type – 该值可以是类型的 ID 或
Type实例。attrs (dict) – 关键字参数,将用于创建包含类型加密类属性的
TypeEncryption。
- 返回值:
类型加密创建的结果
- 返回类型:
- delete_type_encryption(encryption=None, volume_type=None, ignore_missing=True)
删除类型加密属性
- 参数:
encryption – 该值可以是 None 或
TypeEncryption实例。如果 encryption_id 为 None,则必须指定 volume_type_id。volume_type – 该值可以是类型的 ID 或
Type实例。如果 encryption_id 为 None,则需要此项。ignore_missing (bool) – 当设置为
False时,如果类型不存在,将引发NotFoundException。当设置为True时,尝试删除不存在的类型时不会设置任何异常。
- 返回值:
无
- update_type_encryption(encryption=None, volume_type=None, **attrs)
更新类型
- 参数:
encryption – 该值可以是 None 或
TypeEncryption实例。如果此值为None,则必须指定volume_type_id。volume_type – 该值可以是类型 ID 或
Type实例。如果encryption_id为 None,则必需。attrs (dict) – 要更新到类型加密的属性。
- 返回值:
更新后的类型加密
- 返回类型:
卷操作¶
- class openstack.block_storage.v3._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)
查找单个卷
- 参数:
snapshot – 卷的名称或 ID
ignore_missing (bool) – 如果设置为
False,当卷不存在时将引发NotFoundException。details (bool) – 当设置为
False时,不会返回任何扩展属性。默认情况下,True将返回具有附加属性的对象。all_projects (bool) – 如果设置为
True,则跨所有项目按名称搜索卷。默认情况下,这可能会导致更高的重复机会。仅限管理员使用。
- 返回值:
一个
Volume- 引发:
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) – 是否连同卷一起删除任何快照。
- 返回值:
无
- update_volume(volume, **attrs)
更新卷
- get_volume_metadata(volume)
返回卷的元数据字典
- set_volume_metadata(volume, **metadata)
更新卷的元数据
- delete_volume_metadata(volume, keys=None)
删除卷的元数据
- 参数:
volume – 卷的 ID 或
Volume。keys (list) – 要删除的键。如果留空,将删除完整的元数据。
- 返回类型:
无
- extend_volume(volume, size)
扩展卷
- 参数:
volume – 该值可以是卷的 ID 或
Volume实例。size – 新卷大小
- 返回值:
无
- set_volume_readonly(volume, readonly=True)
设置卷的只读标志。
- 参数:
volume – 该值可以是卷的 ID 或
Volume实例。readonly (bool) – 卷是否应为只读卷。
- 返回值:
无
- 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) – 新卷迁移状态(仅限管理员)。
- 返回值:
无
- revert_volume_to_snapshot(volume, snapshot)
将卷恢复到其最新快照。
此方法仅支持恢复分离的卷,并且卷状态必须为 available。
- 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) – 连接器对象。
- 返回值:
无
- manage_volume(**attrs)
- 通过使用现有存储而不是
分配新存储来创建卷。
- unmanage_volume(volume)
- 从块存储管理中删除卷,而不删除
与之关联的后端存储对象。
- 参数:
volume – 该值可以是卷的 ID 或
Volume实例。- 返回值:
无
- migrate_volume(volume, host=None, force_host_copy=False, lock_volume=False, cluster=None)
host (str) – 卷迁移的目标主机。主机格式为 host@backend。
- 参数:
volume – 该值可以是卷的 ID 或
Volume实例。host (str) – 卷迁移的目标主机。主机格式为 host@backend。
force_host_copy (bool) – 如果为 false(默认值),则依赖于卷后端驱动程序执行迁移,这可能会得到优化。如果为 true,或者卷驱动程序未能自行迁移卷,则执行基于主机的通用迁移。
lock_volume (bool) – 如果为 true,则迁移可用的卷会将状态更改为维护,从而防止对卷执行其他操作,例如附加、分离、重新类型化等。
cluster (str) – 卷迁移的目标集群。集群格式为 cluster@backend。从微版本 3.16 开始,必须指定集群或主机。如果指定了主机并且是集群的一部分,则将集群用作迁移的目标。
- 返回值:
无
- complete_volume_migration(volume, new_volume, error=False)
完成卷的迁移。
- 参数:
volume – 该值可以是卷的 ID 或
Volume实例。new_volume (str) – 新卷的 UUID。
error (bool) – 用于指示其他地方是否发生错误,需要进行清理。
- 返回值:
无
- upload_volume_to_image(volume, image_name, force=False, disk_format=None, container_format=None, visibility=None, protected=None)
将指定的卷上传到镜像服务。
- 参数:
volume – 该值可以是卷的 ID 或
Volume实例。name (str image) – 新镜像的名称。
force (bool) – 启用或禁用上传已附加到实例的卷。
disk_format (str) – 新镜像的磁盘格式。
container_format (str) – 新镜像的容器格式。
visibility (str) – 新镜像的可见性属性。
protected (str) – 新镜像是否受保护。
- 返回值:
描述镜像的字典。
- reserve_volume(volume)
标记卷为已保留。
- 参数:
volume – 该值可以是卷的 ID 或
Volume实例。- 返回值:
无
- unreserve_volume(volume)
取消标记卷为已保留。
- 参数:
volume – 该值可以是卷的 ID 或
Volume实例。- 返回值:
无
- begin_volume_detaching(volume)
更新卷状态为“正在分离”。
- 参数:
volume – 该值可以是卷的 ID 或
Volume实例。- 返回值:
无
- abort_volume_detaching(volume)
更新卷状态为“使用中”。
- 参数:
volume – 该值可以是卷的 ID 或
Volume实例。- 返回值:
无
- init_volume_attachment(volume, connector)
初始化卷附件。
- 参数:
volume – 该值可以是卷的 ID 或
Volume实例。connector (dict) – 连接器对象。
- 返回值:
包含修改后的连接器对象的字典
- terminate_volume_attachment(volume, connector)
更新卷状态为“使用中”。
- 参数:
volume – 该值可以是卷的 ID 或
Volume实例。connector (dict) – 连接器对象。
- 返回值:
无
辅助函数¶
- class openstack.block_storage.v3._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如果在指定秒数内未能转换为删除状态。