块存储 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()

返回可用区的生成器

返回值:

可用区生成器

返回类型:

AvailabilityZone

后端池操作

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。

返回值:

备份对象生成器。

get_backup(backup)

获取备份

参数:

backup – 该值可以是备份的 ID 或 Backup 实例。

返回值:

备份实例

返回类型:

备份

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 从属性创建新的备份

参数:

attrs (dict) – 关键字参数,将用于创建一个 Backup,该对象由 Backup 类上的属性组成。

返回值:

备份创建的结果

返回类型:

备份

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)

将备份恢复到卷

参数:
  • backup – 该值可以是备份的 ID 或 Backup 实例

  • volume_id – 要恢复备份到的卷的 ID。

  • name – 用于创建新卷以进行恢复的名称。

返回值:

更新的备份实例

返回类型:

备份

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)

设置项目的默认类型。

参数:
  • project – 该值可以是项目的 ID,也可以是 Project 实例。

  • type – 该值可以是类型的 ID,也可以是 Type 实例。

返回值:

项目 ID 及其关联的默认类型的字典。

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 对象,包括 AbsoluteLimitRateLimit

返回类型:

限制

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 实例。

返回类型:

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

参数:

attrs (dict) – 关键字参数,将用于创建由 Group 类上的属性组成的 Group

返回值:

Group 创建的结果。

返回类型:

Group.

create_group_from_source(**attrs)

从源创建新的 Group

参数:

attrs (dict) – 关键字参数,将用于创建由 Group 类上的属性组成的 Group

返回值:

Group 创建的结果。

返回类型:

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 实例。

返回类型:

group_snapshot

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 将导致返回其他详细信息。

返回值:

一个 group_snapshot

引发:

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 创建的结果。

返回类型:

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)

更新组类型

参数:
  • group_type – 该值可以是 Group 类型的 ID,也可以是 GroupType 实例。

  • attrs (dict) – 要更新到组类型的属性。

返回值:

更新后的组类型。

返回类型:

GroupType

fetch_group_type_group_specs(group_type)

列出组类型的组规格。

参数:

group_type – 组类型的 ID 或 GroupType 实例。

返回值:

一个 GroupType

create_group_type_group_specs(group_type, group_specs)

为组类型创建组规格。

参数:
  • group_type – 组类型的 ID 或 GroupType 实例。

  • group_specs (dict) – 额外的规格字典

返回值:

一个 GroupType

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

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

返回类型:

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 – 要设置的日志级别,不区分大小写,允许的值为 INFOWARNINGERRORDEBUG

  • 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) – 如果设置为 False NotFoundException 将在快照不存在时引发。如果设置为 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)

从属性创建新的快照

参数:

attrs (dict) – 将用于创建 Snapshot 的关键字参数,由 Snapshot 类上的属性组成。

返回值:

快照创建的结果

返回类型:

快照

update_snapshot(snapshot, **attrs)

更新快照

参数:
  • snapshot – 快照的 ID 或 Snapshot 实例。

  • attrs (dict) – 要更新到快照的属性。

返回值:

更新后的快照

返回类型:

快照

delete_snapshot(snapshot, ignore_missing=True, force=False)

删除快照

参数:
  • snapshot – 该值可以是快照的 ID 或 Snapshot 实例。

  • ignore_missing (bool) – 如果设置为 False NotFoundException 将在快照不存在时引发。如果设置为 True,则尝试删除不存在的快照时不会设置任何异常。

  • force (bool) – 是否尝试强制删除快照。

返回值:

get_snapshot_metadata(snapshot)

返回快照的元数据字典

参数:

snapshot – 快照的 ID 或 Snapshot

返回值:

一个 Snapshot,其中包含快照的元数据。所有键和值都是 Unicode 文本。

返回类型:

快照

set_snapshot_metadata(snapshot, **metadata)

更新快照的元数据

参数:
  • snapshot – 快照的 ID 或 Snapshot

  • metadata (kwargs) – 要更新到快照元数据中的键/值对。此调用不会修改其他元数据。所有键和值都存储为 Unicode。

返回值:

一个 Snapshot,其中包含快照的元数据。所有键和值都是 Unicode 文本。

