Compute API¶
有关如何使用计算的详细信息,请参阅 使用 OpenStack 计算
计算类¶
计算高级接口可通过 Connection 对象的 compute 成员获得。只有检测到服务时,才会添加 compute 成员。
服务器操作¶
- class openstack.compute.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_server(**attrs)
从属性创建新服务器
- delete_server(server, ignore_missing=True, force=False)
删除服务器
- 参数:
server – 该值可以是服务器的 ID 或
Server实例。ignore_missing (bool) – 当设置为
False时,如果服务器不存在,将引发NotFoundException。当设置为True时,尝试删除不存在的服务器时不会设置任何异常force (bool) – 当设置为
True时,将立即强制删除服务器。
- 返回值:
无
- find_server(name_or_id, ignore_missing=True, *, details=True, all_projects=False)
查找单个服务器
- 参数:
name_or_id – 服务器的名称或 ID。
ignore_missing (bool) – 当设置为
False时,如果资源不存在,将引发NotFoundException。当设置为True时,尝试查找不存在的资源时将返回 None。details (bool) – 当设置为
False时,将返回仅包含基本数据的实例。默认情况下,True将导致返回包含完整数据的实例。all_projects (bool) – 当设置为
True时,跨所有项目按名称搜索服务器。默认情况下仅限管理员使用。
- 返回值:
一个
Server或 None- 引发:
NotFoundException,当找不到资源时。- 引发:
DuplicateResource当找到多个资源时。
- get_server(server)
获取单个服务器
- 参数:
server – 该值可以是服务器的 ID 或
Server实例。- 返回值:
一个
Server- 引发:
NotFoundException,当找不到资源时。
- servers(details=True, all_projects=False, **query)
检索服务器生成器
- 参数:
details (bool) – 当设置为
False时,将返回仅包含基本数据的实例。默认情况下,True将导致返回包含完整数据的实例。all_projects (bool) – 当设置为
True时,将列出所有项目的服务器。默认情况下仅限管理员使用。query (kwargs) – 可选的查询参数,将发送到限制返回的服务器。可用的参数可以在 https://docs.openstack.org/api-ref/compute/#list-servers 下查看
- 返回值:
服务器实例的生成器。
- update_server(server, **attrs)
更新服务器
- create_server_image(server, name, metadata=None, wait=False, timeout=120)
从服务器创建镜像
- backup_server(server, name, backup_type, rotation)
备份服务器
- 参数:
server – 服务器的 ID 或
Server实例。name – 备份镜像的名称。
backup_type – 备份的类型,例如,daily。
rotation – 备份镜像的轮换,当镜像数量超过轮换数量时,最旧的镜像将被删除。
- 返回值:
无
- get_server_metadata(server)
返回服务器的元数据字典
- set_server_metadata(server, **metadata)
更新服务器的元数据
- delete_server_metadata(server, keys=None)
删除服务器的元数据
注意:此方法将为 keys 中的每个键执行一个 HTTP DELETE 请求。
- 参数:
server – 服务器的 ID 或
Server实例。keys (list) – 要删除的键。如果留空,将删除完整的元数据。
- 返回类型:
无
- wait_for_server(server, status='ACTIVE', failures=None, interval=2, wait=120, callback=None)
等待服务器达到特定状态。
- 参数:
- 返回值:
成功时返回资源。
- 引发:
ResourceTimeout如果在指定秒数内未能过渡到期望状态。- 引发:
ResourceFailure如果资源已过渡到其中一个失败状态。- 引发:
AttributeError如果资源没有status属性。
网络操作¶
- class openstack.compute.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)
- fetch_server_security_groups(server)
获取服务器的安全组详细信息。
- add_security_group_to_server(server, security_group)
将安全组添加到服务器
- 参数:
server – 服务器的 ID 或
Server实例。security_group – 安全组的 ID 或名称,或者一个
SecurityGroup实例。
- 返回值:
无
- remove_security_group_from_server(server, security_group)
从服务器移除安全组
- 参数:
server – 服务器的 ID 或
Server实例。security_group – 安全组的 ID 或名称,或者一个
SecurityGroup实例。
- 返回值:
无
- add_fixed_ip_to_server(server, network_id)
为服务器实例添加一个固定的 IP 地址。
- 参数:
server – 服务器的 ID 或
Server实例。network_id – 要分配固定 IP 地址的网络 ID。
- 返回值:
无
- remove_fixed_ip_from_server(server, address)
从服务器实例移除一个固定的 IP 地址。
- 参数:
server – 服务器的 ID 或
Server实例。address – 要从服务器解关联的固定 IP 地址。
- 返回值:
无
- add_floating_ip_to_server(server, address, fixed_address=None)
为服务器实例添加一个浮动 IP 地址。
- 参数:
server – 服务器的 ID 或
Server实例。address – 要添加到服务器的浮动 IP 地址。
fixed_address – 要与浮动 IP 地址关联的固定 IP 地址。当服务器连接到多个网络时使用。
- 返回值:
无
- remove_floating_ip_from_server(server, address)
从服务器实例移除一个浮动 IP 地址。
- 参数:
server – 服务器的 ID 或
Server实例。address – 要从服务器解关联的浮动 IP 地址。
- 返回值:
无
启动、停止等¶
- class openstack.compute.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)
- reboot_server(server, reboot_type)
重启服务器
- 参数:
server – 服务器的 ID 或
Server实例。reboot_type (str) – 要执行的重启类型。“HARD”和“SOFT”是当前选项。
- 返回值:
无
- pause_server(server)
暂停服务器并将其状态更改为
PAUSED。- 参数:
server – 服务器的 ID 或
Server实例。- 返回值:
无
- unpause_server(server)
取消暂停已暂停的服务器并将其状态更改为
ACTIVE。- 参数:
server – 服务器的 ID 或
Server实例。- 返回值:
无
- suspend_server(server)
挂起服务器并将其状态更改为
SUSPENDED。- 参数:
server – 服务器的 ID 或
Server实例。- 返回值:
无
- resume_server(server)
恢复已挂起的服务器并将其状态更改为
ACTIVE。- 参数:
server – 服务器的 ID 或
Server实例。- 返回值:
无
- lock_server(server, locked_reason=None)
锁定服务器。
- 参数:
server – 服务器的 ID 或
Server实例。locked_reason – 锁定服务器的原因。长度限制为 255 个字符。
- 返回值:
无
- unlock_server(server)
解锁锁定的服务器。
- 参数:
server – 服务器的 ID 或
Server实例。- 返回值:
无
- rescue_server(server, admin_pass=None, image_ref=None)
将服务器置于救援模式并将其状态更改为
RESCUE。- 参数:
server – 服务器的 ID 或
Server实例。admin_pass – 救援服务器的密码。如果省略此参数,则操作将生成新密码。
image_ref – 用于救援服务器的镜像引用。可以是镜像 ID 或其完整 URL。如果省略此参数,将使用基本镜像引用。
- 返回值:
无
- unrescue_server(server)
取消救援服务器并将其状态更改为
ACTIVE。- 参数:
server – 服务器的 ID 或
Server实例。- 返回值:
无
- evacuate_server(server, host=None, admin_pass=None, force=None, *, on_shared_storage=None)
将服务器从故障主机迁移到新主机。
- 参数:
server – 服务器的 ID 或
Server实例。host – 一个可选参数,用于指定要迁移服务器的主机名称或 ID。
admin_pass – 一个可选参数,用于指定访问已迁移或重建服务器的管理员密码。
force – 通过不让调度器验证提供的目标主机来强制执行迁移。(API 版本 2.29 中新增)。
on_shared_storage – 主机是否使用共享存储。(可选)(仅在 API 版本 2.14 之前支持)
- 返回值:
无
- start_server(server)
启动已停止的服务器并将其状态更改为
ACTIVE。- 参数:
server – 服务器的 ID 或
Server实例。- 返回值:
无
- stop_server(server)
停止正在运行的服务器并将其状态更改为
SHUTOFF。- 参数:
server – 服务器的 ID 或
Server实例。- 返回值:
无
- restore_server(server)
恢复一个软删除的服务器。
- 参数:
server – 服务器的 ID 或
Server实例。- 返回值:
无
- shelve_server(server)
将服务器置于搁置状态。
所有相关的数据和资源都保留,但仍存在于内存中的内容不会保留。策略默认设置仅允许具有管理员角色或服务器所有者执行此操作。云提供商可以更改此权限。
- 参数:
server – 服务器的 ID 或
Server实例。- 返回值:
无
- unshelve_server(server, *, host=None, availability_zone=<openstack.types.Unset object>)
取消搁置或恢复搁置的服务器。
策略默认设置仅允许具有管理员角色或服务器所有者执行此操作。云提供商可以更改此权限。
- 参数:
server – 服务器的 ID 或
Server实例。host – 一个可选参数,用于指定要取消搁置到的计算主机。(API 版本 2.91 中新增)。
- 返回值:
无
- migrate_server(server, host=None)
将服务器从一个主机迁移到另一个主机
- 参数:
server – 服务器的 ID 或
Server实例。host (str) – 要迁移服务器到的主机。
- 返回值:
无
- live_migrate_server(server, host=None, force=False, block_migration=None, disk_over_commit=None)
将服务器从一个主机实时迁移到目标主机
- 参数:
server – 服务器的 ID 或
Server实例。host (str) – 要迁移服务器到的主机。如果 Nova 服务太旧,则 host 参数意味着 force=True,这将导致 Nova 调度器被绕过。在这样的云中,如果未提供
force,则会引发ValueError。force (bool) – 强制执行实时迁移,方法是不让调度器验证提供的目标主机。这不安全,不建议使用。
block_migration – 执行到目标主机的块实时迁移,由调度器决定。可以是“auto”、“True”或“False”。某些云太旧,不支持“auto”,在这种情况下会引发 ValueError。
disk_over_commit – 是否允许在目标主机上进行磁盘过度承诺。(可选)
- 返回值:
无
修改服务器¶
- class openstack.compute.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)
- change_server_password(server, new_password)
更改管理员密码
- 参数:
server – 服务器的 ID 或
Server实例。new_password (str) – 要设置的新密码。
- 返回值:
无
- get_server_password(server)
获取管理员密码
- 参数:
server – 服务器的 ID 或
Server实例。- 返回值:
加密的密码。
- reset_server_state(server, state)
重置服务器状态
- 参数:
server – 服务器可以是服务器的 ID 或
Server。state – 要设置的服务器状态,“active”或“error”是有效选项。
- 返回值:
无
- rebuild_server(server, image, **attrs)
重建服务器
- 参数:
server – 服务器的 ID 或
Server实例。name (str) – 服务器的名称
admin_password (str) – 管理员密码
preserve_ephemeral (bool) – 指示是否在重建时保留临时分区。默认值:False
image (str) – 用于重建的镜像 ID。默认值:None
access_ipv4 (str) – 要重建的 IPv4 地址。默认值:None
access_ipv6 (str) – 要重建的 IPv6 地址。默认值:None
metadata (dict) – 要重建的元数据字典。默认值:None
personality – 一个字典列表,每个字典包含一个 path 和一个 contents 键,将在启动时注入到重建的服务器中。默认值:None
- 返回值:
重建的
Server实例。
- resize_server(server, flavor)
调整服务器大小
- confirm_server_resize(server)
确认服务器大小调整
- 参数:
server – 服务器的 ID 或
Server实例。- 返回值:
无
- revert_server_resize(server)
撤销服务器大小调整
- 参数:
server – 服务器的 ID 或
Server实例。- 返回值:
无
镜像操作¶
- class openstack.compute.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)
- delete_image(image, ignore_missing=True)
删除镜像
- 参数:
image – 该值可以是镜像的 ID,也可以是
Image实例。ignore_missing (bool) – 当设置为
False时,如果镜像不存在,将引发NotFoundException。当设置为True时,尝试删除不存在的镜像时不会引发异常。
- 返回值:
无
- find_image(name_or_id, ignore_missing=True)
查找单个镜像
- 参数:
name_or_id – 镜像的名称或 ID。
ignore_missing (bool) – 当设置为
False时,如果资源不存在,将引发NotFoundException。当设置为True时,尝试查找不存在的资源时将返回 None。
- 返回值:
一个
Image或 None- 引发:
NotFoundException,当找不到资源时。- 引发:
DuplicateResource当找到多个资源时。
- get_image(image)
获取单个镜像
- 参数:
image – 该值可以是镜像的 ID,也可以是
Image实例。- 返回值:
一个
Image- 引发:
NotFoundException,当找不到资源时。
- images(details=True, **query)
返回镜像生成器
- 参数:
details (bool) – 当
True时,返回带有所有可用属性的Image对象,否则仅返回基本属性。默认值: ``True``query (kwargs) – 可选的查询参数,用于限制返回的资源。
- 返回值:
镜像对象生成器
- get_image_metadata(image)
返回镜像的元数据字典
- set_image_metadata(image, **metadata)
更新镜像的元数据
- delete_image_metadata(image, keys=None)
删除镜像的元数据
注意:此方法将为 keys 中的每个键执行一个 HTTP DELETE 请求。
- 参数:
image – 该值可以是镜像的 ID,也可以是
Image实例。keys (list) – 要删除的键。如果留空,将删除完整的元数据。
- 返回类型:
无
风味操作¶
- class openstack.compute.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_flavor(name_or_id, ignore_missing=True, *, get_extra_specs=False, **query)
查找单个风味
- 参数:
名称或 ID – 风味的名称或 ID。
ignore_missing (bool) – 当设置为
False时,如果资源不存在,将引发NotFoundException。当设置为True时,尝试查找不存在的资源时将返回 None。get_extra_specs (bool) – 当设置为
True且响应中不存在 extra_specs 时,将调用额外的 API 调用来获取 extra_specs。query (kwargs) – 可选的查询参数,用于限制返回的 flavor。
- 返回值:
一个
Flavor或 None- 引发:
NotFoundException,当找不到资源时。- 引发:
DuplicateResource当找到多个资源时。
- create_flavor(**attrs)
从属性创建新的 flavor
- delete_flavor(flavor, ignore_missing=True)
Delete a flavor
- 参数:
flavor – 该值可以是 flavor 的 ID,也可以是
Flavor实例。ignore_missing (bool) – 当设置为
False时,如果 flavor 不存在,将引发NotFoundException。当设置为True时,尝试删除不存在的 flavor 时不会设置任何异常。
- 返回值:
无
- get_flavor(flavor, get_extra_specs=False)
获取单个 flavor
- 参数:
flavor – 该值可以是 flavor 的 ID,也可以是
Flavor实例。get_extra_specs (bool) – 当设置为
True且响应中不存在 extra_specs 时,将调用额外的 API 调用来获取 extra_specs。
- 返回值:
一个
Flavor- 引发:
NotFoundException,当找不到资源时。
- flavors(details=True, get_extra_specs=False, **query)
返回 flavor 的生成器
- 参数:
details (bool) – 当
True时,返回带有附加属性的Flavor对象。get_extra_specs (bool) – 当设置为
True且响应中不存在 extra_specs 时,将调用额外的 API 调用来获取 extra_specs。query (kwargs) – 可选的查询参数,用于限制返回的 flavor。
- 返回值:
风味对象生成器
- flavor_add_tenant_access(flavor, tenant)
添加 tenant/项目对 flavor 的访问权限。
- flavor_remove_tenant_access(flavor, tenant)
删除 tenant/项目对 flavor 的访问权限。
- get_flavor_access(flavor)
列出具有对私有 flavor 访问权限的 tenants
- 参数:
flavor – 可以是 flavor 的 ID,也可以是
Flavor实例。- 返回值:
包含 flavor_id 和 tenant_id 属性的字典列表。
- fetch_flavor_extra_specs(flavor)
列出 flavor 的 Extra Specs
- create_flavor_extra_specs(flavor, extra_specs)
列出 flavor 的 Extra Specs
- get_flavor_extra_specs_property(flavor, prop)
获取 flavor 的特定 Extra Spec 属性
- 参数:
flavor – 可以是 flavor 的 ID,也可以是
Flavor实例。prop (str) – 属性名称。
- 返回值:
请求属性的字符串值。
- update_flavor_extra_specs_property(flavor, prop, val)
更新 flavor 的特定 Extra Spec 属性
- 参数:
flavor – 可以是 flavor 的 ID,也可以是
Flavor实例。prop (str) – 属性名称。
val (str) – 属性值。
- 返回值:
请求属性的字符串值。
- delete_flavor_extra_specs_property(flavor, prop)
删除 flavor 的特定 Extra Spec 属性
- 参数:
flavor – 可以是 flavor 的 ID,也可以是
Flavor实例。prop (str) – 属性名称。
- 返回值:
无
服务操作¶
- class openstack.compute.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)
- update_service_forced_down(service, host=None, binary=None, forced=True)
更新 service forced_down 信息
- 参数:
service – 可以是 service 的 ID,也可以是
Service实例。host (str) – service 运行的主机。
binary (str) – service 的名称。
forced (bool) – 服务在被 fencing 之后,是否被管理员手动强制关闭。
- 返回值:
更新的服务实例
- 返回类型:
class: ~openstack.compute.v2.service.Service
- disable_service(service, host=None, binary=None, disabled_reason=None)
禁用服务
- 参数:
service – 可以是 service 的 ID,也可以是
Service实例。host (str) – service 运行的主机。
binary (str) – service 的名称。
disabled_reason (str) – 强制关闭服务的理由。
- 返回值:
更新的服务实例
- 返回类型:
class: ~openstack.compute.v2.service.Service
- enable_service(service, host=None, binary=None)
启用服务
- 参数:
service – 可以是 service 的 ID,也可以是
Service实例。host (str) – service 运行的主机。
binary (str) – service 的名称。
- 返回值:
更新的服务实例
- 返回类型:
class: ~openstack.compute.v2.service.Service
- services(**query)
返回服务生成器
- Params dict query:
查询参数
- 返回值:
service 的生成器
- 返回类型:
class: ~openstack.compute.v2.service.Service
- find_service(name_or_id, ignore_missing=True, **query)
从名称或 ID 查找 service,以获取相应的详细信息
- 参数:
name_or_id – service 的名称或 ID
ignore_missing (bool) – 当设置为
False时,如果资源不存在,将引发NotFoundException。当设置为True时,尝试查找不存在的资源时将返回 None。query (dict) – 附加属性,例如 ‘host’
- 返回值:
一个: class:~openstack.compute.v2.service.Service 或 None
- 引发:
NotFoundException,当找不到资源时。- 引发:
DuplicateResource当找到多个资源时。
- delete_service(service, ignore_missing=True)
删除服务
- 参数:
service – 该值可以是 service 的 ID,也可以是
Service实例。ignore_missing (bool) – 当设置为
False时,如果 service 不存在,将引发NotFoundException。当设置为True时,尝试删除不存在的 service 时不会设置任何异常。
- 返回值:
无
卷附件操作¶
- class openstack.compute.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_volume_attachment(server, volume=None, **attrs)
从属性创建新的卷附件
- 参数:
server – 该值可以是服务器的 ID,也可以是
Server实例,卷将附加到该服务器。volume – 该值可以是卷的 ID,也可以是
Volume实例。attrs (dict) – 关键字参数,将用于创建
VolumeAttachment,包含 VolumeAttachment 类上的属性。
- 返回值:
卷附件创建的结果
- 返回类型:
- update_volume_attachment(server, volume, volume_id=None, **attrs)
更新卷附件
请注意,底层的 API 需要卷 ID,而不是卷附加 ID。目前无法通过自身的 ID 更新卷附加。
- delete_volume_attachment(server, volume, ignore_missing=True)
删除卷附加
请注意,底层的 API 需要卷 ID,而不是卷附加 ID。目前无法通过自身的 ID 删除卷附加。
- 参数:
server – 该值可以是服务器的 ID,也可以是
Server实例,卷将附加到该服务器。volume – 该值可以是卷的 ID 或
Volume实例。ignore_missing (bool) – 如果设置为
False,当卷附加不存在时,将引发NotFoundException。如果设置为True,则在尝试删除不存在的卷附加时不会设置任何异常。
- 返回值:
无
- get_volume_attachment(server, volume)
获取单个卷附加
请注意,底层的 API 需要卷 ID,而不是卷附加 ID。目前无法通过自身的 ID 检索卷附加。
- 参数:
- 返回值:
- 引发:
NotFoundException,当找不到资源时。
- volume_attachments(server, **query)
返回卷附加生成器
- 参数:
server – 服务器可以是服务器的 ID 或
Server。- Params dict query:
查询参数
- 返回值:
VolumeAttachment 对象生成器
- 返回类型:
密钥对操作¶
- class openstack.compute.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_keypair(**attrs)
从属性创建新的密钥对
- delete_keypair(keypair, ignore_missing=True, user_id=None)
删除密钥对
- 参数:
keypair – 该值可以是密钥对的 ID 或
Keypair实例。ignore_missing (bool) – 如果设置为
False,当密钥对不存在时,将引发NotFoundException。如果设置为True,则在尝试删除不存在的密钥对时不会设置任何异常。user_id (str) – 拥有密钥对的可选用户 ID
- 返回值:
无
- get_keypair(keypair, user_id=None)
获取单个密钥对
- 参数:
keypair – 该值可以是密钥对的 ID 或
Keypair实例。user_id (str) – 拥有密钥对的可选用户 ID
- 返回值:
一个
Keypair- 引发:
NotFoundException,当找不到资源时。
- find_keypair(name_or_id, ignore_missing=True, *, user_id=None)
查找单个密钥对
- 参数:
name_or_id – 密钥对的名称或 ID。
ignore_missing (bool) – 当设置为
False时,如果资源不存在,将引发NotFoundException。当设置为True时,尝试查找不存在的资源时将返回 None。user_id (str) – 拥有密钥对的可选用户 ID
- 返回值:
一个
Keypair或 None- 引发:
NotFoundException,当找不到资源时。- 引发:
DuplicateResource当找到多个资源时。
- keypairs(**query)
返回密钥对生成器
- 参数:
query (kwargs) – 可选的查询参数,用于限制返回的资源。
- 返回值:
密钥对对象生成器
- 返回类型:
服务器 IP¶
- class openstack.compute.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)
服务器组操作¶
- class openstack.compute.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_server_group(**attrs)
从属性创建新的服务器组
- 参数:
attrs (dict) – 将用于创建
ServerGroup的关键字参数,包含 ServerGroup 类上的属性。- 返回值:
服务器组创建的结果
- 返回类型:
- delete_server_group(server_group, ignore_missing=True)
删除服务器组
- 参数:
server_group – 该值可以是服务器组的 ID 或
ServerGroup实例。ignore_missing (bool) – 如果设置为
False,当服务器组不存在时,将引发NotFoundException。如果设置为True,则在尝试删除不存在的服务器组时不会设置任何异常。
- 返回值:
无
- find_server_group(name_or_id, ignore_missing=True, *, all_projects=False)
查找单个服务器组
- 参数:
name_or_id – 服务器组的名称或 ID。
ignore_missing (bool) – 当设置为
False时,如果资源不存在,将引发NotFoundException。当设置为True时,尝试查找不存在的资源时将返回 None。all_projects (bool) – 如果设置为
True,则跨所有项目按名称搜索服务器组。请注意,这可能会导致重复的概率更高。默认情况下仅限管理员。
- 返回值:
一个
ServerGroup或 None- 引发:
NotFoundException,当找不到资源时。- 引发:
DuplicateResource当找到多个资源时。
- get_server_group(server_group)
获取单个服务器组
- 参数:
server_group – 该值可以是服务器组的 ID 或
ServerGroup实例。- 返回值:
一个
ServerGroup对象。- 引发:
NotFoundException,当找不到资源时。
- server_groups(*, all_projects=False, **query)
返回服务器组生成器
- 参数:
all_projects (bool) – 如果设置为
True,则列出所有项目的服务器组。默认情况下仅限管理员。query (kwargs) – 可选的查询参数,用于限制返回的资源。
- 返回值:
ServerGroup 对象生成器
- 返回类型:
服务器接口操作¶
- class openstack.compute.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_server_interface(server, **attrs)
从属性创建新的服务器接口
- 参数:
server – 服务器可以是服务器的 ID 或属于该接口的
Server实例。attrs (dict) – 将用于创建
ServerInterface的关键字参数,包含 ServerInterface 类上的属性。
- 返回值:
服务器接口创建的结果
- 返回类型:
- delete_server_interface(server_interface, server=None, ignore_missing=True)
删除服务器接口
- 参数:
server_interface – 该值可以是服务器接口的 ID 或
ServerInterface实例。server – 当 ServerInterface ID 作为值提供时,需要指定此参数。它可以是接口所属的服务器的 ID 或
Server实例。ignore_missing (bool) – 如果设置为
False,当服务器接口不存在时,将引发NotFoundException。如果设置为True,则在尝试删除不存在的服务器接口时不会设置任何异常。
- 返回值:
无
- get_server_interface(server_interface, server=None)
获取单个服务器接口
- 参数:
server_interface – 该值可以是服务器接口的 ID 或
ServerInterface实例。server – 当 ServerInterface ID 作为值提供时,需要指定此参数。它可以是接口所属的服务器的 ID 或
Server实例。
- 返回值:
- 引发:
NotFoundException,当找不到资源时。
- server_interfaces(server, **query)
返回服务器接口的生成器
- 参数:
server – 服务器可以是服务器的 ID 或
Server。query – 可选的查询参数,用于发送到服务器以限制返回的资源。
- 返回值:
ServerInterface 对象的生成器
- 返回类型:
服务器标签操作¶
- class openstack.compute.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)
- add_tag_to_server(server, tag)
向服务器添加标签。
- 参数:
server – 服务器的 ID 或
Server实例。tag – 要添加的标签。
- 返回值:
无
- remove_tag_from_server(server, tag)
从服务器移除标签。
- 参数:
server – 服务器的 ID 或
Server实例。tag – 要移除的标签。
- 返回值:
无
- remove_tags_from_server(server)
移除服务器的所有标签。
- 参数:
server – 服务器的 ID 或
Server实例。tag – 要移除的标签。
- 返回值:
无
可用区操作¶
- class openstack.compute.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)
- availability_zones(details=False)
返回可用区的生成器
- 参数:
details (bool) – 返回可用区额外详细信息。默认值为 False,因为它通常需要额外的权限。
- 返回值:
可用区生成器
- 返回类型:
限制操作¶
- class openstack.compute.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(**query)
检索应用于项目帐户的限制
- 返回值:
Limits 对象,包括
AbsoluteLimits和RateLimits- 返回类型:
Hypervisor 操作¶
- class openstack.compute.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)
- hypervisors(details=False, **query)
返回 hypervisor 的生成器
- 参数:
details (bool) – 当设置为默认值
False时,Hypervisor实例将只填充基本信息。query (kwargs) – 可选的查询参数,用于限制返回的资源。
- 返回值:
hypervisor 生成器
- 返回类型:
class: ~openstack.compute.v2.hypervisor.Hypervisor
- find_hypervisor(name_or_id, ignore_missing=True, *, details=True)
查找单个 hypervisor
- 参数:
name_or_id – hypervisor 的名称或 ID
ignore_missing (bool) – 当设置为
False时,如果资源不存在,将引发NotFoundException。当设置为True时,尝试查找不存在的资源时将返回 None。details (bool) – 当设置为
False时,将返回仅包含基本数据的实例。默认情况下,True将导致返回包含完整数据的实例。
- 返回值:
One: class:~openstack.compute.v2.hypervisor.Hypervisor 或 None
- 引发:
NotFoundException,当找不到资源时。- 引发:
DuplicateResource当找到多个资源时。
- get_hypervisor(hypervisor)
获取单个 hypervisor
- 参数:
hypervisor – 该值可以是 hypervisor 的 ID 或
Hypervisor实例。- 返回值:
一个
Hypervisor对象。- 引发:
NotFoundException,当找不到资源时。
- get_hypervisor_uptime(hypervisor)
获取 hypervisor 的运行时间信息
- 参数:
hypervisor – 该值可以是 hypervisor 的 ID 或
Hypervisor实例。- 返回值:
一个
Hypervisor对象。- 引发:
NotFoundException,当找不到资源时。
扩展操作¶
- class openstack.compute.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_extension(name_or_id, ignore_missing=True)
查找单个扩展
- 参数:
name_or_id – 扩展的名称或 ID。
ignore_missing (bool) – 当设置为
False时,如果资源不存在,将引发NotFoundException。当设置为True时,尝试查找不存在的资源时将返回 None。
- 返回值:
One
Extension或 None- 引发:
NotFoundException,当找不到资源时。- 引发:
DuplicateResource当找到多个资源时。
- extensions()
检索扩展生成器
- 返回值:
扩展实例生成器。
- 返回类型:
QuotaClassSet 操作¶
- class openstack.compute.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 – 要么是配额类集的 ID(仅支持
default),要么是QuotaClassSet实例。attrs – 要更新由
quota_class_set表示的 QuotaClassSet 上的属性。
- 返回值:
更新的 QuotaSet
- 返回类型:
QuotaSet 操作¶
- class openstack.compute.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) – 要使用的其他查询参数。
- 返回值:
One
QuotaSet- 引发:
NotFoundException,当找不到资源时。
- get_quota_set_defaults(project)
显示项目的 QuotaSet 默认值。
- 参数:
project – 项目的
Project的 ID 或实例,用于检索配额- 返回值:
One
QuotaSet- 引发:
NotFoundException,当找不到资源时。
- revert_quota_set(project, **query)
重置项目/用户的配额。
- 参数:
project – 项目的 ID 或
Project实例,用于重置该项目的配额。query (dict) – 附加参数,用于指定查询条件。
- 返回值:
无
- update_quota_set(project, **attrs, user=None)
更新配额集合。
- 参数:
project – 项目的 ID 或
Project实例,用于重置该项目的配额。user_id – 可选的用户 ID,用于设置配额。
attrs – 要更新的配额集合的属性,由
quota_set表示。
- 返回值:
更新的 QuotaSet
- 返回类型:
服务器迁移操作¶
- class openstack.compute.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)
- abort_server_migration(server_migration, server, ignore_missing=True)
中止正在进行的服务器迁移
- 参数:
server_migration – 该值可以是服务器迁移的 ID 或
ServerMigration实例。server – 当提供 ServerMigration ID 时,需要指定此参数。它可以是服务器的 ID 或
Server实例,该迁移属于该服务器。ignore_missing (bool) – 当设置为
False时,如果服务器迁移不存在,将引发NotFoundException。当设置为True时,尝试删除不存在的服务器迁移时不会设置任何异常。
- 返回值:
无
- force_complete_server_migration(server_migration, server=None)
强制完成正在进行的服务器迁移
- 参数:
server_migration – 该值可以是服务器迁移的 ID 或
ServerMigration实例。server – 当提供 ServerMigration ID 时,需要指定此参数。它可以是服务器的 ID 或
Server实例,该迁移属于该服务器。
- 返回值:
无
- get_server_migration(server_migration, server, ignore_missing=True)
获取单个服务器迁移
- 参数:
server_migration – 该值可以是服务器迁移的 ID 或
ServerMigration实例。server – 当提供 ServerMigration ID 时,需要指定此参数。它可以是服务器的 ID 或
Server实例,该迁移属于该服务器。ignore_missing (bool) – 当设置为
False时,如果服务器迁移不存在,将引发NotFoundException。当设置为True时,尝试删除不存在的服务器迁移时不会设置任何异常。
- 返回值:
One
ServerMigration- 引发:
NotFoundException,当找不到资源时。
- server_migrations(server)
返回服务器的迁移生成器。
- 参数:
server – 服务器可以是服务器的 ID 或
Server。- 返回值:
ServerMigration 对象生成器
- 返回类型:
迁移操作¶
- class openstack.compute.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)
- migrations(**query)
返回所有服务器的迁移生成器。
- 参数:
query (kwargs) – 可选的查询参数,用于限制返回的迁移。
- 返回值:
Migration 对象生成器
- 返回类型:
交互式控制台¶
- class openstack.compute.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_server_remote_console(server, **attrs)
在服务器上创建远程控制台。
- 参数:
server – 服务器的 ID 或
Server实例。- 返回值:
- get_server_console_url(server, console_type)
在服务器上创建远程控制台。
- 参数:
server – 服务器的 ID 或
Server实例。console_type – 控制台连接的类型。
- 返回值:
包含控制台类型和 URL 的字典
- validate_console_auth_token(console_token)
查找控制台身份验证令牌的控制台连接信息。
- 参数:
console_token – 从 get_server_console_url 的 URL 中返回的控制台身份验证令牌。
- 返回值:
包含连接详细信息的字典,因控制台类型而异。
- get_server_console_output(server, length=None)
返回服务器的控制台输出。
- 参数:
server – 服务器的 ID 或
Server实例。length – 可选的行数,从控制台日志的末尾获取。如果未指定,将返回所有行。
- 返回值:
控制台输出作为字典。控制字符将被转义以创建有效的 JSON 字符串。
- create_console(server, console_type, console_protocol=None)
在服务器上创建远程控制台。
当支持的微版本高于 2.6 时,创建远程控制台,否则发出弃用的调用以获取服务器控制台。
- 参数:
server – 服务器的 ID 或
Server实例。console_type – 远程控制台的类型。支持的值如下:* novnc * spice-html5 * rdp-html5 * serial * webmks(在 2.8 之后支持)* spice-direct(在 2.99 之后支持)
console_protocol – 可选的控制台协议(仅在微版本 2.6 之后才受尊重)。
- 返回值:
包含控制台类型、连接详细信息(URL)和可选协议的字典。
辅助函数¶
- class openstack.compute.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_delete(res, interval=2, wait=120, callback=None)
等待资源被删除。
- 参数:
res – 要等待被删除的资源。
interval – 两次连续检查之间的秒数。
wait – 在更改之前等待的最大秒数。
callback – 回调函数。将使用单个值(进度)调用此函数,该值是从 0-100 的百分比值。
- 返回值:
成功时返回资源。
- 引发:
ResourceTimeout如果在指定秒数内未能转换为删除状态。