返回类型:

快照

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)

通过使用现有存储而不是分配新存储来创建快照。

参数:

attrs (dict) – 将用于创建 Snapshot 的关键字参数,由 Snapshot 类上的属性组成。

返回值:

快照创建的结果

返回类型:

快照

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)

创建新的传输记录

参数:
  • volume_id – 该值是卷的 ID。

  • name – 该值是传输的名称

  • attrs (dict) – 关键字参数,将用于创建包含传输类属性的 Transfer

返回值:

传输创建的结果

返回类型:

Transfer

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) – 可选的查询参数,用于发送以限制返回的传输。

返回值:

传输对象生成器。

accept_transfer(transfer_id, auth_key)

接受传输

参数:
  • transfer_id – 该值可以是传输的 ID 或 Transfer 实例。

  • auth_key – 用于验证卷传输的密钥。

返回值:

传输创建的结果

返回类型:

Transfer

类型操作

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)

检索卷类型生成器

返回值:

卷类型对象生成器。

create_type(**attrs)

从属性创建新类型

参数:

attrs (dict) – 关键字参数,将用于创建包含类型类属性的 Type

返回值:

类型创建的结果

返回类型:

类型

delete_type(type, ignore_missing=True)

删除类型

参数:
  • type – 该值可以是类型的 ID,也可以是 Type 实例。

  • ignore_missing (bool) – 当设置为 False 时,如果类型不存在,将引发 NotFoundException。当设置为 True 时,尝试删除不存在的类型时不会设置任何异常。

返回值:

update_type(type, **attrs)

更新类型

参数:
  • type – 该值可以是类型的 ID,也可以是 Type 实例。

  • attrs (dict) – 要更新到类型上的属性

返回值:

更新后的类型

返回类型:

类型

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 实例。

返回值:

一个 TypeEncryption

引发:

NotFoundException,当找不到资源时。

create_type_encryption(volume_type, **attrs)

从属性创建新的类型加密

参数:
  • volume_type – 该值可以是类型的 ID 或 Type 实例。

  • attrs (dict) – 关键字参数,将用于创建包含类型加密类属性的 TypeEncryption

返回值:

类型加密创建的结果

返回类型:

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) – 要更新到类型加密的属性。

返回值:

更新后的类型加密

返回类型:

TypeEncryption

卷操作

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)

从属性创建新卷

参数:

attrs (dict) – 将用于创建 Volume 的关键字参数,由 Volume 类上的属性组成。

返回值:

卷创建结果

返回类型:

Volume

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)

更新卷

参数:
  • volume – 卷的 ID 或 Volume 实例。

  • attrs (dict) – 要更新到卷上的属性。

返回值:

更新后的卷

返回类型:

Volume

get_volume_metadata(volume)

返回卷的元数据字典

参数:

volume – 卷的 ID 或 Volume

返回值:

带有卷元数据的 Volume。所有键和值都是 Unicode 文本。

返回类型:

Volume

set_volume_metadata(volume, **metadata)

更新卷的元数据

参数:
  • volume – 卷的 ID 或 Volume

  • metadata (kwargs) – 要更新到卷元数据中的键/值对。本次调用不会修改其他元数据。所有键和值都存储为 Unicode。

返回值:

带有卷元数据的 Volume。所有键和值都是 Unicode 文本。

返回类型:

Volume

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')

更改卷的类型。

参数:
  • volume – 该值可以是卷的 ID 或 Volume 实例。

  • new_type – 卷更改的新卷类型。该值可以是卷类型的 ID 或 Type 实例。

  • migration_policy (str) – 指定卷重新类型化时是否应迁移。可能的值为 on-demand 或 never。默认值: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。

参数:
  • volume – 该值可以是卷的 ID 或 Volume 实例。

  • snapshot – 该值可以是快照的 ID 或 Snapshot 实例。

返回值:

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)
通过使用现有存储而不是

分配新存储来创建卷。

参数:

attrs (dict) – 将用于创建 Volume 的关键字参数,由 Volume 类上的属性组成。

返回值:

卷创建结果

返回类型:

Volume

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 如果在指定秒数内未能转换为删除状态。