Compute API¶
这是 Nova 项目提供的 OpenStack Compute API 的参考文档。要了解有关 OpenStack Compute API 概念的更多信息,请参阅API 指南。
API 版本¶
为了随着时间的推移为用户带来新功能,Nova API 支持版本控制。Nova 中有两种类型的版本。
‘’主要版本’’, 它们拥有专用的 URL
“微版本”(microversions),可以通过使用
X-OpenStack-Nova-API-Version标头请求,或者自微版本 2.27 起,也可以使用OpenStack-API-Version标头。
有关微版本的更多详细信息,请参阅:微版本
注意
每个发行版支持的最大微版本不同。请参阅:API 微版本历史记录 以获取 API 微版本历史记录的详细信息。
版本 API 的工作方式与其他 API 不同,因为它们不需要身份验证。
这将获取有关部署中所有已知主要 API 版本的所有信息。将为每个 API 版本提供指向更具体信息的链接,以及有关支持的最小和最大微版本的信息。
正常响应代码:200
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
versions |
body |
数组 |
一个描述可用 API 版本的版本对象列表。 |
id |
body |
字符串 |
版本的一个常用名称。仅供参考,不具有实际语义意义。 |
links |
body |
数组 |
指向相关资源的链接。有关更多信息,请参阅API 指南 / 链接和引用。 |
min_version |
body |
字符串 |
如果此版本的 API 支持微版本,则支持的最小微版本。如果不支持微版本,则为空字符串。 |
status |
body |
字符串 |
此 API 版本的状态。它可以是以下之一:
|
updated |
body |
字符串 |
这是一个固定字符串。在版本 2.0 中它是 注意 这是遗留字段,不提供任何有用信息。它将被弃用并在将来移除。 |
版本 |
body |
字符串 |
如果此版本的 API 支持微版本,则支持的最高微版本。如果不支持微版本,则为空字符串。 |
响应示例¶
这演示了支持最新微版本的服务器的预期响应。在查询 OpenStack 环境时,通常会发现 v2.1 API 的当前微版本低于下方列出的版本。
{
"versions": [
{
"id": "v2.0",
"links": [
{
"href": "http://openstack.example.com/v2/",
"rel": "self"
}
],
"status": "DEPRECATED",
"version": "",
"min_version": "",
"updated": "2025-07-04T12:00:00Z"
},
{
"id": "v2.1",
"links": [
{
"href": "http://openstack.example.com/v2.1/",
"rel": "self"
}
],
"status": "CURRENT",
"version": "2.100",
"min_version": "2.1",
"updated": "2013-07-23T11:33:21Z"
}
]
}
获取其根目录的特定 API 的详细信息。几乎所有这些信息都存在于 API 根目录,因此这主要是一个冗余操作。
正常响应代码:200
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
api_version |
路径 |
字符串 |
从 |
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
版本 |
body |
字符串 |
版本。 |
id |
body |
字符串 |
版本的一个常用名称。仅供参考,不具有实际语义意义。 |
links |
body |
数组 |
指向相关资源的链接。有关更多信息,请参阅API 指南 / 链接和引用。 |
media-types |
body |
数组 |
媒体类型。这是一个固定字典的数组。 注意 这是遗留字段,不提供任何有用信息。它将被弃用并在将来移除。 |
min_version |
body |
字符串 |
如果此版本的 API 支持微版本,则支持的最小微版本。如果不支持微版本,则为空字符串。 |
status |
body |
字符串 |
此 API 版本的状态。它可以是以下之一:
|
updated |
body |
字符串 |
这是一个固定字符串。在版本 2.0 中它是 注意 这是遗留字段,不提供任何有用信息。它将被弃用并在将来移除。 |
版本 |
body |
字符串 |
如果此版本的 API 支持微版本,则支持的最高微版本。如果不支持微版本,则为空字符串。 |
响应示例¶
这是在相对较新的服务器上执行 GET /v2.1/ 的示例。
{
"version": {
"id": "v2.1",
"links": [
{
"href": "http://openstack.example.com/v2.1/",
"rel": "self"
},
{
"href": "https://docs.openstack.org/",
"rel": "describedby",
"type": "text/html"
}
],
"media-types": [
{
"base": "application/json",
"type": "application/vnd.openstack.compute+json;version=2.1"
}
],
"status": "CURRENT",
"version": "2.100",
"min_version": "2.1",
"updated": "2013-07-23T11:33:21Z"
}
}
服务 URL¶
本文档其余部分描述的所有 API 调用都需要通过 OpenStack Identity 服务进行身份验证。身份验证后,可以从类型为 compute 的 Identity 令牌中提取基础 服务 URL。此 服务 URL 将是每个 API 调用用于构建完整路径的根 URL。
例如,如果 服务 URL 是 http://mycompute.pvt/compute/v2.1,那么 /servers 的完整 API 调用是 http://mycompute.pvt/compute/v2.1/servers。
根据部署的不同,Compute 服务 URL 可能是 http 或 https,也可能包含自定义端口、自定义路径,并包含您的租户 ID。了解部署的 URL 的唯一方法是使用服务目录。Compute URL 绝不应在应用程序中硬编码,即使它们只应在单个站点上工作。它应始终从 Identity 令牌中发现。
因此,在本文档的其余部分,我们将使用简写形式,其中 GET /servers 实际上意味着 GET {your_compute_service_url}/servers。
请求 ID¶
用户可以在请求标头中指定全局请求 ID。用户可以在响应标头中接收本地请求 ID。
有关请求 ID 的更多详细信息,请参阅:故障
请求
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
X-Openstack-Request-Id (可选) |
标头 |
字符串 |
全局请求 ID,这是用于跟踪 OpenStack 组件中每个请求的唯一通用 ID。全局请求 ID 的格式必须是 版本 2.46 新增 |
响应
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
X-Compute-Request-Id |
标头 |
字符串 |
本地请求 ID,这是自动生成用于跟踪每个 Nova 请求的唯一 ID。它与请求相关联,并出现在该请求的日志行中。默认情况下,中间件配置确保本地请求 ID 出现在日志文件中。 注意 此标头用于向后兼容。 |
X-Openstack-Request-Id |
标头 |
字符串 |
本地请求 ID,这是自动生成用于跟踪每个 Nova 请求的唯一 ID。它与请求相关联,并出现在该请求的日志行中。默认情况下,中间件配置确保本地请求 ID 出现在日志文件中。 版本 2.46 新增 |
服务器(servers)¶
列出、创建、显示详细信息、更新和删除服务器。
密码
创建服务器时,可以通过可选的 adminPass 属性指定密码。密码必须符合您的 OpenStack Compute 提供商设置的复杂性要求。如果未满足复杂性要求,服务器可能会进入 ERROR 状态。在这种情况下,客户端可以发出更改密码操作来重置服务器密码。
如果您不指定密码,API 会生成一个随机密码并将其返回在响应对象中。此密码符合计算提供商设置的安全要求。出于安全原因,后续的 GET 调用不需要此密码。
服务器元数据
您可以在服务器启动时指定自定义服务器元数据。每个元数据键值对的最大大小为 255 字节。计算提供商决定每个服务器的最大键值对数量。您可以通过 maxServerMeta 绝对限制查询此值。
服务器网络
您可以在服务器启动时指定一个或多个网络。用户还可以指定网络上的特定端口或分配给服务器接口的固定 IP 地址。
注意
您可以使用 IPv4 和 IPv6 地址作为访问地址,并且可以同时分配这两个地址。创建服务器后,您可以更新访问地址。
服务器个性化(Server personality)
注意
从微版本 2.57 开始,个性化文件的使用已被弃用。使用 metadata 和 user_data 来自定义服务器实例。
要自定义服务器实例的个性化,您可以将数据注入其文件系统。例如,您可能插入 ssh 密钥,设置配置文件,或存储您想从实例内部检索的数据。此自定义方法提供了最小的启动时个性化。如果您需要大量的自定义,请创建自定义镜像。
注入文件时请遵循以下指南
文件路径数据的最大大小为 255 字节。
将文件内容编码为 Base64 字符串。计算提供商决定文件内容的最大大小。用于创建服务器的镜像决定此值。
注意
最大限制指的是解码数据中的字节数,而不是编码数据中的字符数。
名为
maxPersonality的绝对限制定义了您可以提供的文件路径和内容对的最大数量。计算提供商决定此值。名为
maxPersonalitySize的绝对限制是一个字节限制,适用于部署中的所有镜像。提供商可以设置额外的每个镜像的个性化限制。
文件注入可能直到服务器构建和启动后才会发生。
文件注入后,只有系统管理员可以访问个性化文件。例如,在 Linux 上,所有文件的所有者均为 root,组所有者为 root 组,并且只允许用户和组读取访问(chmod 440)。
服务器访问地址
在混合环境中,底层实现可能无法控制服务器的 IP 地址。相反,访问 IP 地址可能是专用硬件的一部分;例如,路由器/NAT 设备。在这种情况下,您无法使用实现提供的地址从本地 LAN 外部访问服务器。相反,API 可能会在创建时分配一个单独的访问地址来提供对服务器的访问。此地址可能不直接绑定到服务器上的网络接口,并且在查询服务器地址时可能不一定出现。但是,客户端应使用访问地址直接访问服务器。
列出服务器的 ID、名称和链接。
默认情况下,服务器会使用与已验证请求关联的项目 ID 进行过滤。
服务器包含一个状态属性,指示当前服务器状态。您可以在完成列出服务器请求时按服务器状态进行过滤。服务器状态在响应正文中返回。可能的服务器状态值如下:
ACTIVE。服务器处于活动状态。BUILD。服务器尚未完成初始构建过程。DELETED。服务器已被永久删除。ERROR。服务器处于错误状态。HARD_REBOOT。服务器正在硬重启。这相当于拔掉物理服务器的电源插头,重新插入,然后重新启动。MIGRATING。服务器正在迁移到新主机。PASSWORD。正在重置服务器上的密码。PAUSED。处于暂停状态时,服务器的状态存储在 RAM 中。暂停的服务器继续以冻结状态运行。REBOOT。服务器处于软重启状态。已向操作系统传递 reboot 命令。REBUILD。服务器当前正在从镜像重建。RESCUE。服务器处于救援模式。正在运行救援镜像,并附加了原始服务器镜像。RESIZE。服务器正在执行初始复制期间更改的数据的差异复制。服务器在此阶段已关闭。REVERT_RESIZE。由于某种原因,服务器的 resize 或迁移失败。目标服务器正在被清理,原始源服务器正在重启。SHELVED:服务器处于 shelf 状态。根据 shelf 卸载时间,服务器将自动 shelf 卸载。SHELVED_OFFLOADED:已卸载 shelf 服务器(从计算主机移除),需要 unshelved 操作才能再次使用。SHUTOFF。服务器已断电,但磁盘镜像仍然存在。SOFT_DELETED。服务器被标记为已删除,但磁盘镜像仍然可以恢复。SUSPENDED。服务器被挂起,无论是通过请求还是必要性。挂起服务器时,其状态会写入磁盘,所有内存都会写入磁盘,服务器会停止。挂起服务器类似于将设备置于休眠状态,其占用的资源不会被释放,而是保留到服务器恢复时。如果服务器使用频率较低且需要释放占用的资源来创建其他服务器,则应将其 shelf 起来。UNKNOWN。服务器的状态未知。请联系您的云提供商。VERIFY_RESIZE。系统正在等待确认服务器在移动或调整大小后是否正常运行。
有效的过滤键有一个白名单。任何不在白名单中的过滤键都将被静默忽略。
对于非管理员用户,白名单与管理员用户的白名单不同。有效白名单可以通过
os_compute_api:servers:allow_all_filters策略规则进行配置。默认情况下,非管理员用户的有效白名单包括:changes-sinceflavorimageipip6(版本 2.5 新增)namenot-tags(版本 2.26 新增)not-tags-any(版本 2.26 新增)reservation_idstatustags(版本 2.26 新增)tags-any(版本 2.26 新增)changes-before(版本 2.66 新增)locked(版本 2.73 新增)availability_zone(版本 2.83 新增)config_drive(版本 2.83 新增)key_name(版本 2.83 新增)created_at(版本 2.83 新增)launched_at(版本 2.83 新增)terminated_at(版本 2.83 新增)power_state(版本 2.83 新增)task_state(版本 2.83 新增)vm_state(版本 2.83 新增)progress(版本 2.83 新增)user_id(版本 2.83 新增)
对于管理员用户,白名单包括请求部分中提到的所有过滤键。
注意
从微版本 2.69 开始,如果由于部署中的临时条件(如基础设施故障)导致无法加载服务器详细信息,则这些不可用服务器的响应正文将缺少键。有关部分构造中将返回的键的信息,请参阅 Compute API 指南的处理宕机单元部分。
正常响应代码:200
错误响应代码:badRequest(400),unauthorized(401),forbidden(403)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
access_ip_v4(可选) |
查询 |
字符串 |
按应用于访问服务器的 IPv4 地址过滤服务器列表结果。 |
access_ip_v6(可选) |
查询 |
字符串 |
按应用于访问服务器的 IPv6 地址过滤服务器列表结果。 |
all_tenants (可选) |
查询 |
布尔值 |
指定 |
auto_disk_config(可选) |
查询 |
字符串 |
按服务器的
此参数仅在管理员指定时有效。如果非管理员用户指定此参数,则会被忽略。 |
availability_zone (可选) |
查询 |
字符串 |
按服务器可用性区域过滤服务器列表结果。 在微版本 2.83 之前,此参数仅限于管理员。如果非管理员用户在微版本低于 2.83 时指定此参数,则会被忽略。 |
changes-since(可选) |
查询 |
字符串 |
按服务器最后更改状态的日期和时间戳过滤响应。为了帮助跟踪更改,此参数也可能返回最近删除的服务器。 日期和时间戳格式为 ISO 8601 CCYY-MM-DDThh:mm:ss±hh:mm
如果包含 |
config_drive(可选) |
查询 |
字符串 |
按服务器的 config drive 设置过滤服务器列表结果。 在微版本 2.83 之前,此参数仅限于管理员。如果非管理员用户在微版本低于 2.83 时指定此参数,则会被忽略。 |
created_at (可选) |
查询 |
字符串 |
按服务器创建的日期和时间戳过滤服务器列表结果。 日期和时间戳格式为 ISO 8601 CCYY-MM-DDThh:mm:ss±hh:mm
如果包含 在微版本 2.83 之前,此参数仅限于管理员。如果非管理员用户在微版本低于 2.83 时指定此参数,则会被忽略。 |
deleted(可选) |
查询 |
布尔值 |
仅显示已删除的项目。在某些情况下,已删除的项目仍然可以通过后端数据库访问,但没有关于保留时间长度的约定,因此此参数应谨慎使用。 此参数仅在管理员指定时有效。如果非管理员用户指定此参数,则会被忽略。 |
description (可选) |
查询 |
字符串 |
按描述过滤服务器列表结果。 此参数仅在管理员指定时有效。如果非管理员用户指定此参数,则会被忽略。 注意
|
flavor(可选) |
查询 |
字符串 |
按 UUID 过滤响应。Flavor 是内存、磁盘大小和 CPU 的组合。 |
host (可选) |
查询 |
字符串 |
按计算节点的名称过滤服务器列表结果。 此参数仅在管理员指定时有效。如果非管理员用户指定此参数,则会被忽略。 |
hostname (可选) |
查询 |
字符串 |
按服务器名称过滤服务器列表结果。 此参数在微版本 2.90 之前仅管理员有效。在此之后,所有用户均可指定。如果非管理员用户在微版本 2.90 之前指定此参数,则会被忽略。 |
image (可选) |
查询 |
字符串 |
按镜像(UUID)过滤响应。 注意
|
ip(可选) |
查询 |
字符串 |
用于过滤结果的 IPv4 地址。 |
ip6(可选) |
查询 |
字符串 |
用于过滤结果的 IPv6 地址。 直到微版本 2.4,此参数仅在管理员指定时有效。如果非管理员用户指定此参数,则会被忽略。从微版本 2.5 开始,此参数对非管理员用户和管理员均有效。 |
kernel_id(可选) |
查询 |
字符串 |
使用 AMI 时,按内核镜像的 UUID 过滤服务器列表结果。 此参数仅在管理员指定时有效。如果非管理员用户指定此参数,则会被忽略。 |
key_name(可选) |
查询 |
字符串 |
按密钥对名称过滤服务器列表结果。 在微版本 2.83 之前,此参数仅限于管理员。如果非管理员用户在微版本低于 2.83 时指定此参数,则会被忽略。 |
launch_index(可选) |
查询 |
整数 |
按服务器启动的顺序过滤服务器列表结果。 此参数仅在管理员指定时有效。如果非管理员用户指定此参数,则会被忽略。 |
launched_at(可选) |
查询 |
字符串 |
按实例启动的日期和时间戳过滤服务器列表结果。日期和时间戳格式为ISO 8601。 CCYY-MM-DDThh:mm:ss±hh:mm
如果包含 在微版本 2.83 之前,此参数仅限于管理员。如果非管理员用户在微版本低于 2.83 时指定此参数,则会被忽略。 |
limit (可选) |
查询 |
整数 |
请求项目页面大小。返回最多限制值数量的项目。使用 |
locked_by(可选) |
查询 |
字符串 |
按锁定服务器的用户过滤服务器列表结果,可能的值为 此参数仅在管理员指定时有效。如果非管理员用户指定此参数,则会被忽略。 |
marker (可选) |
查询 |
字符串 |
最后一个已查看项目的 ID。使用 |
name (可选) |
查询 |
字符串 |
按服务器名称(字符串)过滤响应。您可以使用正则表达式进行查询。例如, 注意
|
node(可选) |
查询 |
字符串 |
按节点过滤服务器列表结果。 此参数仅在管理员指定时有效。如果非管理员用户指定此参数,则会被忽略。 |
power_state(可选) |
查询 |
整数 |
按服务器电源状态过滤服务器列表结果。 可能的值是整数值,映射如下: 0: NOSTATE
1: RUNNING
3: PAUSED
4: SHUTDOWN
6: CRASHED
7: SUSPENDED
在微版本 2.83 之前,此参数仅限于管理员。如果非管理员用户在微版本低于 2.83 时指定此参数,则会被忽略。 |
progress(可选) |
查询 |
整数 |
按服务器进度过滤服务器列表结果。该值可以是 0 到 100 的整数。 在微版本 2.83 之前,此参数仅限于管理员。如果非管理员用户在微版本低于 2.83 时指定此参数,则会被忽略。 |
project_id (可选) |
查询 |
字符串 |
按给定的项目 ID 过滤服务器列表。 此过滤器仅在同时指定 注意
|
ramdisk_id(可选) |
查询 |
字符串 |
使用 AMI 时,按引导磁盘镜像的 UUID 过滤服务器列表结果。 此参数仅在管理员指定时有效。如果非管理员用户指定此参数,则会被忽略。 |
reservation_id(可选) |
查询 |
字符串 |
通过服务器多次创建调用返回的预留 ID。 |
root_device_name(可选) |
查询 |
字符串 |
按服务器的根设备名称过滤服务器列表结果。 此参数仅在管理员指定时有效。如果非管理员用户指定此参数,则会被忽略。 |
soft_deleted(可选) |
查询 |
布尔值 |
按 |
sort_dir (可选) |
查询 |
字符串 |
排序方向。有效值为 |
sort_key (可选) |
查询 |
字符串 |
按服务器属性排序。默认属性为
|
status (可选) |
查询 |
字符串 |
按服务器状态(字符串)过滤响应。例如, 直到微版本 2.37,如果指定了无效状态,则返回空列表。从微版本 2.38 开始,在这种情况下会返回 400 错误。 |
task_state(可选) |
查询 |
字符串 |
按任务状态过滤服务器列表结果。 在微版本 2.83 之前,此参数仅限于管理员。如果非管理员用户在微版本低于 2.83 时指定此参数,则会被忽略。 |
terminated_at(可选) |
查询 |
字符串 |
按实例终止的日期和时间戳过滤服务器列表结果。日期和时间戳格式为ISO 8601。 CCYY-MM-DDThh:mm:ss±hh:mm
如果包含 在微版本 2.83 之前,此参数仅限于管理员。如果非管理员用户在微版本低于 2.83 时指定此参数,则会被忽略。 |
user_id (可选) |
查询 |
字符串 |
按给定的用户 ID 过滤服务器列表。 在微版本 2.83 之前,此参数仅限于管理员。如果非管理员用户在微版本低于 2.83 时指定此参数,则会被忽略。 |
uuid (可选) |
查询 |
字符串 |
按服务器 UUID 过滤服务器列表结果。 此参数仅在管理员指定时有效。如果非管理员用户指定此参数,则会被忽略。 |
vm_state(可选) |
查询 |
字符串 |
按虚拟机状态过滤服务器列表结果。 值可以是:
在微版本 2.83 之前,此参数仅限于管理员。如果非管理员用户在微版本低于 2.83 时指定此参数,则会被忽略。 |
not-tags(可选) |
查询 |
字符串 |
要过滤服务器列表的标签列表。不匹配此列表中所有标签的服务器将被返回。在这种情况下,布尔表达式为“NOT (t1 AND t2)”。查询中的标签必须用逗号分隔。 版本 2.26 新增 |
not-tags-any(可选) |
查询 |
字符串 |
要过滤服务器列表的标签列表。不匹配此列表中任何标签的服务器将被返回。在这种情况下,布尔表达式为“NOT (t1 OR t2)”。查询中的标签必须用逗号分隔。 版本 2.26 新增 |
tags (可选) |
查询 |
字符串 |
要过滤服务器列表的标签列表。匹配此列表中所有标签的服务器将被返回。在这种情况下,布尔表达式为“t1 AND t2”。查询中的标签必须用逗号分隔。 版本 2.26 新增 |
tags-any(可选) |
查询 |
字符串 |
要过滤服务器列表的标签列表。匹配此列表中任何标签的服务器将被返回。在这种情况下,布尔表达式为“t1 OR t2”。查询中的标签必须用逗号分隔。 版本 2.26 新增 |
changes-before(可选) |
查询 |
字符串 |
按服务器最后更改的日期和时间戳过滤响应。将返回在此日期和时间戳之前或等于该日期和时间戳更改的服务器。为了帮助跟踪更改,这可能还会返回最近删除的服务器。 日期和时间戳格式为 ISO 8601 CCYY-MM-DDThh:mm:ss±hh:mm
如果包含 版本 2.66 新增 |
locked(可选) |
查询 |
布尔值 |
指定 版本 2.73 新增 |
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
servers |
body |
数组 |
服务器对象的列表。 |
id |
body |
字符串 |
服务器的 UUID。 |
links |
body |
数组 |
指向相关资源的链接。有关更多信息,请参阅API 指南 / 链接和引用。 |
name |
body |
字符串 |
服务器名称。 |
servers_links(可选) |
body |
数组 |
指向下一个服务器的链接。当服务器数量超过 |
列出服务器示例
{
"servers": [
{
"id": "22c91117-08de-4894-9aa9-6ef382400985",
"links": [
{
"href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/servers/22c91117-08de-4894-9aa9-6ef382400985",
"rel": "self"
},
{
"href": "http://openstack.example.com/6f70656e737461636b20342065766572/servers/22c91117-08de-4894-9aa9-6ef382400985",
"rel": "bookmark"
}
],
"name": "new-server-test"
}
],
"servers_links": [
{
"href": "http://openstack.example.com/v2.1/6f70656e737461636b20342065766572/servers?limit=1&marker=22c91117-08de-4894-9aa9-6ef382400985",
"rel": "next"
}
]
}
列出服务器示例 (2.69)
这是部署中非响应部分的服务器的示例响应。可用服务器记录的响应将正常,没有任何缺失的键。
{
"servers": [
{
"id": "2e136db7-b4a4-4815-8a00-25d9bfe59617",
"status": "UNKNOWN",
"links": [
{
"href": "http://openstack.example.com/v2.1/6f70656e737461636b20342065766572/servers/2e136db7-b4a4-4815-8a00-25d9bfe59617",
"rel": "self"
},
{
"href": "http://openstack.example.com/6f70656e737461636b20342065766572/servers/2e136db7-b4a4-4815-8a00-25d9bfe59617",
"rel": "bookmark"
}
]
}
]
}
创建服务器。
此操作的进度取决于所请求镜像的位置、网络 I/O、主机负载、选定的 flavor 以及其他因素。
要检查请求的进度,请发出 GET /servers/{id} 请求。此调用将返回一个 progress 属性,该属性是一个从 0 到 100 的百分比值。
Location 标头返回新创建服务器的完整 URL,并且在服务器表示中可作为 self 和 bookmark 链接。
创建服务器时,响应仅显示服务器 ID、其链接和管理员密码。您可以通过后续对服务器的 GET 请求获取其他属性。
在创建请求正文中包含 block_device_mapping_v2 参数以从卷引导服务器。
在创建服务器时,在创建请求正文中包含 key_name 参数以添加密钥对。要创建密钥对,请发出创建密钥对请求。
注意
从微版本 2.37 开始,networks 字段是必需的。
先决条件
用户必须拥有足够的服务器配额才能创建请求数量的服务器。
与镜像服务的连接是有效的。
异步后置条件
在具有正确权限的情况下,您可以通过 API 调用将服务器状态视为
ACTIVE。在具有正确访问权限的情况下,您可以在 OpenStack Compute 管理的计算节点中看到已创建的服务器。
故障排除
如果服务器状态仍为
BUILDING或显示其他错误状态,则表示请求失败。确保您满足先决条件,然后调查计算节点。服务器未在 OpenStack Compute 管理的计算节点上创建。
计算节点需要足够的可用资源来匹配服务器创建请求的资源。
确保调度器选择过滤器能够使用与过滤器选择标准匹配的可用计算节点来满足请求。
正常响应代码:202
错误响应代码:badRequest(400),unauthorized(401),forbidden(403),itemNotFound(404),conflict(409)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
server |
body |
对象 |
一个 |
flavorRef |
body |
字符串 |
服务器实例的 flavor 的引用,可以是 ID(包括 UUID)或完整 URL。 |
name |
body |
字符串 |
服务器名称。 |
networks |
body |
数组 |
网络对象的列表。当项目定义了多个网络时,这是必需的参数。当您不指定 networks 参数时,服务器将附加到为当前项目创建的唯一网络。可选地,您可以为服务器创建一或多个 NIC。要为服务器实例配置网络 NIC,请在 如果定义了多个网络,它们在访客操作系统中的顺序不一定反映它们在服务器启动请求中的顺序。因此,访客不应依赖设备顺序来推断有关其网络设备的信息。而应使用设备角色标签:在 2.32 中引入,在 2.37 中损坏,并在 2.42 中重新引入并修复, 由于一个 bug,从 2.37 版本开始, 从微版本 2.37 开始,此字段是必需的,并且可以为网络指定特殊字符串值 *auto* 和 *none*。*auto* 告诉 Compute 服务使用项目中可用的网络(如果存在)。如果不存在,Compute 服务将尝试自动分配一个网络给该项目(如果可能)。*none* 告诉 Compute 服务不为实例分配网络。*auto* 和 *none* 值不能与其他网络值一起使用,包括其他网络 UUID、端口、固定 IP 或设备标签。这些值作为字符串请求 networks 值,而不是作为列表。请参阅相关示例。 |
networks.uuid(可选) |
body |
字符串 |
要为服务器实例配置网络 NIC,请在 从微版本 2.37 开始,此值被严格强制为 UUID 格式。 |
networks.port(可选) |
body |
字符串 |
要为服务器实例配置已存在端口的 NIC,请在 |
networks.fixed_ip(可选) |
body |
字符串 |
NIC 的固定 IPv4 地址。与 |
networks.tag(可选) |
body |
字符串 |
可以应用于网络接口的设备角色标签。具有此类已标记设备的服务器的访客 OS 可以从元数据 API 和 config drive(如果已启用)访问有关已标记设备的硬件元数据。 注意 由于一个 bug,网络接口标签在 2.32 到 2.36 版本(含)之间以及之后从 2.42 版本开始被接受。 版本 2.32 新增 |
accessIPv4(可选) |
body |
字符串 |
应从此服务器访问的 IPv4 地址。 |
accessIPv6(可选) |
body |
字符串 |
应从此服务器访问的 IPv6 地址。 |
adminPass(可选) |
body |
字符串 |
服务器的管理密码。如果省略此参数,操作将生成一个新密码。 |
availability_zone (可选) |
body |
字符串 |
从其启动服务器的可用性区域。在配置资源时,您会指定希望从哪个可用性区域构建实例。通常,管理员用户会使用可用性区域将 OpenStack 计算主机分组到逻辑组中。 可用性区域提供了一种与其他可用性区域进行物理隔离和冗余的形式。例如,如果您的数据中心中的某些机架位于单独的电源上,您可以将这些机架中的服务器放入它们自己的可用性区域。可用性区域还可以帮助区分不同类别的硬件。通过将资源划分为可用性区域,您可以确保您的应用程序资源分布在不同的机器上,以在发生硬件或其他故障时实现高可用性。有关更多信息,请参阅可用性区域 (AZs)。 您可以通过调用可用性区域 (os-availability-zone) API 来列出可用的可用性区域,但您应该避免在创建服务器时使用默认可用性区域。默认可用性区域的名称为 |
block_device_mapping_v2(可选) |
body |
数组 |
允许对实例的块设备映射进行细粒度控制。这通常用于从卷引导服务器。示例格式如下:
在微版本 2.32 中, 由于一个 bug,从 2.33 版本开始, |
block_device_mapping_v2.boot_index |
body |
整数 |
定义虚拟机监控程序在尝试从存储引导客户机时尝试设备的顺序。为每个设备分配一个从 |
block_device_mapping_v2.delete_on_termination(可选) |
body |
布尔值 |
要在销毁服务器时删除启动卷,请指定 |
block_device_mapping_v2.destination_type(可选) |
body |
字符串 |
定义块设备映射的位置。有效值为:
|
block_device_mapping_v2.device_name(可选) |
body |
字符串 |
要用于引导服务器的卷的设备路径。请注意,从 12.0.0 Liberty 版本开始,Nova libvirt 驱动程序不再遵循用户提供的设备名称。这与在请求中未提供设备名称参数时的行为相同。 |
block_device_mapping_v2.device_type(可选) |
body |
字符串 |
设备类型。例如, |
block_device_mapping_v2.disk_bus(可选) |
body |
字符串 |
磁盘总线类型,某些虚拟机监控程序(目前只有 libvirt)支持指定此参数。一些示例 disk_bus 值可以是: |
block_device_mapping_v2.guest_format(可选) |
body |
字符串 |
指定访客服务器磁盘文件系统格式,例如 Swap 块设备映射有以下限制:
|
block_device_mapping_v2.no_device(可选) |
body |
布尔值 |
如果为 |
block_device_mapping_v2.source_type(可选) |
body |
字符串 |
块设备的源类型。有效值为:
除非指定了 有关有效的源类型和目标类型的更多详细信息,请参阅Nova 中的块设备映射。 |
block_device_mapping_v2.uuid(可选) |
body |
字符串 |
这是源资源的 UUID。UUID 指向不同的资源,具体取决于 |
block_device_mapping_v2.volume_size(可选) |
body |
整数 |
卷的大小(以 GiB 为单位)。这是一个范围在 1 到 2147483647 之间的整数值,可以作为整数和字符串请求。在以下情况下必须指定此参数:
|
block_device_mapping_v2.tag(可选) |
body |
字符串 |
可以应用于块设备的设备角色标签。具有此类已标记设备的服务器的访客 OS 可以从元数据 API 和 config drive(如果已启用)访问有关已标记设备的硬件元数据。 注意 由于一个 bug,块设备标签在 2.32 版本以及之后从 2.42 版本开始被接受。 版本 2.32 新增 |
block_device_mapping_v2.volume_type(可选) |
body |
字符串 |
设备
版本 2.67 新增 |
config_drive(可选) |
body |
布尔值 |
指示 config drive 是否启用了元数据注入。config_drive 设置提供了实例在启动时可挂载的驱动器的信息。实例从驱动器读取文件以获取通常可通过元数据服务获得的信息。此元数据与用户数据不同。并非所有云提供商都启用 |
imageRef (可选) |
body |
字符串 |
用于您的服务器实例的镜像的 UUID。如果从卷启动,则不需要此项。在所有其他情况下,它都是必需的,并且必须是有效的 UUID,否则 API 将返回 400。 |
key_name(可选) |
body |
字符串 |
密钥对名称。 注意 在 Nova 遗留 v2 API 中允许使用 |
metadata (可选) |
body |
对象 |
元数据键值对。每个元数据键和值的最大大小为 255 字节。 |
OS-DCF:diskConfig(可选) |
body |
字符串 |
控制 API 在创建、重建或调整服务器大小时如何对磁盘进行分区。服务器继承其创建的镜像的
|
personality(可选) |
body |
数组 |
要在启动时注入服务器的文件路径和内容(仅文本)。文件路径数据的最大大小为 255 字节。最大限制是解码数据(而不是编码数据)允许的字节数。 在版本 2.56 之前可用 |
security_groups (可选) |
body |
数组 |
一个或多个安全组。在 |
user_data(可选) |
body |
字符串 |
启动时使用的配置信息或脚本。必须进行 Base64 编码。限制为 65535 字节。 注意 在 Nova 遗留 v2 API 中允许使用 |
description (可选) |
body |
字符串 |
服务器的自由格式描述。限制为 255 个字符。在微版本 2.19 之前,此字段设置为服务器名称。 版本 2.19 新增 |
hostname (可选) |
body |
字符串 |
配置实例在元数据服务中使用的名称。 从微版本 2.94 开始,这可以是一个最大长度为 255 个字符的完全限定域名 (FQDN)。 注意 此信息通过元数据服务发布,需要 版本 2.90 新增 |
tags (可选) |
body |
数组 |
标签列表。标签有以下限制:
版本 2.52 新增 |
trusted_image_certificates(可选) |
body |
数组 |
受信任证书 ID 列表,用于在镜像签名验证期间验证签名证书。列表最多限制为 50 个 ID。此参数在服务器创建请求中是可选的(如果策略允许),并且不支持用于基于卷的实例。 版本 2.63 新增 |
host (可选) |
body |
字符串 |
要在其中创建服务器的计算服务主机名称。如果找不到具有给定主机名的计算服务,API 将返回 400。默认情况下,仅管理员可以指定此参数。 版本 2.74 新增 |
hypervisor_hostname(可选) |
body |
字符串 |
要在其中创建服务器的虚拟机监控程序的主机名。如果找不到具有给定主机名的虚拟机监控程序,API 将返回 400。默认情况下,仅管理员可以指定此参数。 版本 2.74 新增 |
os:scheduler_hints(可选) |
body |
对象 |
发送到调度器的数据字典。或者,您可以在请求正文中指定 注意 这是请求正文中的顶级键,不是请求正文中 server 部分的一部分。 调度器提示有一些注意事项:
因此,查阅每个云的用户文档以了解调度器提示的可用选项非常重要。 |
os:scheduler_hints.build_near_host_ip(可选) |
body |
字符串 |
在云端可用 |
os:scheduler_hints.cidr(可选) |
body |
字符串 |
在 IP 地址 ( |
os:scheduler_hints.different_cell(可选) |
body |
数组 |
一个单元格路由列表或一个单元格路由(字符串)。在未指定的单元格中调度服务器。当云端可用 |
os:scheduler_hints.different_host (可选) |
body |
数组 |
一组服务器的服务器 UUID 列表或单个服务器 UUID。在与一组服务器不同的主机上调度服务器。当云端可用 |
os:scheduler_hints.group (可选) |
body |
字符串 |
服务器组 UUID。根据服务器组的策略调度服务器( |
os:scheduler_hints.query (可选) |
body |
字符串 |
以 JSON 格式使用自定义过滤器调度服务器。例如 "query": "[\">=\",\"$free_ram_mb\",1024]"
当云端可用 |
os:scheduler_hints.same_host (可选) |
body |
数组 |
一组服务器的服务器 UUID 列表或单个服务器 UUID。在与一组服务器相同的宿主机上调度服务器。当云端可用 |
os:scheduler_hints.target_cell (可选) |
body |
字符串 |
目标单元格名称。在指定的单元格中的主机上调度服务器。当云端可用 |
创建服务器示例
{
"server" : {
"accessIPv4": "1.2.3.4",
"accessIPv6": "80fe::",
"name" : "new-server-test",
"imageRef" : "70a599e0-31e7-49b7-b260-868f441e862b",
"flavorRef" : "1",
"availability_zone": "us-west",
"OS-DCF:diskConfig": "AUTO",
"metadata" : {
"My Server Name" : "Apache1"
},
"personality": [
{
"path": "/etc/banner.txt",
"contents": "ICAgICAgDQoiQSBjbG91ZCBkb2VzIG5vdCBrbm93IHdoeSBp dCBtb3ZlcyBpbiBqdXN0IHN1Y2ggYSBkaXJlY3Rpb24gYW5k IGF0IHN1Y2ggYSBzcGVlZC4uLkl0IGZlZWxzIGFuIGltcHVs c2lvbi4uLnRoaXMgaXMgdGhlIHBsYWNlIHRvIGdvIG5vdy4g QnV0IHRoZSBza3kga25vd3MgdGhlIHJlYXNvbnMgYW5kIHRo ZSBwYXR0ZXJucyBiZWhpbmQgYWxsIGNsb3VkcywgYW5kIHlv dSB3aWxsIGtub3csIHRvbywgd2hlbiB5b3UgbGlmdCB5b3Vy c2VsZiBoaWdoIGVub3VnaCB0byBzZWUgYmV5b25kIGhvcml6 b25zLiINCg0KLVJpY2hhcmQgQmFjaA=="
}
],
"security_groups": [
{
"name": "default"
}
],
"user_data" : "IyEvYmluL2Jhc2gKL2Jpbi9zdQplY2hvICJJIGFtIGluIHlvdSEiCg=="
},
"OS-SCH-HNT:scheduler_hints": {
"same_host": "48e6a9f6-30af-47e0-bc04-acaed113bb4e"
}
}
创建带网络(数组)和块设备映射 v2(v2.32)的服务器示例
{
"server" : {
"name" : "device-tagging-server",
"flavorRef" : "http://openstack.example.com/flavors/1",
"networks" : [{
"uuid" : "3cb9bc59-5699-4588-a4b1-b87f96708bc6",
"tag": "nic1"
}],
"block_device_mapping_v2": [{
"uuid": "70a599e0-31e7-49b7-b260-868f441e862b",
"source_type": "image",
"destination_type": "volume",
"boot_index": 0,
"volume_size": "1",
"tag": "disk1"
}]
}
}
创建带自动网络(v2.37)的服务器示例
{
"server": {
"name": "auto-allocate-network",
"imageRef": "70a599e0-31e7-49b7-b260-868f441e862b",
"flavorRef": "http://openstack.example.com/flavors/1",
"networks": "auto"
}
}
创建带受信任镜像证书(v2.63)的服务器示例
{
"server" : {
"accessIPv4": "1.2.3.4",
"accessIPv6": "80fe::",
"name" : "new-server-test",
"imageRef" : "70a599e0-31e7-49b7-b260-868f441e862b",
"flavorRef" : "6",
"availability_zone": "%(availability_zone)s",
"OS-DCF:diskConfig": "AUTO",
"metadata" : {
"My Server Name" : "Apache1"
},
"security_groups": [
{
"name": "default"
}
],
"user_data" : "IyEvYmluL2Jhc2gKL2Jpbi9zdQplY2hvICJJIGFtIGluIHlvdSEiCg==",
"networks": "auto",
"trusted_image_certificates": [
"0b5d2c72-12cc-4ba6-a8d7-3ff5cc1d8cb8",
"674736e3-f25c-405c-8362-bbf991e0ce0a"
]
},
"OS-SCH-HNT:scheduler_hints": {
"same_host": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}"
}
}
创建带主机和虚拟机监控程序主机名(v2.74)的服务器示例
{
"server" : {
"adminPass": "MySecretPass",
"accessIPv4": "1.2.3.4",
"accessIPv6": "80fe::",
"name" : "new-server-test",
"imageRef" : "70a599e0-31e7-49b7-b260-868f441e862b",
"flavorRef" : "6",
"OS-DCF:diskConfig": "AUTO",
"metadata" : {
"My Server Name" : "Apache1"
},
"security_groups": [
{
"name": "default"
}
],
"user_data" : "IyEvYmluL2Jhc2gKL2Jpbi9zdQplY2hvICJJIGFtIGluIHlvdSEiCg==",
"networks": "auto",
"host": "openstack-node-01",
"hypervisor_hostname": "openstack-node-01"
}
}
创建带主机名(v2.90)的服务器示例
{
"server" : {
"accessIPv4": "1.2.3.4",
"accessIPv6": "80fe::",
"name" : "new-server-test",
"imageRef" : "70a599e0-31e7-49b7-b260-868f441e862b",
"flavorRef" : "1",
"availability_zone": "us-west",
"OS-DCF:diskConfig": "AUTO",
"hostname": "custom-hostname",
"metadata" : {
"My Server Name" : "Apache1"
},
"personality": [
{
"path": "/etc/banner.txt",
"contents": "ICAgICAgDQoiQSBjbG91ZCBkb2VzIG5vdCBrbm93IHdoeSBp dCBtb3ZlcyBpbiBqdXN0IHN1Y2ggYSBkaXJlY3Rpb24gYW5k IGF0IHN1Y2ggYSBzcGVlZC4uLkl0IGZlZWxzIGFuIGltcHVs c2lvbi4uLnRoaXMgaXMgdGhlIHBsYWNlIHRvIGdvIG5vdy4g QnV0IHRoZSBza3kga25vd3MgdGhlIHJlYXNvbnMgYW5kIHRo ZSBwYXR0ZXJucyBiZWhpbmQgYWxsIGNsb3VkcywgYW5kIHlv dSB3aWxsIGtub3csIHRvbywgd2hlbiB5b3UgbGlmdCB5b3Vy c2VsZiBoaWdoIGVub3VnaCB0byBzZWUgYmV5b25kIGhvcml6 b25zLiINCg0KLVJpY2hhcmQgQmFjaA=="
}
],
"security_groups": [
{
"name": "default"
}
],
"user_data" : "IyEvYmluL2Jhc2gKL2Jpbi9zdQplY2hvICJJIGFtIGluIHlvdSEiCg=="
},
"OS-SCH-HNT:scheduler_hints": {
"same_host": "48e6a9f6-30af-47e0-bc04-acaed113bb4e"
}
}
创建带主机名中 FQDN 的服务器示例(v2.94)
{
"server" : {
"accessIPv4": "1.2.3.4",
"accessIPv6": "80fe::",
"name" : "new-server-test",
"imageRef" : "70a599e0-31e7-49b7-b260-868f441e862b",
"flavorRef" : "1",
"availability_zone": "us-west",
"OS-DCF:diskConfig": "AUTO",
"hostname": "custom-hostname.example.com",
"metadata" : {
"My Server Name" : "Apache1"
},
"personality": [
{
"path": "/etc/banner.txt",
"contents": "ICAgICAgDQoiQSBjbG91ZCBkb2VzIG5vdCBrbm93IHdoeSBp dCBtb3ZlcyBpbiBqdXN0IHN1Y2ggYSBkaXJlY3Rpb24gYW5k IGF0IHN1Y2ggYSBzcGVlZC4uLkl0IGZlZWxzIGFuIGltcHVs c2lvbi4uLnRoaXMgaXMgdGhlIHBsYWNlIHRvIGdvIG5vdy4g QnV0IHRoZSBza3kga25vd3MgdGhlIHJlYXNvbnMgYW5kIHRo ZSBwYXR0ZXJucyBiZWhpbmQgYWxsIGNsb3VkcywgYW5kIHlv dSB3aWxsIGtub3csIHRvbywgd2hlbiB5b3UgbGlmdCB5b3Vy c2VsZiBoaWdoIGVub3VnaCB0byBzZWUgYmV5b25kIGhvcml6 b25zLiINCg0KLVJpY2hhcmQgQmFjaA=="
}
],
"security_groups": [
{
"name": "default"
}
],
"user_data" : "IyEvYmluL2Jhc2gKL2Jpbi9zdQplY2hvICJJIGFtIGluIHlvdSEiCg=="
},
"OS-SCH-HNT:scheduler_hints": {
"same_host": "48e6a9f6-30af-47e0-bc04-acaed113bb4e"
}
}
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
位置 |
标头 |
字符串 |
服务器的定位 URL,将返回 HTTP 头“Location: <server location URL>”。 |
server |
body |
对象 |
一个 |
id |
body |
字符串 |
服务器的 UUID。 |
links |
body |
数组 |
指向相关资源的链接。有关更多信息,请参阅API 指南 / 链接和引用。 |
OS-DCF:diskConfig |
body |
字符串 |
磁盘配置。值可以是
|
security_groups |
body |
数组 |
一个或多个安全组对象。 |
security_groups.name |
body |
字符串 |
安全组名称。 |
adminPass(可选) |
body |
字符串 |
服务器的管理密码。如果将 |
创建服务器示例
{
"server": {
"OS-DCF:diskConfig": "AUTO",
"adminPass": "6NpUwoz2QDRN",
"id": "f5dc173b-6804-445a-a6d8-c705dad5b5eb",
"links": [
{
"href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/servers/f5dc173b-6804-445a-a6d8-c705dad5b5eb",
"rel": "self"
},
{
"href": "http://openstack.example.com/6f70656e737461636b20342065766572/servers/f5dc173b-6804-445a-a6d8-c705dad5b5eb",
"rel": "bookmark"
}
],
"security_groups": [
{
"name": "default"
}
]
}
}
还有第二种创建方式,可以一次创建多个服务器。这支持与创建相同的参数,但有一些特定于多重创建的附加属性。
多重创建的错误处理不如单服务器创建一致,并且不能保证所有服务器都会被创建。通常应避免使用此调用,而应优先使用客户端直接进行单独的服务器创建。
请求(附加参数)¶
这些是单次创建之外支持的参数。
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
name |
body |
字符串 |
在多重创建过程中用于生成唯一名称的基本名称。 |
min_count (可选) |
body |
整数 |
要创建的服务器的最小数量。默认为 1。 |
max_count (可选) |
body |
整数 |
要创建的服务器的最大数量。默认为 |
return_reservation_id (可选) |
body |
布尔值 |
设置为 |
带预留 ID 的多重创建示例
{
"server": {
"name": "new-server-test",
"imageRef": "70a599e0-31e7-49b7-b260-868f441e862b",
"flavorRef": "1",
"metadata": {
"My Server Name": "Apache1"
},
"return_reservation_id": "True",
"min_count": "2",
"max_count": "3"
}
}
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
reservation_id |
body |
字符串 |
服务器的预留 ID。这是一个 ID,可用于跟踪通过多重创建创建的服务器组,这些服务器组都将具有相同的 reservation_id。 |
如果 return_reservation_id 设置为 true,则仅返回 reservation_id。这可以用作列表服务器详细信息的过滤器,以查看所有正在构建的服务器的状态。
带预留 ID 的多重创建服务器示例
{
"reservation_id": "r-3fhpjulh"
}
如果 return_reservation_id 设置为 false,则将返回 first 服务器的表示。
不带预留 ID 的多重创建服务器示例
{
"server": {
"OS-DCF:diskConfig": "AUTO",
"adminPass": "wfksH3GTTseP",
"id": "440cf918-3ee0-4143-b289-f63e1d2000e6",
"links": [
{
"href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/servers/440cf918-3ee0-4143-b289-f63e1d2000e6",
"rel": "self"
},
{
"href": "http://openstack.example.com/6f70656e737461636b20342065766572/servers/440cf918-3ee0-4143-b289-f63e1d2000e6",
"rel": "bookmark"
}
],
"security_groups": [
{
"name": "default"
}
]
}
}
显示每个服务器的详细信息,包括配置驱动器、扩展状态和服务器使用信息。
扩展状态信息出现在 OS-EXT-STS:vm_state、OS-EXT-STS:power_state 和 OS-EXT-STS:task_state 属性中。
服务器使用信息出现在 OS-SRV-USG:launched_at 和 OS-SRV-USG:terminated_at 属性中。
HostId 在每个账户内是唯一的,而不是全局唯一的。
注意
从微版本 2.69 开始,如果由于部署中的临时条件(如基础设施故障)导致无法加载服务器详细信息,则这些不可用服务器的响应正文将缺少键。有关部分构造中将返回的键的信息,请参阅 Compute API 指南的处理宕机单元部分。
正常响应代码:200
错误响应代码:badRequest(400),unauthorized(401),forbidden(403)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
access_ip_v4(可选) |
查询 |
字符串 |
按应用于访问服务器的 IPv4 地址过滤服务器列表结果。 |
access_ip_v6(可选) |
查询 |
字符串 |
按应用于访问服务器的 IPv6 地址过滤服务器列表结果。 |
all_tenants (可选) |
查询 |
布尔值 |
指定 |
auto_disk_config(可选) |
查询 |
字符串 |
按服务器的
此参数仅在管理员指定时有效。如果非管理员用户指定此参数,则会被忽略。 |
availability_zone (可选) |
查询 |
字符串 |
按服务器可用性区域过滤服务器列表结果。 在微版本 2.83 之前,此参数仅限于管理员。如果非管理员用户在微版本低于 2.83 时指定此参数,则会被忽略。 |
changes-since(可选) |
查询 |
字符串 |
按服务器最后更改状态的日期和时间戳过滤响应。为了帮助跟踪更改,此参数也可能返回最近删除的服务器。 日期和时间戳格式为 ISO 8601 CCYY-MM-DDThh:mm:ss±hh:mm
如果包含 |
config_drive(可选) |
查询 |
字符串 |
按服务器的 config drive 设置过滤服务器列表结果。 在微版本 2.83 之前,此参数仅限于管理员。如果非管理员用户在微版本低于 2.83 时指定此参数,则会被忽略。 |
created_at (可选) |
查询 |
字符串 |
按服务器创建的日期和时间戳过滤服务器列表结果。 日期和时间戳格式为 ISO 8601 CCYY-MM-DDThh:mm:ss±hh:mm
如果包含 在微版本 2.83 之前,此参数仅限于管理员。如果非管理员用户在微版本低于 2.83 时指定此参数,则会被忽略。 |
deleted(可选) |
查询 |
布尔值 |
仅显示已删除的项目。在某些情况下,已删除的项目仍然可以通过后端数据库访问,但没有关于保留时间长度的约定,因此此参数应谨慎使用。 此参数仅在管理员指定时有效。如果非管理员用户指定此参数,则会被忽略。 |
description (可选) |
查询 |
字符串 |
按描述过滤服务器列表结果。 此参数仅在管理员指定时有效。如果非管理员用户指定此参数,则会被忽略。 注意
|
flavor(可选) |
查询 |
字符串 |
按 UUID 过滤响应。Flavor 是内存、磁盘大小和 CPU 的组合。 |
host (可选) |
查询 |
字符串 |
按计算节点的名称过滤服务器列表结果。 此参数仅在管理员指定时有效。如果非管理员用户指定此参数,则会被忽略。 |
hostname (可选) |
查询 |
字符串 |
按服务器名称过滤服务器列表结果。 此参数在微版本 2.90 之前仅管理员有效。在此之后,所有用户均可指定。如果非管理员用户在微版本 2.90 之前指定此参数,则会被忽略。 |
image (可选) |
查询 |
字符串 |
按镜像(UUID)过滤响应。 注意
|
ip(可选) |
查询 |
字符串 |
用于过滤结果的 IPv4 地址。 |
ip6(可选) |
查询 |
字符串 |
用于过滤结果的 IPv6 地址。 直到微版本 2.4,此参数仅在管理员指定时有效。如果非管理员用户指定此参数,则会被忽略。从微版本 2.5 开始,此参数对非管理员用户和管理员均有效。 |
kernel_id(可选) |
查询 |
字符串 |
使用 AMI 时,按内核镜像的 UUID 过滤服务器列表结果。 此参数仅在管理员指定时有效。如果非管理员用户指定此参数,则会被忽略。 |
key_name(可选) |
查询 |
字符串 |
按密钥对名称过滤服务器列表结果。 在微版本 2.83 之前,此参数仅限于管理员。如果非管理员用户在微版本低于 2.83 时指定此参数,则会被忽略。 |
launch_index(可选) |
查询 |
整数 |
按服务器启动的顺序过滤服务器列表结果。 此参数仅在管理员指定时有效。如果非管理员用户指定此参数,则会被忽略。 |
launched_at(可选) |
查询 |
字符串 |
按实例启动的日期和时间戳过滤服务器列表结果。日期和时间戳格式为ISO 8601。 CCYY-MM-DDThh:mm:ss±hh:mm
如果包含 在微版本 2.83 之前,此参数仅限于管理员。如果非管理员用户在微版本低于 2.83 时指定此参数,则会被忽略。 |
limit (可选) |
查询 |
整数 |
请求项目页面大小。返回最多限制值数量的项目。使用 |
locked_by(可选) |
查询 |
字符串 |
按锁定服务器的用户过滤服务器列表结果,可能的值为 此参数仅在管理员指定时有效。如果非管理员用户指定此参数,则会被忽略。 |
marker (可选) |
查询 |
字符串 |
最后一个已查看项目的 ID。使用 |
name (可选) |
查询 |
字符串 |
按服务器名称(字符串)过滤响应。您可以使用正则表达式进行查询。例如, 注意
|
node(可选) |
查询 |
字符串 |
按节点过滤服务器列表结果。 此参数仅在管理员指定时有效。如果非管理员用户指定此参数,则会被忽略。 |
power_state(可选) |
查询 |
整数 |
按服务器电源状态过滤服务器列表结果。 可能的值是整数值,映射如下: 0: NOSTATE
1: RUNNING
3: PAUSED
4: SHUTDOWN
6: CRASHED
7: SUSPENDED
在微版本 2.83 之前,此参数仅限于管理员。如果非管理员用户在微版本低于 2.83 时指定此参数,则会被忽略。 |
progress(可选) |
查询 |
整数 |
按服务器进度过滤服务器列表结果。该值可以是 0 到 100 的整数。 在微版本 2.83 之前,此参数仅限于管理员。如果非管理员用户在微版本低于 2.83 时指定此参数,则会被忽略。 |
project_id (可选) |
查询 |
字符串 |
按给定的项目 ID 过滤服务器列表。 此过滤器仅在同时指定 注意
|
ramdisk_id(可选) |
查询 |
字符串 |
使用 AMI 时,按引导磁盘镜像的 UUID 过滤服务器列表结果。 此参数仅在管理员指定时有效。如果非管理员用户指定此参数,则会被忽略。 |
reservation_id(可选) |
查询 |
字符串 |
通过服务器多次创建调用返回的预留 ID。 |
root_device_name(可选) |
查询 |
字符串 |
按服务器的根设备名称过滤服务器列表结果。 此参数仅在管理员指定时有效。如果非管理员用户指定此参数,则会被忽略。 |
soft_deleted(可选) |
查询 |
布尔值 |
按 |
sort_dir (可选) |
查询 |
字符串 |
排序方向。有效值为 |
sort_key (可选) |
查询 |
字符串 |
按服务器属性排序。默认属性为
|
status (可选) |
查询 |
字符串 |
按服务器状态(字符串)过滤响应。例如, 直到微版本 2.37,如果指定了无效状态,则返回空列表。从微版本 2.38 开始,在这种情况下会返回 400 错误。 |
task_state(可选) |
查询 |
字符串 |
按任务状态过滤服务器列表结果。 在微版本 2.83 之前,此参数仅限于管理员。如果非管理员用户在微版本低于 2.83 时指定此参数,则会被忽略。 |
terminated_at(可选) |
查询 |
字符串 |
按实例终止的日期和时间戳过滤服务器列表结果。日期和时间戳格式为ISO 8601。 CCYY-MM-DDThh:mm:ss±hh:mm
如果包含 在微版本 2.83 之前,此参数仅限于管理员。如果非管理员用户在微版本低于 2.83 时指定此参数,则会被忽略。 |
user_id (可选) |
查询 |
字符串 |
按给定的用户 ID 过滤服务器列表。 在微版本 2.83 之前,此参数仅限于管理员。如果非管理员用户在微版本低于 2.83 时指定此参数,则会被忽略。 |
uuid (可选) |
查询 |
字符串 |
按服务器 UUID 过滤服务器列表结果。 此参数仅在管理员指定时有效。如果非管理员用户指定此参数,则会被忽略。 |
vm_state(可选) |
查询 |
字符串 |
按虚拟机状态过滤服务器列表结果。 值可以是:
在微版本 2.83 之前,此参数仅限于管理员。如果非管理员用户在微版本低于 2.83 时指定此参数,则会被忽略。 |
not-tags(可选) |
查询 |
字符串 |
要过滤服务器列表的标签列表。不匹配此列表中所有标签的服务器将被返回。在这种情况下,布尔表达式为“NOT (t1 AND t2)”。查询中的标签必须用逗号分隔。 版本 2.26 新增 |
not-tags-any(可选) |
查询 |
字符串 |
要过滤服务器列表的标签列表。不匹配此列表中任何标签的服务器将被返回。在这种情况下,布尔表达式为“NOT (t1 OR t2)”。查询中的标签必须用逗号分隔。 版本 2.26 新增 |
tags (可选) |
查询 |
字符串 |
要过滤服务器列表的标签列表。匹配此列表中所有标签的服务器将被返回。在这种情况下,布尔表达式为“t1 AND t2”。查询中的标签必须用逗号分隔。 版本 2.26 新增 |
tags-any(可选) |
查询 |
字符串 |
要过滤服务器列表的标签列表。匹配此列表中任何标签的服务器将被返回。在这种情况下,布尔表达式为“t1 OR t2”。查询中的标签必须用逗号分隔。 版本 2.26 新增 |
changes-before(可选) |
查询 |
字符串 |
按服务器最后更改的日期和时间戳过滤响应。将返回在此日期和时间戳之前或等于该日期和时间戳更改的服务器。为了帮助跟踪更改,这可能还会返回最近删除的服务器。 日期和时间戳格式为 ISO 8601 CCYY-MM-DDThh:mm:ss±hh:mm
如果包含 版本 2.66 新增 |
locked(可选) |
查询 |
布尔值 |
指定 版本 2.73 新增 |
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
servers |
body |
数组 |
服务器对象的列表。 |
accessIPv4 |
body |
字符串 |
应使用此 IPv4 地址访问此服务器。可能由提供程序自动设置。 |
accessIPv6 |
body |
字符串 |
应使用此 IPv6 地址访问此服务器。可能由提供程序自动设置。 |
addresses |
body |
对象 |
服务器的地址。状态为 |
config_drive |
body |
字符串 |
指示是否为该服务器使用了配置驱动器。值为 |
创建时间 |
body |
字符串 |
资源被创建的日期和时间。日期和时间戳格式为 ISO 8601。 CCYY-MM-DDThh:mm:ss±hh:mm
例如, |
flavor |
body |
对象 |
在 microversion 2.47 之前,这包含用于引导服务器实例的风味 ID 和链接。如果风味信息不再存在于系统中,这可能是一个空对象。 从 microversion 2.47 开始,这包含用于创建服务器实例的风味信息的一个子集,表示为嵌套字典。 |
flavor.id |
body |
字符串 |
风味 ID。虽然人们经常将其视为整数,但它实际上是一个字符串。 在 2.46 版本之前可用 |
flavor.links |
body |
数组 |
指向风味资源的链接。更多信息请参见 API 指南 / 链接和引用。 在 2.46 版本之前可用 |
flavor.vcpus |
body |
整数 |
分配给服务器的虚拟 CPU 数量。 2.47 版本新增 |
flavor.ram |
body |
整数 |
风味的大小,以 MiB 为单位。 2.47 版本新增 |
flavor.disk |
body |
整数 |
创建的根磁盘的大小,以 GiB 为单位。 2.47 版本新增 |
flavor.ephemeral |
body |
整数 |
创建的临时磁盘的大小,以 GiB 为单位。 2.47 版本新增 |
flavor.swap |
body |
整数 |
分配的专用交换磁盘的大小,以 MiB 为单位。 2.47 版本新增 |
flavor.original_name |
body |
字符串 |
风类的显示名称。 2.47 版本新增 |
flavor.extra_specs (可选) |
body |
对象 |
风类附加规格键值对的字典。仅当用户被策略允许索引风类附加规格时才包含。 2.47 版本新增 |
flavor.extra_specs.key |
body |
字符串 |
风类的附加规格键。 2.47 版本新增 |
flavor.extra_specs.value |
body |
字符串 |
风类的附加规格值。 2.47 版本新增 |
hostId |
body |
字符串 |
表示主机的 ID 字符串。这是一个哈希值,所以实际上看起来不像主机名,并且使用 project_id 的数据进行哈希,因此由两个不同的 project_id 看到的同一物理主机将是不同的。当同一项目内需要确定两个实例是否在相同或不同的物理主机上以用于可用性或性能目的时,它很有用。 |
id |
body |
字符串 |
服务器的 UUID。 |
image |
body |
对象 |
用于服务器实例的镜像的 UUID 和链接。当从卷引导服务器时, |
key_name |
body |
字符串 |
如果有关联的密钥对,则为密钥对的名称。 |
links |
body |
数组 |
指向相关资源的链接。有关更多信息,请参阅API 指南 / 链接和引用。 |
metadata |
body |
对象 |
元数据键值对的字典,为保持向后兼容而维护。 |
name |
body |
字符串 |
服务器名称。 |
OS-DCF:diskConfig |
body |
字符串 |
磁盘配置。值可以是
|
OS-EXT-AZ:availability_zone |
body |
字符串 |
可用区名称。 |
OS-EXT-SRV-ATTR:host |
body |
字符串 |
实例运行的计算主机名称。仅对管理员用户显示在响应中。 |
OS-EXT-SRV-ATTR:hostname (可选) |
body |
字符串 |
在元数据服务中报告的实例的主机名。此参数仅在管理员的响应中显示,直到 microversion 2.90,之后对所有用户显示。 注意 此信息通过元数据服务发布,需要 2.3 版本新增 |
OS-EXT-SRV-ATTR:hypervisor_hostname |
body |
字符串 |
Nova virt 驱动程序提供的虚拟机监控程序主机名。对于 Ironic 驱动程序,它是 Ironic 节点 uuid。仅对管理员用户显示在响应中。 |
OS-EXT-SRV-ATTR:instance_name |
body |
字符串 |
实例名称。计算 API 从实例名称模板生成实例名称。仅对管理员用户显示在响应中。 |
OS-EXT-SRV-ATTR:kernel_id (可选) |
body |
字符串 |
使用 AMI 时内核镜像的 UUID。如果没有,将为 null。默认情况下,仅对管理员用户显示在响应中。 2.3 版本新增 |
OS-EXT-SRV-ATTR:launch_index (可选) |
body |
整数 |
当通过多重创建启动服务器时,这是启动服务器的顺序。默认情况下,仅对管理员用户显示在响应中。 2.3 版本新增 |
OS-EXT-SRV-ATTR:ramdisk_id (可选) |
body |
字符串 |
使用 AMI 时引导磁盘镜像的 UUID。如果没有,将为 null。默认情况下,仅对管理员用户显示在响应中。 2.3 版本新增 |
OS-EXT-SRV-ATTR:reservation_id (可选) |
body |
字符串 |
服务器的预留 ID。这是一个 ID,可用于跟踪通过多重创建创建的服务器组,这些服务器组都将具有相同的 reservation_id。默认情况下,仅对管理员用户显示在响应中。 2.3 版本新增 |
OS-EXT-SRV-ATTR:root_device_name (可选) |
body |
字符串 |
实例的根设备名称。默认情况下,仅对管理员用户显示在响应中。 2.3 版本新增 |
OS-EXT-SRV-ATTR:user_data (可选) |
body |
字符串 |
创建实例时使用的 user_data。默认情况下,仅对管理员用户显示在响应中。 2.3 版本新增 |
OS-EXT-STS:power_state |
body |
整数 |
实例的电源状态。这是一个枚举值,映射为 0: NOSTATE
1: RUNNING
3: PAUSED
4: SHUTDOWN
6: CRASHED
7: SUSPENDED
|
OS-EXT-STS:task_state |
body |
字符串 |
实例的任务状态。 |
OS-EXT-STS:vm_state |
body |
字符串 |
VM 状态。 |
os-extended-volumes:volumes_attached |
body |
数组 |
已附加的卷(如果有)。 |
os-extended-volumes:volumes_attached.id |
body |
字符串 |
附加卷的 ID。 |
os-extended-volumes:volumes_attached.delete_on_termination |
body |
布尔值 |
一个标志,指示附加的卷在服务器被删除时是否也会被删除。默认为 False。 2.3 版本新增 |
OS-SRV-USG:launched_at |
body |
字符串 |
服务器启动的日期和时间。 日期和时间戳格式为 ISO 8601 CCYY-MM-DDThh:mm:ss±hh:mm
例如,
|
OS-SRV-USG:terminated_at |
body |
字符串 |
服务器删除的日期和时间。 日期和时间戳格式为 ISO 8601 CCYY-MM-DDThh:mm:ss±hh:mm
例如, |
status |
body |
字符串 |
服务器状态。 |
tenant_id |
body |
字符串 |
多租户云中的租户 UUID。 |
updated |
body |
字符串 |
资源被更新的日期和时间。日期和时间戳格式为 ISO 8601。 CCYY-MM-DDThh:mm:ss±hh:mm
例如, |
user_id |
body |
字符串 |
拥有服务器的用户 ID。 |
fault (可选) |
body |
对象 |
一个故障对象。仅当服务器状态为 |
fault.code |
body |
整数 |
错误响应代码。 |
fault.created |
body |
字符串 |
异常引发的日期和时间。日期和时间戳格式为 ISO 8601 CCYY-MM-DDThh:mm:ss±hh:mm
例如, |
fault.message |
body |
字符串 |
错误消息。 |
fault.details (可选) |
body |
字符串 |
堆栈跟踪。如果响应代码不是 500 或您具有管理员权限,则可用。 |
pinned_availability_zone (可选) |
body |
字符串 |
这是服务器创建期间请求的可用区。此外,当 cross_az_attach 选项为 false 且从卷引导实例时,实例可以固定到 AZ,在这种情况下,实例将在属于固定 AZ 的主机上调度。另外,当 default_schedule_zone 配置选项设置为特定 AZ 时,在这种情况下,实例将被固定到该特定 AZ,并且实例将在属于固定 AZ 的主机上调度。如果没有固定可用区,此值设置为 null。 2.96 版本新增 |
progress(可选) |
body |
整数 |
操作进度的百分比值。此参数仅在服务器状态为 |
scheduler_hints |
body |
对象 |
在服务器创建时发送给调度程序的提示字典。 2.100 版本新增 |
security_groups (可选) |
body |
数组 |
一个或多个安全组对象。 |
security_group.name |
body |
字符串 |
安全组名称。 |
servers_links(可选) |
body |
数组 |
指向下一个服务器的链接。当服务器数量超过 |
locked |
body |
布尔值 |
如果实例被锁定则为 True,否则为 False。 2.9 版本新增 |
host_status (可选) |
body |
字符串 |
主机状态。列表中的下一个值可以覆盖前一个值
此属性仅在策略允许时出现在响应中。默认情况下,只有管理员可以获取此参数。 2.16 版本新增 |
description |
body |
字符串 |
服务器的描述。在 microversion 2.19 之前,这被设置为服务器名称。 版本 2.19 新增 |
tags |
body |
数组 |
标签列表。此列表中的最大标签数为 50。 版本 2.26 新增 |
trusted_image_certificates |
body |
数组 |
受信任的证书 ID 列表,用于在镜像签名验证期间验证签名证书。列表限制为最多 50 个 ID。如果未设置受信任的证书 ID,则值为 版本 2.63 新增 |
locked_reason |
body |
字符串 |
锁定服务器的原因。 版本 2.73 新增 |
列出服务器详细信息示例 (2.100)
{
"servers": [
{
"accessIPv4": "1.2.3.4",
"accessIPv6": "80fe::",
"addresses": {
"private": [
{
"addr": "192.168.1.30",
"OS-EXT-IPS-MAC:mac_addr": "00:0c:29:0d:11:74",
"OS-EXT-IPS:type": "fixed",
"version": 4
}
]
},
"created": "2013-09-03T04:01:32Z",
"description": "",
"flavor": {
"disk": 1,
"ephemeral": 0,
"extra_specs": {},
"original_name": "m1.tiny",
"ram": 512,
"swap": 0,
"vcpus": 1
},
"hostId": "bcf92836fc9ed4203a75cb0337afc7f917d2be504164b995c2334b25",
"id": "f5dc173b-6804-445a-a6d8-c705dad5b5eb",
"image": {
"id": "70a599e0-31e7-49b7-b260-868f441e862b",
"links": [
{
"href": "http://openstack.example.com/6f70656e737461636b20342065766572/images/70a599e0-31e7-49b7-b260-868f441e862b",
"rel": "bookmark"
}
],
"properties": {
"architecture": "x86_64",
"auto_disk_config": "True"
}
},
"key_name": null,
"links": [
{
"href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/servers/f5dc173b-6804-445a-a6d8-c705dad5b5eb",
"rel": "self"
},
{
"href": "http://openstack.example.com/6f70656e737461636b20342065766572/servers/f5dc173b-6804-445a-a6d8-c705dad5b5eb",
"rel": "bookmark"
}
],
"metadata": {
"My Server Name": "Apache1"
},
"name": "new-server-test",
"config_drive": "",
"locked": false,
"locked_reason": "",
"OS-DCF:diskConfig": "AUTO",
"OS-EXT-AZ:availability_zone": "us-west",
"OS-EXT-SRV-ATTR:hostname": "new-server-test",
"OS-EXT-STS:power_state": 1,
"OS-EXT-STS:task_state": null,
"OS-EXT-STS:vm_state": "active",
"os-extended-volumes:volumes_attached": [
{"id": "volume_id1", "delete_on_termination": false},
{"id": "volume_id2", "delete_on_termination": false}
],
"OS-SRV-USG:launched_at": "2013-09-23T13:53:12.774549",
"OS-SRV-USG:terminated_at": null,
"pinned_availability_zone": "us-west",
"progress": 0,
"scheduler_hints": {
"same_host": [
"48e6a9f6-30af-47e0-bc04-acaed113bb4e"
]
},
"security_groups": [
{
"name": "default"
}
],
"status": "ACTIVE",
"tags": [],
"tenant_id": "6f70656e737461636b20342065766572",
"trusted_image_certificates": null,
"updated": "2013-09-03T04:01:32Z",
"user_id": "fake"
}
],
"servers_links": [
{
"href": "http://openstack.example.com/v2.1/6f70656e737461636b20342065766572/servers/detail?limit=1&marker=f5dc173b-6804-445a-a6d8-c705dad5b5eb",
"rel": "next"
}
]
}
列出服务器详细信息示例 (2.98)
{
"servers": [
{
"accessIPv4": "1.2.3.4",
"accessIPv6": "80fe::",
"addresses": {
"private": [
{
"addr": "192.168.1.30",
"OS-EXT-IPS-MAC:mac_addr": "00:0c:29:0d:11:74",
"OS-EXT-IPS:type": "fixed",
"version": 4
}
]
},
"created": "2013-09-03T04:01:32Z",
"description": "",
"flavor": {
"disk": 1,
"ephemeral": 0,
"extra_specs": {},
"original_name": "m1.tiny",
"ram": 512,
"swap": 0,
"vcpus": 1
},
"hostId": "bcf92836fc9ed4203a75cb0337afc7f917d2be504164b995c2334b25",
"id": "f5dc173b-6804-445a-a6d8-c705dad5b5eb",
"image": {
"id": "70a599e0-31e7-49b7-b260-868f441e862b",
"links": [
{
"href": "http://openstack.example.com/6f70656e737461636b20342065766572/images/70a599e0-31e7-49b7-b260-868f441e862b",
"rel": "bookmark"
}
],
"properties": {
"architecture": "x86_64",
"auto_disk_config": "True"
}
},
"key_name": null,
"links": [
{
"href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/servers/f5dc173b-6804-445a-a6d8-c705dad5b5eb",
"rel": "self"
},
{
"href": "http://openstack.example.com/6f70656e737461636b20342065766572/servers/f5dc173b-6804-445a-a6d8-c705dad5b5eb",
"rel": "bookmark"
}
],
"metadata": {
"My Server Name": "Apache1"
},
"name": "new-server-test",
"config_drive": "",
"locked": false,
"locked_reason": "",
"OS-DCF:diskConfig": "AUTO",
"OS-EXT-AZ:availability_zone": "us-west",
"OS-EXT-SRV-ATTR:hostname": "new-server-test",
"OS-EXT-STS:power_state": 1,
"OS-EXT-STS:task_state": null,
"OS-EXT-STS:vm_state": "active",
"os-extended-volumes:volumes_attached": [
{"id": "volume_id1", "delete_on_termination": false},
{"id": "volume_id2", "delete_on_termination": false}
],
"OS-SRV-USG:launched_at": "2013-09-23T13:53:12.774549",
"OS-SRV-USG:terminated_at": null,
"pinned_availability_zone": "us-west",
"progress": 0,
"security_groups": [
{
"name": "default"
}
],
"status": "ACTIVE",
"tags": [],
"tenant_id": "6f70656e737461636b20342065766572",
"trusted_image_certificates": null,
"updated": "2013-09-03T04:01:32Z",
"user_id": "fake"
}
],
"servers_links": [
{
"href": "http://openstack.example.com/v2.1/6f70656e737461636b20342065766572/servers/detail?limit=1&marker=f5dc173b-6804-445a-a6d8-c705dad5b5eb",
"rel": "next"
}
]
}
列出服务器详细信息示例 (2.96)
{
"servers": [
{
"accessIPv4": "1.2.3.4",
"accessIPv6": "80fe::",
"addresses": {
"private": [
{
"addr": "192.168.1.30",
"OS-EXT-IPS-MAC:mac_addr": "00:0c:29:0d:11:74",
"OS-EXT-IPS:type": "fixed",
"version": 4
}
]
},
"created": "2013-09-03T04:01:32Z",
"description": "",
"flavor": {
"disk": 1,
"ephemeral": 0,
"extra_specs": {},
"original_name": "m1.tiny",
"ram": 512,
"swap": 0,
"vcpus": 1
},
"hostId": "bcf92836fc9ed4203a75cb0337afc7f917d2be504164b995c2334b25",
"id": "f5dc173b-6804-445a-a6d8-c705dad5b5eb",
"image": {
"id": "70a599e0-31e7-49b7-b260-868f441e862b",
"links": [
{
"href": "http://openstack.example.com/6f70656e737461636b20342065766572/images/70a599e0-31e7-49b7-b260-868f441e862b",
"rel": "bookmark"
}
]
},
"key_name": null,
"links": [
{
"href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/servers/f5dc173b-6804-445a-a6d8-c705dad5b5eb",
"rel": "self"
},
{
"href": "http://openstack.example.com/6f70656e737461636b20342065766572/servers/f5dc173b-6804-445a-a6d8-c705dad5b5eb",
"rel": "bookmark"
}
],
"metadata": {
"My Server Name": "Apache1"
},
"name": "new-server-test",
"config_drive": "",
"locked": false,
"locked_reason": "",
"OS-DCF:diskConfig": "AUTO",
"OS-EXT-AZ:availability_zone": "us-west",
"OS-EXT-SRV-ATTR:hostname": "new-server-test",
"OS-EXT-STS:power_state": 1,
"OS-EXT-STS:task_state": null,
"OS-EXT-STS:vm_state": "active",
"os-extended-volumes:volumes_attached": [
{"id": "volume_id1", "delete_on_termination": false},
{"id": "volume_id2", "delete_on_termination": false}
],
"OS-SRV-USG:launched_at": "2013-09-23T13:53:12.774549",
"OS-SRV-USG:terminated_at": null,
"pinned_availability_zone": "us-west",
"progress": 0,
"security_groups": [
{
"name": "default"
}
],
"status": "ACTIVE",
"tags": [],
"tenant_id": "6f70656e737461636b20342065766572",
"trusted_image_certificates": null,
"updated": "2013-09-03T04:01:32Z",
"user_id": "fake"
}
],
"servers_links": [
{
"href": "http://openstack.example.com/v2.1/6f70656e737461636b20342065766572/servers/detail?limit=1&marker=f5dc173b-6804-445a-a6d8-c705dad5b5eb",
"rel": "next"
}
]
}
列出服务器详细信息示例 (2.73)
{
"servers": [
{
"OS-DCF:diskConfig": "AUTO",
"OS-EXT-AZ:availability_zone": "nova",
"OS-EXT-SRV-ATTR:host": "compute",
"OS-EXT-SRV-ATTR:hostname": "new-server-test",
"OS-EXT-SRV-ATTR:hypervisor_hostname": "fake-mini",
"OS-EXT-SRV-ATTR:instance_name": "instance-00000001",
"OS-EXT-SRV-ATTR:kernel_id": "",
"OS-EXT-SRV-ATTR:launch_index": 0,
"OS-EXT-SRV-ATTR:ramdisk_id": "",
"OS-EXT-SRV-ATTR:reservation_id": "r-l0i0clt2",
"OS-EXT-SRV-ATTR:root_device_name": "/dev/sda",
"OS-EXT-SRV-ATTR:user_data": "IyEvYmluL2Jhc2gKL2Jpbi9zdQplY2hvICJJIGFtIGluIHlvdSEiCg==",
"OS-EXT-STS:power_state": 1,
"OS-EXT-STS:task_state": null,
"OS-EXT-STS:vm_state": "active",
"OS-SRV-USG:launched_at": "2019-04-23T15:19:15.317839",
"OS-SRV-USG:terminated_at": null,
"accessIPv4": "1.2.3.4",
"accessIPv6": "80fe::",
"addresses": {
"private": [
{
"OS-EXT-IPS-MAC:mac_addr": "00:0c:29:0d:11:74",
"OS-EXT-IPS:type": "fixed",
"addr": "192.168.1.30",
"version": 4
}
]
},
"config_drive": "",
"created": "2019-04-23T15:19:14Z",
"description": null,
"flavor": {
"disk": 1,
"ephemeral": 0,
"extra_specs": {},
"original_name": "m1.tiny",
"ram": 512,
"swap": 0,
"vcpus": 1
},
"hostId": "2091634baaccdc4c5a1d57069c833e402921df696b7f970791b12ec6",
"host_status": "UP",
"id": "2ce4c5b3-2866-4972-93ce-77a2ea46a7f9",
"image": {
"id": "70a599e0-31e7-49b7-b260-868f441e862b",
"links": [
{
"href": "http://openstack.example.com/6f70656e737461636b20342065766572/images/70a599e0-31e7-49b7-b260-868f441e862b",
"rel": "bookmark"
}
]
},
"key_name": null,
"links": [
{
"href": "http://openstack.example.com/v2.1/6f70656e737461636b20342065766572/servers/2ce4c5b3-2866-4972-93ce-77a2ea46a7f9",
"rel": "self"
},
{
"href": "http://openstack.example.com/6f70656e737461636b20342065766572/servers/2ce4c5b3-2866-4972-93ce-77a2ea46a7f9",
"rel": "bookmark"
}
],
"locked": true,
"locked_reason": "I don't want to work",
"metadata": {
"My Server Name": "Apache1"
},
"name": "new-server-test",
"os-extended-volumes:volumes_attached": [],
"progress": 0,
"security_groups": [
{
"name": "default"
}
],
"status": "ACTIVE",
"tags": [],
"tenant_id": "6f70656e737461636b20342065766572",
"trusted_image_certificates": null,
"updated": "2019-04-23T15:19:15Z",
"user_id": "admin"
}
]
}
列出服务器详细信息示例 (2.69)
这是部署中非响应部分的服务器的示例响应。可用服务器记录的响应将正常,没有任何缺失的键。
{
"servers": [
{
"created": "2018-12-03T21:06:18Z",
"id": "b6b0410f-b65f-4473-855e-5d82a71759e0",
"status": "UNKNOWN",
"tenant_id": "6f70656e737461636b20342065766572",
"links": [
{
"href": "http://openstack.example.com/v2.1/6f70656e737461636b20342065766572/servers/b6b0410f-b65f-4473-855e-5d82a71759e0",
"rel": "self"
},
{
"href": "http://openstack.example.com/6f70656e737461636b20342065766572/servers/b6b0410f-b65f-4473-855e-5d82a71759e0",
"rel": "bookmark"
}
]
}
]
}
显示服务器的详细信息。
包括服务器详细信息,如配置驱动器、扩展状态和服务器使用信息。
扩展状态信息出现在 OS-EXT-STS:vm_state、OS-EXT-STS:power_state 和 OS-EXT-STS:task_state 属性中。
服务器使用信息出现在 OS-SRV-USG:launched_at 和 OS-SRV-USG:terminated_at 属性中。
HostId 在每个账户内是唯一的,而不是全局唯一的。
先决条件
服务器必须存在。
注意
从 microversion 2.69 开始,如果由于部署中的瞬态条件(如基础设施故障)而无法加载服务器详细信息,则不可用服务器的响应体将缺少键。有关部分构造中返回的键的信息,请参阅 Compute API 指南中的 处理宕机单元格 部分。
正常响应代码:200
错误响应代码:unauthorized(401)、forbidden(403)、itemNotFound(404)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
server_id |
路径 |
字符串 |
服务器的 UUID。 |
Response¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
server |
body |
对象 |
一个 |
accessIPv4 |
body |
字符串 |
应使用此 IPv4 地址访问此服务器。可能由提供程序自动设置。 |
accessIPv6 |
body |
字符串 |
应使用此 IPv6 地址访问此服务器。可能由提供程序自动设置。 |
addresses |
body |
对象 |
服务器的地址。状态为 |
config_drive |
body |
字符串 |
指示是否为该服务器使用了配置驱动器。值为 |
创建时间 |
body |
字符串 |
资源被创建的日期和时间。日期和时间戳格式为 ISO 8601。 CCYY-MM-DDThh:mm:ss±hh:mm
例如, |
flavor |
body |
对象 |
在 microversion 2.47 之前,这包含用于引导服务器实例的风味 ID 和链接。如果风味信息不再存在于系统中,这可能是一个空对象。 从 microversion 2.47 开始,这包含用于创建服务器实例的风味信息的一个子集,表示为嵌套字典。 |
flavor.id |
body |
字符串 |
风味 ID。虽然人们经常将其视为整数,但它实际上是一个字符串。 在 2.46 版本之前可用 |
flavor.links |
body |
数组 |
指向风味资源的链接。更多信息请参见 API 指南 / 链接和引用。 在 2.46 版本之前可用 |
flavor.vcpus |
body |
整数 |
分配给服务器的虚拟 CPU 数量。 2.47 版本新增 |
flavor.ram |
body |
整数 |
风味的大小,以 MiB 为单位。 2.47 版本新增 |
flavor.disk |
body |
整数 |
创建的根磁盘的大小,以 GiB 为单位。 2.47 版本新增 |
flavor.ephemeral |
body |
整数 |
创建的临时磁盘的大小,以 GiB 为单位。 2.47 版本新增 |
flavor.swap |
body |
整数 |
分配的专用交换磁盘的大小,以 MiB 为单位。 2.47 版本新增 |
flavor.original_name |
body |
字符串 |
风类的显示名称。 2.47 版本新增 |
flavor.extra_specs (可选) |
body |
对象 |
风类附加规格键值对的字典。仅当用户被策略允许索引风类附加规格时才包含。 2.47 版本新增 |
flavor.extra_specs.key |
body |
字符串 |
风类的附加规格键。 2.47 版本新增 |
flavor.extra_specs.value |
body |
字符串 |
风类的附加规格值。 2.47 版本新增 |
hostId |
body |
字符串 |
表示主机的 ID 字符串。这是一个哈希值,所以实际上看起来不像主机名,并且使用 project_id 的数据进行哈希,因此由两个不同的 project_id 看到的同一物理主机将是不同的。当同一项目内需要确定两个实例是否在相同或不同的物理主机上以用于可用性或性能目的时,它很有用。 |
id |
body |
字符串 |
服务器的 UUID。 |
image |
body |
对象 |
用于服务器实例的镜像的 UUID 和链接。当从卷引导服务器时, |
key_name |
body |
字符串 |
如果有关联的密钥对,则为密钥对的名称。 |
links |
body |
数组 |
指向相关资源的链接。有关更多信息,请参阅API 指南 / 链接和引用。 |
metadata |
body |
对象 |
元数据键值对的字典,为保持向后兼容而维护。 |
name |
body |
字符串 |
服务器名称。 |
OS-DCF:diskConfig |
body |
字符串 |
磁盘配置。值可以是
|
OS-EXT-AZ:availability_zone |
body |
字符串 |
可用区名称。 |
OS-EXT-SRV-ATTR:host |
body |
字符串 |
实例运行的计算主机名称。仅对管理员用户显示在响应中。 |
OS-EXT-SRV-ATTR:hostname (可选) |
body |
字符串 |
在元数据服务中报告的实例的主机名。此参数仅在管理员的响应中显示,直到 microversion 2.90,之后对所有用户显示。 注意 此信息通过元数据服务发布,需要 2.3 版本新增 |
OS-EXT-SRV-ATTR:hypervisor_hostname |
body |
字符串 |
Nova virt 驱动程序提供的虚拟机监控程序主机名。对于 Ironic 驱动程序,它是 Ironic 节点 uuid。仅对管理员用户显示在响应中。 |
OS-EXT-SRV-ATTR:instance_name |
body |
字符串 |
实例名称。计算 API 从实例名称模板生成实例名称。仅对管理员用户显示在响应中。 |
OS-EXT-SRV-ATTR:kernel_id (可选) |
body |
字符串 |
使用 AMI 时内核镜像的 UUID。如果没有,将为 null。默认情况下,仅对管理员用户显示在响应中。 2.3 版本新增 |
OS-EXT-SRV-ATTR:launch_index (可选) |
body |
整数 |
当通过多重创建启动服务器时,这是启动服务器的顺序。默认情况下,仅对管理员用户显示在响应中。 2.3 版本新增 |
OS-EXT-SRV-ATTR:ramdisk_id (可选) |
body |
字符串 |
使用 AMI 时引导磁盘镜像的 UUID。如果没有,将为 null。默认情况下,仅对管理员用户显示在响应中。 2.3 版本新增 |
OS-EXT-SRV-ATTR:reservation_id (可选) |
body |
字符串 |
服务器的预留 ID。这是一个 ID,可用于跟踪通过多重创建创建的服务器组,这些服务器组都将具有相同的 reservation_id。默认情况下,仅对管理员用户显示在响应中。 2.3 版本新增 |
OS-EXT-SRV-ATTR:root_device_name (可选) |
body |
字符串 |
实例的根设备名称。默认情况下,仅对管理员用户显示在响应中。 2.3 版本新增 |
OS-EXT-SRV-ATTR:user_data (可选) |
body |
字符串 |
创建实例时使用的 user_data。默认情况下,仅对管理员用户显示在响应中。 2.3 版本新增 |
OS-EXT-STS:power_state |
body |
整数 |
实例的电源状态。这是一个枚举值,映射为 0: NOSTATE
1: RUNNING
3: PAUSED
4: SHUTDOWN
6: CRASHED
7: SUSPENDED
|
OS-EXT-STS:task_state |
body |
字符串 |
实例的任务状态。 |
OS-EXT-STS:vm_state |
body |
字符串 |
VM 状态。 |
os-extended-volumes:volumes_attached |
body |
数组 |
已附加的卷(如果有)。 |
os-extended-volumes:volumes_attached.id |
body |
字符串 |
附加卷的 ID。 |
os-extended-volumes:volumes_attached.delete_on_termination |
body |
布尔值 |
一个标志,指示附加的卷在服务器被删除时是否也会被删除。默认为 False。 2.3 版本新增 |
OS-SRV-USG:launched_at |
body |
字符串 |
服务器启动的日期和时间。 日期和时间戳格式为 ISO 8601 CCYY-MM-DDThh:mm:ss±hh:mm
例如,
|
OS-SRV-USG:terminated_at |
body |
字符串 |
服务器删除的日期和时间。 日期和时间戳格式为 ISO 8601 CCYY-MM-DDThh:mm:ss±hh:mm
例如, |
status |
body |
字符串 |
服务器状态。 |
tenant_id |
body |
字符串 |
多租户云中的租户 UUID。 |
updated |
body |
字符串 |
资源被更新的日期和时间。日期和时间戳格式为 ISO 8601。 CCYY-MM-DDThh:mm:ss±hh:mm
例如, |
user_id |
body |
字符串 |
拥有服务器的用户 ID。 |
fault (可选) |
body |
对象 |
一个故障对象。仅当服务器状态为 |
fault.code |
body |
整数 |
错误响应代码。 |
fault.created |
body |
字符串 |
异常引发的日期和时间。日期和时间戳格式为 ISO 8601 CCYY-MM-DDThh:mm:ss±hh:mm
例如, |
fault.message |
body |
字符串 |
错误消息。 |
fault.details (可选) |
body |
字符串 |
堆栈跟踪。如果响应代码不是 500 或您具有管理员权限,则可用。 |
pinned_availability_zone (可选) |
body |
字符串 |
这是服务器创建期间请求的可用区。此外,当 cross_az_attach 选项为 false 且从卷引导实例时,实例可以固定到 AZ,在这种情况下,实例将在属于固定 AZ 的主机上调度。另外,当 default_schedule_zone 配置选项设置为特定 AZ 时,在这种情况下,实例将被固定到该特定 AZ,并且实例将在属于固定 AZ 的主机上调度。如果没有固定可用区,此值设置为 null。 2.96 版本新增 |
progress(可选) |
body |
整数 |
操作进度的百分比值。此参数仅在服务器状态为 |
scheduler_hints |
body |
对象 |
在服务器创建时发送给调度程序的提示字典。 2.100 版本新增 |
security_groups (可选) |
body |
数组 |
一个或多个安全组对象。 |
security_group.name |
body |
字符串 |
安全组名称。 |
locked |
body |
布尔值 |
如果实例被锁定则为 True,否则为 False。 2.9 版本新增 |
host_status (可选) |
body |
字符串 |
主机状态。列表中的下一个值可以覆盖前一个值
此属性仅在策略允许时出现在响应中。默认情况下,只有管理员可以获取此参数。 2.16 版本新增 |
description |
body |
字符串 |
服务器的描述。在 microversion 2.19 之前,这被设置为服务器名称。 版本 2.19 新增 |
tags |
body |
数组 |
标签列表。此列表中的最大标签数为 50。 版本 2.26 新增 |
trusted_image_certificates |
body |
数组 |
受信任的证书 ID 列表,用于在镜像签名验证期间验证签名证书。列表限制为最多 50 个 ID。如果未设置受信任的证书 ID,则值为 版本 2.63 新增 |
server_groups |
body |
数组 |
服务器所属的服务器组的 UUID。目前此项最多包含一个条目。 2.71 版本新增 |
locked_reason |
body |
字符串 |
锁定服务器的原因。 版本 2.73 新增 |
显示服务器详细信息示例 (2.100)
{
"server": {
"accessIPv4": "1.2.3.4",
"accessIPv6": "80fe::",
"addresses": {
"private": [
{
"addr": "192.168.1.30",
"OS-EXT-IPS-MAC:mac_addr": "00:0c:29:0d:11:74",
"OS-EXT-IPS:type": "fixed",
"version": 4
}
]
},
"created": "2013-09-03T04:01:32Z",
"description": null,
"locked": false,
"locked_reason": null,
"flavor": {
"disk": 1,
"ephemeral": 0,
"extra_specs": {},
"original_name": "m1.tiny",
"ram": 512,
"swap": 0,
"vcpus": 1
},
"hostId": "92154fab69d5883ba2c8622b7e65f745dd33257221c07af363c51b29",
"id": "0e44cc9c-e052-415d-afbf-469b0d384170",
"image": {
"id": "70a599e0-31e7-49b7-b260-868f441e862b",
"links": [
{
"href": "http://openstack.example.com/6f70656e737461636b20342065766572/images/70a599e0-31e7-49b7-b260-868f441e862b",
"rel": "bookmark"
}
],
"properties": {
"architecture": "x86_64",
"auto_disk_config": "True"
}
},
"key_name": null,
"links": [
{
"href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/servers/0e44cc9c-e052-415d-afbf-469b0d384170",
"rel": "self"
},
{
"href": "http://openstack.example.com/6f70656e737461636b20342065766572/servers/0e44cc9c-e052-415d-afbf-469b0d384170",
"rel": "bookmark"
}
],
"metadata": {
"My Server Name": "Apache1"
},
"name": "new-server-test",
"config_drive": "",
"OS-DCF:diskConfig": "AUTO",
"OS-EXT-AZ:availability_zone": "us-west",
"OS-EXT-SRV-ATTR:hostname": "new-server-test",
"OS-EXT-STS:power_state": 1,
"OS-EXT-STS:task_state": null,
"OS-EXT-STS:vm_state": "active",
"os-extended-volumes:volumes_attached": [
{"id": "volume_id1", "delete_on_termination": false},
{"id": "volume_id2", "delete_on_termination": false}
],
"OS-SRV-USG:launched_at": "2013-09-23T13:37:00.880302",
"OS-SRV-USG:terminated_at": null,
"pinned_availability_zone": "us-west",
"progress": 0,
"scheduler_hints": {
"same_host": [
"48e6a9f6-30af-47e0-bc04-acaed113bb4e"
]
},
"security_groups": [
{
"name": "default"
}
],
"server_groups": [],
"status": "ACTIVE",
"tags": [],
"tenant_id": "6f70656e737461636b20342065766572",
"trusted_image_certificates": null,
"updated": "2013-09-03T04:01:33Z",
"user_id": "fake"
}
}
显示服务器详细信息示例 (2.98)
{
"server": {
"accessIPv4": "1.2.3.4",
"accessIPv6": "80fe::",
"addresses": {
"private": [
{
"addr": "192.168.1.30",
"OS-EXT-IPS-MAC:mac_addr": "00:0c:29:0d:11:74",
"OS-EXT-IPS:type": "fixed",
"version": 4
}
]
},
"created": "2013-09-03T04:01:32Z",
"description": null,
"locked": false,
"locked_reason": null,
"flavor": {
"disk": 1,
"ephemeral": 0,
"extra_specs": {},
"original_name": "m1.tiny",
"ram": 512,
"swap": 0,
"vcpus": 1
},
"hostId": "92154fab69d5883ba2c8622b7e65f745dd33257221c07af363c51b29",
"id": "0e44cc9c-e052-415d-afbf-469b0d384170",
"image": {
"id": "70a599e0-31e7-49b7-b260-868f441e862b",
"links": [
{
"href": "http://openstack.example.com/6f70656e737461636b20342065766572/images/70a599e0-31e7-49b7-b260-868f441e862b",
"rel": "bookmark"
}
],
"properties": {
"architecture": "x86_64",
"auto_disk_config": "True"
}
},
"key_name": null,
"links": [
{
"href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/servers/0e44cc9c-e052-415d-afbf-469b0d384170",
"rel": "self"
},
{
"href": "http://openstack.example.com/6f70656e737461636b20342065766572/servers/0e44cc9c-e052-415d-afbf-469b0d384170",
"rel": "bookmark"
}
],
"metadata": {
"My Server Name": "Apache1"
},
"name": "new-server-test",
"config_drive": "",
"OS-DCF:diskConfig": "AUTO",
"OS-EXT-AZ:availability_zone": "us-west",
"OS-EXT-SRV-ATTR:hostname": "new-server-test",
"OS-EXT-STS:power_state": 1,
"OS-EXT-STS:task_state": null,
"OS-EXT-STS:vm_state": "active",
"os-extended-volumes:volumes_attached": [
{"id": "volume_id1", "delete_on_termination": false},
{"id": "volume_id2", "delete_on_termination": false}
],
"OS-SRV-USG:launched_at": "2013-09-23T13:37:00.880302",
"OS-SRV-USG:terminated_at": null,
"pinned_availability_zone": "us-west",
"progress": 0,
"security_groups": [
{
"name": "default"
}
],
"server_groups": [],
"status": "ACTIVE",
"tags": [],
"tenant_id": "6f70656e737461636b20342065766572",
"trusted_image_certificates": null,
"updated": "2013-09-03T04:01:33Z",
"user_id": "fake"
}
}
显示服务器详细信息示例 (2.96)
{
"server": {
"accessIPv4": "1.2.3.4",
"accessIPv6": "80fe::",
"addresses": {
"private": [
{
"addr": "192.168.1.30",
"OS-EXT-IPS-MAC:mac_addr": "00:0c:29:0d:11:74",
"OS-EXT-IPS:type": "fixed",
"version": 4
}
]
},
"created": "2013-09-03T04:01:32Z",
"description": null,
"locked": false,
"locked_reason": null,
"flavor": {
"disk": 1,
"ephemeral": 0,
"extra_specs": {},
"original_name": "m1.tiny",
"ram": 512,
"swap": 0,
"vcpus": 1
},
"hostId": "92154fab69d5883ba2c8622b7e65f745dd33257221c07af363c51b29",
"id": "0e44cc9c-e052-415d-afbf-469b0d384170",
"image": {
"id": "70a599e0-31e7-49b7-b260-868f441e862b",
"links": [
{
"href": "http://openstack.example.com/6f70656e737461636b20342065766572/images/70a599e0-31e7-49b7-b260-868f441e862b",
"rel": "bookmark"
}
]
},
"key_name": null,
"links": [
{
"href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/servers/0e44cc9c-e052-415d-afbf-469b0d384170",
"rel": "self"
},
{
"href": "http://openstack.example.com/6f70656e737461636b20342065766572/servers/0e44cc9c-e052-415d-afbf-469b0d384170",
"rel": "bookmark"
}
],
"metadata": {
"My Server Name": "Apache1"
},
"name": "new-server-test",
"config_drive": "",
"OS-DCF:diskConfig": "AUTO",
"OS-EXT-AZ:availability_zone": "us-west",
"OS-EXT-SRV-ATTR:hostname": "new-server-test",
"OS-EXT-STS:power_state": 1,
"OS-EXT-STS:task_state": null,
"OS-EXT-STS:vm_state": "active",
"os-extended-volumes:volumes_attached": [
{"id": "volume_id1", "delete_on_termination": false},
{"id": "volume_id2", "delete_on_termination": false}
],
"OS-SRV-USG:launched_at": "2013-09-23T13:37:00.880302",
"OS-SRV-USG:terminated_at": null,
"pinned_availability_zone": "us-west",
"progress": 0,
"security_groups": [
{
"name": "default"
}
],
"server_groups": [],
"status": "ACTIVE",
"tags": [],
"tenant_id": "6f70656e737461636b20342065766572",
"trusted_image_certificates": null,
"updated": "2013-09-03T04:01:33Z",
"user_id": "fake"
}
}
显示服务器详细信息示例 (2.73)
{
"server": {
"OS-DCF:diskConfig": "AUTO",
"OS-EXT-AZ:availability_zone": "nova",
"OS-EXT-SRV-ATTR:host": "compute",
"OS-EXT-SRV-ATTR:hostname": "new-server-test",
"OS-EXT-SRV-ATTR:hypervisor_hostname": "fake-mini",
"OS-EXT-SRV-ATTR:instance_name": "instance-00000001",
"OS-EXT-SRV-ATTR:kernel_id": "",
"OS-EXT-SRV-ATTR:launch_index": 0,
"OS-EXT-SRV-ATTR:ramdisk_id": "",
"OS-EXT-SRV-ATTR:reservation_id": "r-t61j9da6",
"OS-EXT-SRV-ATTR:root_device_name": "/dev/sda",
"OS-EXT-SRV-ATTR:user_data": "IyEvYmluL2Jhc2gKL2Jpbi9zdQplY2hvICJJIGFtIGluIHlvdSEiCg==",
"OS-EXT-STS:power_state": 1,
"OS-EXT-STS:task_state": null,
"OS-EXT-STS:vm_state": "active",
"OS-SRV-USG:launched_at": "2019-04-23T15:19:10.855016",
"OS-SRV-USG:terminated_at": null,
"accessIPv4": "1.2.3.4",
"accessIPv6": "80fe::",
"addresses": {
"private": [
{
"OS-EXT-IPS-MAC:mac_addr": "00:0c:29:0d:11:74",
"OS-EXT-IPS:type": "fixed",
"addr": "192.168.1.30",
"version": 4
}
]
},
"config_drive": "",
"created": "2019-04-23T15:19:09Z",
"description": null,
"flavor": {
"disk": 1,
"ephemeral": 0,
"extra_specs": {},
"original_name": "m1.tiny",
"ram": 512,
"swap": 0,
"vcpus": 1
},
"hostId": "2091634baaccdc4c5a1d57069c833e402921df696b7f970791b12ec6",
"host_status": "UP",
"id": "0e12087a-7c87-476a-8f84-7398e991cecc",
"image": {
"id": "70a599e0-31e7-49b7-b260-868f441e862b",
"links": [
{
"href": "http://openstack.example.com/6f70656e737461636b20342065766572/images/70a599e0-31e7-49b7-b260-868f441e862b",
"rel": "bookmark"
}
]
},
"key_name": null,
"links": [
{
"href": "http://openstack.example.com/v2.1/6f70656e737461636b20342065766572/servers/0e12087a-7c87-476a-8f84-7398e991cecc",
"rel": "self"
},
{
"href": "http://openstack.example.com/6f70656e737461636b20342065766572/servers/0e12087a-7c87-476a-8f84-7398e991cecc",
"rel": "bookmark"
}
],
"locked": true,
"locked_reason": "I don't want to work",
"metadata": {
"My Server Name": "Apache1"
},
"name": "new-server-test",
"os-extended-volumes:volumes_attached": [],
"progress": 0,
"security_groups": [
{
"name": "default"
}
],
"server_groups": [],
"status": "ACTIVE",
"tags": [],
"tenant_id": "6f70656e737461636b20342065766572",
"trusted_image_certificates": null,
"updated": "2019-04-23T15:19:11Z",
"user_id": "admin"
}
}
显示服务器详细信息示例 (2.69)
这是来自部署中不可响应部分的一个服务器的示例响应。可用服务器记录的响应将正常,没有缺失的键。
{
"server": {
"OS-EXT-AZ:availability_zone": "UNKNOWN",
"OS-EXT-STS:power_state": 0,
"created": "2018-12-03T21:06:18Z",
"flavor": {
"disk": 1,
"ephemeral": 0,
"extra_specs": {},
"original_name": "m1.tiny",
"ram": 512,
"swap": 0,
"vcpus": 1
},
"id": "33748c23-38dd-4f70-b774-522fc69e7b67",
"image": {
"id": "70a599e0-31e7-49b7-b260-868f441e862b",
"links": [
{
"href": "http://openstack.example.com/6f70656e737461636b20342065766572/images/70a599e0-31e7-49b7-b260-868f441e862b",
"rel": "bookmark"
}
]
},
"status": "UNKNOWN",
"tenant_id": "6f70656e737461636b20342065766572",
"user_id": "admin",
"links": [
{
"href": "http://openstack.example.com/v2.1/6f70656e737461636b20342065766572/servers/33748c23-38dd-4f70-b774-522fc69e7b67",
"rel": "self"
},
{
"href": "http://openstack.example.com/6f70656e737461636b20342065766572/servers/33748c23-38dd-4f70-b774-522fc69e7b67",
"rel": "bookmark"
}
]
}
}
更新现有服务器的可编辑属性。
正常响应代码:200
错误响应代码:badRequest(400)、unauthorized(401)、forbidden(403)、itemNotFound(404)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
server_id |
路径 |
字符串 |
服务器的 UUID。 |
server |
body |
对象 |
一个 |
accessIPv4(可选) |
body |
字符串 |
应从此服务器访问的 IPv4 地址。 |
accessIPv6(可选) |
body |
字符串 |
应从此服务器访问的 IPv6 地址。 |
name (可选) |
body |
字符串 |
服务器名称。 |
hostname (可选) |
body |
字符串 |
配置实例在元数据服务中使用的名称。 从微版本 2.94 开始,这可以是一个最大长度为 255 个字符的完全限定域名 (FQDN)。 注意 此信息通过元数据服务发布,需要 版本 2.90 新增 |
OS-DCF:diskConfig(可选) |
body |
字符串 |
控制 API 在创建、重建或调整服务器大小时如何对磁盘进行分区。服务器继承其创建的镜像的
|
description (可选) |
body |
字符串 |
服务器的自由格式描述。限制为 255 个字符。在微版本 2.19 之前,此字段设置为服务器名称。 版本 2.19 新增 |
注意
您可以独立指定要更新的参数。例如,仅 name,仅 description,name 和 description 等。
更新服务器示例 (2.63)
{
"server": {
"accessIPv4": "1.2.3.4",
"accessIPv6": "80fe::",
"OS-DCF:diskConfig": "AUTO",
"name": "new-server-test",
"description": "Sample description"
}
}
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
server |
body |
对象 |
一个 |
accessIPv4 |
body |
字符串 |
应使用此 IPv4 地址访问此服务器。可能由提供程序自动设置。 |
accessIPv6 |
body |
字符串 |
应使用此 IPv6 地址访问此服务器。可能由提供程序自动设置。 |
addresses |
body |
对象 |
服务器的地址。状态为 |
创建时间 |
body |
字符串 |
资源被创建的日期和时间。日期和时间戳格式为 ISO 8601。 CCYY-MM-DDThh:mm:ss±hh:mm
例如, |
flavor |
body |
对象 |
在 microversion 2.47 之前,这包含用于引导服务器实例的风味 ID 和链接。如果风味信息不再存在于系统中,这可能是一个空对象。 从 microversion 2.47 开始,这包含用于创建服务器实例的风味信息的一个子集,表示为嵌套字典。 |
flavor.id |
body |
字符串 |
风味 ID。虽然人们经常将其视为整数,但它实际上是一个字符串。 在 2.46 版本之前可用 |
flavor.links |
body |
数组 |
指向风味资源的链接。更多信息请参见 API 指南 / 链接和引用。 在 2.46 版本之前可用 |
flavor.vcpus |
body |
整数 |
分配给服务器的虚拟 CPU 数量。 2.47 版本新增 |
flavor.ram |
body |
整数 |
风味的大小,以 MiB 为单位。 2.47 版本新增 |
flavor.disk |
body |
整数 |
创建的根磁盘的大小,以 GiB 为单位。 2.47 版本新增 |
flavor.ephemeral |
body |
整数 |
创建的临时磁盘的大小,以 GiB 为单位。 2.47 版本新增 |
flavor.swap |
body |
整数 |
分配的专用交换磁盘的大小,以 MiB 为单位。 2.47 版本新增 |
flavor.original_name |
body |
字符串 |
风类的显示名称。 2.47 版本新增 |
flavor.extra_specs (可选) |
body |
对象 |
风类附加规格键值对的字典。仅当用户被策略允许索引风类附加规格时才包含。 2.47 版本新增 |
flavor.extra_specs.key |
body |
字符串 |
风类的附加规格键。 2.47 版本新增 |
flavor.extra_specs.value |
body |
字符串 |
风类的附加规格值。 2.47 版本新增 |
hostId |
body |
字符串 |
表示主机的 ID 字符串。这是一个哈希值,所以实际上看起来不像主机名,并且使用 project_id 的数据进行哈希,因此由两个不同的 project_id 看到的同一物理主机将是不同的。当同一项目内需要确定两个实例是否在相同或不同的物理主机上以用于可用性或性能目的时,它很有用。 |
id |
body |
字符串 |
服务器的 UUID。 |
image |
body |
对象 |
用于服务器实例的镜像的 UUID 和链接。当从卷引导服务器时, |
links |
body |
数组 |
指向相关资源的链接。有关更多信息,请参阅API 指南 / 链接和引用。 |
metadata |
body |
对象 |
元数据键值对的字典,为保持向后兼容而维护。 |
name |
body |
字符串 |
服务器名称。 |
OS-DCF:diskConfig |
body |
字符串 |
磁盘配置。值可以是
|
status |
body |
字符串 |
服务器状态。 |
tenant_id |
body |
字符串 |
多租户云中的租户 UUID。 |
updated |
body |
字符串 |
资源被更新的日期和时间。日期和时间戳格式为 ISO 8601。 CCYY-MM-DDThh:mm:ss±hh:mm
例如, |
user_id |
body |
字符串 |
拥有服务器的用户 ID。 |
fault (可选) |
body |
对象 |
一个故障对象。仅当服务器状态为 |
fault.code |
body |
整数 |
错误响应代码。 |
fault.created |
body |
字符串 |
异常引发的日期和时间。日期和时间戳格式为 ISO 8601 CCYY-MM-DDThh:mm:ss±hh:mm
例如, |
fault.message |
body |
字符串 |
错误消息。 |
fault.details (可选) |
body |
字符串 |
堆栈跟踪。如果响应代码不是 500 或您具有管理员权限,则可用。 |
pinned_availability_zone (可选) |
body |
字符串 |
这是服务器创建期间请求的可用区。此外,当 cross_az_attach 选项为 false 且从卷引导实例时,实例可以固定到 AZ,在这种情况下,实例将在属于固定 AZ 的主机上调度。另外,当 default_schedule_zone 配置选项设置为特定 AZ 时,在这种情况下,实例将被固定到该特定 AZ,并且实例将在属于固定 AZ 的主机上调度。如果没有固定可用区,此值设置为 null。 2.96 版本新增 |
progress(可选) |
body |
整数 |
操作进度的百分比值。此参数仅在服务器状态为 |
locked |
body |
布尔值 |
如果实例被锁定则为 True,否则为 False。 2.9 版本新增 |
description |
body |
字符串 |
服务器的描述。在 microversion 2.19 之前,这被设置为服务器名称。 版本 2.19 新增 |
tags |
body |
数组 |
标签列表。此列表中的最大标签数为 50。 版本 2.26 新增 |
trusted_image_certificates |
body |
数组 |
受信任的证书 ID 列表,用于在镜像签名验证期间验证签名证书。列表限制为最多 50 个 ID。如果未设置受信任的证书 ID,则值为 版本 2.63 新增 |
server_groups |
body |
数组 |
服务器所属的服务器组的 UUID。目前此项最多包含一个条目。 2.71 版本新增 |
locked_reason |
body |
字符串 |
锁定服务器的原因。 版本 2.73 新增 |
config_drive |
body |
字符串 |
指示是否为该服务器使用了配置驱动器。值为 2.75 版本新增 |
OS-EXT-AZ:availability_zone |
body |
字符串 |
可用区名称。 2.75 版本新增 |
OS-EXT-SRV-ATTR:host |
body |
字符串 |
实例运行的计算主机名称。仅对管理员用户显示在响应中。 2.75 版本新增 |
OS-EXT-SRV-ATTR:hostname (可选) |
body |
字符串 |
在元数据服务中报告的实例的主机名。此参数仅在管理员的响应中显示,直到 microversion 2.90,之后对所有用户显示。 注意 此信息通过元数据服务发布,需要 2.75 版本新增 |
OS-EXT-SRV-ATTR:hypervisor_hostname |
body |
字符串 |
Nova virt 驱动程序提供的虚拟机监控程序主机名。对于 Ironic 驱动程序,它是 Ironic 节点 uuid。仅对管理员用户显示在响应中。 2.75 版本新增 |
OS-EXT-SRV-ATTR:instance_name |
body |
字符串 |
实例名称。计算 API 从实例名称模板生成实例名称。仅对管理员用户显示在响应中。 2.75 版本新增 |
OS-EXT-SRV-ATTR:kernel_id (可选) |
body |
字符串 |
使用 AMI 时内核镜像的 UUID。如果没有,将为 null。默认情况下,仅对管理员用户显示在响应中。 2.75 版本新增 |
OS-EXT-SRV-ATTR:launch_index (可选) |
body |
整数 |
当通过多重创建启动服务器时,这是启动服务器的顺序。默认情况下,仅对管理员用户显示在响应中。 2.75 版本新增 |
OS-EXT-SRV-ATTR:ramdisk_id (可选) |
body |
字符串 |
使用 AMI 时引导磁盘镜像的 UUID。如果没有,将为 null。默认情况下,仅对管理员用户显示在响应中。 2.75 版本新增 |
OS-EXT-SRV-ATTR:reservation_id (可选) |
body |
字符串 |
服务器的预留 ID。这是一个 ID,可用于跟踪通过多重创建创建的服务器组,这些服务器组都将具有相同的 reservation_id。默认情况下,仅对管理员用户显示在响应中。 2.75 版本新增 |
OS-EXT-SRV-ATTR:root_device_name (可选) |
body |
字符串 |
实例的根设备名称。默认情况下,仅对管理员用户显示在响应中。 2.75 版本新增 |
OS-EXT-SRV-ATTR:user_data (可选) |
body |
字符串 |
创建实例时使用的 user_data。默认情况下,仅对管理员用户显示在响应中。 2.75 版本新增 |
OS-EXT-STS:power_state |
body |
整数 |
实例的电源状态。这是一个枚举值,映射为 0: NOSTATE
1: RUNNING
3: PAUSED
4: SHUTDOWN
6: CRASHED
7: SUSPENDED
2.75 版本新增 |
OS-EXT-STS:task_state |
body |
字符串 |
实例的任务状态。 2.75 版本新增 |
OS-EXT-STS:vm_state |
body |
字符串 |
VM 状态。 2.75 版本新增 |
os-extended-volumes:volumes_attached |
body |
数组 |
已附加的卷(如果有)。 2.75 版本新增 |
os-extended-volumes:volumes_attached.id |
body |
字符串 |
附加卷的 ID。 2.75 版本新增 |
os-extended-volumes:volumes_attached.delete_on_termination |
body |
布尔值 |
一个标志,指示附加的卷在服务器被删除时是否也会被删除。默认为 False。 2.75 版本新增 |
OS-SRV-USG:launched_at |
body |
字符串 |
服务器启动的日期和时间。 日期和时间戳格式为 ISO 8601 CCYY-MM-DDThh:mm:ss±hh:mm
例如,
2.75 版本新增 |
OS-SRV-USG:terminated_at |
body |
字符串 |
服务器删除的日期和时间。 日期和时间戳格式为 ISO 8601 CCYY-MM-DDThh:mm:ss±hh:mm
例如, 2.75 版本新增 |
security_groups (可选) |
body |
数组 |
一个或多个安全组对象。 2.75 版本新增 |
security_group.name |
body |
字符串 |
安全组名称。 2.75 版本新增 |
host_status (可选) |
body |
字符串 |
主机状态。列表中的下一个值可以覆盖前一个值
此属性仅在策略允许时出现在响应中。默认情况下,只有管理员可以获取此参数。 2.75 版本新增 |
key_name |
body |
字符串 |
如果有关联的密钥对,则为密钥对的名称。 2.75 版本新增 |
更新服务器详细信息示例 (2.98)
{
"server": {
"OS-DCF:diskConfig": "AUTO",
"OS-EXT-AZ:availability_zone": "us-west",
"OS-EXT-SRV-ATTR:hostname": "new-server-hostname.example.com",
"OS-EXT-STS:power_state": 1,
"OS-EXT-STS:task_state": null,
"OS-EXT-STS:vm_state": "active",
"OS-SRV-USG:launched_at": "2025-02-27T03:58:15.509865",
"OS-SRV-USG:terminated_at": null,
"accessIPv4": "1.2.3.4",
"accessIPv6": "80fe::",
"addresses": {
"private": [
{
"OS-EXT-IPS-MAC:mac_addr": "00:0c:29:0d:11:74",
"OS-EXT-IPS:type": "fixed",
"addr": "192.168.1.30",
"version": 4
}
]
},
"config_drive": "",
"created": "2025-02-27T03:58:14Z",
"description": null,
"flavor": {
"disk": 1,
"ephemeral": 0,
"extra_specs": {},
"original_name": "m1.tiny",
"ram": 512,
"swap": 0,
"vcpus": 1
},
"hostId": "2091634baaccdc4c5a1d57069c833e402921df696b7f970791b12ec6",
"id": "39115d82-00be-4432-84b5-381a89d7ebde",
"image": {
"id": "70a599e0-31e7-49b7-b260-868f441e862b",
"links": [
{
"href": "http://openstack.example.com/6f70656e737461636b20342065766572/images/70a599e0-31e7-49b7-b260-868f441e862b",
"rel": "bookmark"
}
],
"properties": {
"architecture": "x86_64",
"auto_disk_config": "True"
}
},
"key_name": null,
"links": [
{
"href": "http://openstack.example.com/v2.1/6f70656e737461636b20342065766572/servers/39115d82-00be-4432-84b5-381a89d7ebde",
"rel": "self"
},
{
"href": "http://openstack.example.com/6f70656e737461636b20342065766572/servers/39115d82-00be-4432-84b5-381a89d7ebde",
"rel": "bookmark"
}
],
"locked": false,
"locked_reason": null,
"metadata": {
"My Server Name": "Apache1"
},
"name": "new-server-test",
"os-extended-volumes:volumes_attached": [],
"pinned_availability_zone": "us-west",
"progress": 0,
"security_groups": [
{
"name": "default"
}
],
"server_groups": [],
"status": "ACTIVE",
"tags": [],
"tenant_id": "6f70656e737461636b20342065766572",
"trusted_image_certificates": null,
"updated": "2025-02-27T03:58:15Z",
"user_id": "fake"
}
}
更新服务器详细信息示例 (2.96)
{
"server": {
"OS-DCF:diskConfig": "AUTO",
"OS-EXT-AZ:availability_zone": "us-west",
"OS-EXT-SRV-ATTR:hostname": "new-server-hostname.example.com",
"OS-EXT-STS:power_state": 1,
"OS-EXT-STS:task_state": null,
"OS-EXT-STS:vm_state": "active",
"OS-SRV-USG:launched_at": "2025-02-27T01:17:47.110181",
"OS-SRV-USG:terminated_at": null,
"accessIPv4": "1.2.3.4",
"accessIPv6": "80fe::",
"addresses": {
"private": [
{
"OS-EXT-IPS-MAC:mac_addr": "00:0c:29:0d:11:74",
"OS-EXT-IPS:type": "fixed",
"addr": "192.168.1.30",
"version": 4
}
]
},
"config_drive": "",
"created": "2025-02-27T01:17:46Z",
"description": null,
"flavor": {
"disk": 1,
"ephemeral": 0,
"extra_specs": {},
"original_name": "m1.tiny",
"ram": 512,
"swap": 0,
"vcpus": 1
},
"hostId": "2091634baaccdc4c5a1d57069c833e402921df696b7f970791b12ec6",
"id": "374b76b3-d46b-48bc-b36e-6ab70b0ea217",
"image": {
"id": "70a599e0-31e7-49b7-b260-868f441e862b",
"links": [
{
"href": "http://openstack.example.com/6f70656e737461636b20342065766572/images/70a599e0-31e7-49b7-b260-868f441e862b",
"rel": "bookmark"
}
]
},
"key_name": null,
"links": [
{
"href": "http://openstack.example.com/v2.1/6f70656e737461636b20342065766572/servers/374b76b3-d46b-48bc-b36e-6ab70b0ea217",
"rel": "self"
},
{
"href": "http://openstack.example.com/6f70656e737461636b20342065766572/servers/374b76b3-d46b-48bc-b36e-6ab70b0ea217",
"rel": "bookmark"
}
],
"locked": false,
"locked_reason": null,
"metadata": {
"My Server Name": "Apache1"
},
"name": "new-server-test",
"os-extended-volumes:volumes_attached": [],
"pinned_availability_zone": "us-west",
"progress": 0,
"security_groups": [
{
"name": "default"
}
],
"server_groups": [],
"status": "ACTIVE",
"tags": [],
"tenant_id": "6f70656e737461636b20342065766572",
"trusted_image_certificates": null,
"updated": "2025-02-27T01:17:47Z",
"user_id": "fake"
}
}
更新服务器示例 (2.75)
{
"server": {
"OS-DCF:diskConfig": "AUTO",
"OS-EXT-AZ:availability_zone": "us-west",
"OS-EXT-SRV-ATTR:host": "compute",
"OS-EXT-SRV-ATTR:hostname": "new-server-test",
"OS-EXT-SRV-ATTR:hypervisor_hostname": "fake-mini",
"OS-EXT-SRV-ATTR:instance_name": "instance-00000001",
"OS-EXT-SRV-ATTR:kernel_id": "",
"OS-EXT-SRV-ATTR:launch_index": 0,
"OS-EXT-SRV-ATTR:ramdisk_id": "",
"OS-EXT-SRV-ATTR:reservation_id": "r-t61j9da6",
"OS-EXT-SRV-ATTR:root_device_name": "/dev/sda",
"OS-EXT-SRV-ATTR:user_data": "IyEvYmluL2Jhc2gKL2Jpbi9zdQplY2hvICJJIGFtIGluIHlvdSEiCg==",
"OS-EXT-STS:power_state": 1,
"OS-EXT-STS:task_state": null,
"OS-EXT-STS:vm_state": "active",
"OS-SRV-USG:launched_at": "2019-04-23T15:19:10.855016",
"OS-SRV-USG:terminated_at": null,
"accessIPv4": "1.2.3.4",
"accessIPv6": "80fe::",
"addresses": {
"private": [
{
"OS-EXT-IPS-MAC:mac_addr": "00:0c:29:0d:11:74",
"OS-EXT-IPS:type": "fixed",
"addr": "192.168.1.30",
"version": 4
}
]
},
"config_drive": "",
"created": "2012-12-02T02:11:57Z",
"description": "Sample description",
"flavor": {
"disk": 1,
"ephemeral": 0,
"extra_specs": {},
"original_name": "m1.tiny",
"ram": 512,
"swap": 0,
"vcpus": 1
},
"hostId": "6e84af987b4e7ec1c039b16d21f508f4a505672bd94fb0218b668d07",
"host_status": "UP",
"id": "324dfb7d-f4a9-419a-9a19-237df04b443b",
"image": {
"id": "70a599e0-31e7-49b7-b260-868f441e862b",
"links": [
{
"href": "http://openstack.example.com/6f70656e737461636b20342065766572/images/70a599e0-31e7-49b7-b260-868f441e862b",
"rel": "bookmark"
}
]
},
"key_name": null,
"links": [
{
"href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/servers/324dfb7d-f4a9-419a-9a19-237df04b443b",
"rel": "self"
},
{
"href": "http://openstack.example.com/6f70656e737461636b20342065766572/servers/324dfb7d-f4a9-419a-9a19-237df04b443b",
"rel": "bookmark"
}
],
"locked": false,
"locked_reason": null,
"metadata": {
"My Server Name": "Apache1"
},
"name": "new-server-test",
"os-extended-volumes:volumes_attached": [],
"progress": 0,
"security_groups": [
{
"name": "default"
}
],
"server_groups": [],
"status": "ACTIVE",
"tags": [],
"tenant_id": "6f70656e737461636b20342065766572",
"trusted_image_certificates": null,
"updated": "2012-12-02T02:11:58Z",
"user_id": "admin"
}
}
删除服务器。
默认情况下,实例将立即从系统中(硬)删除,但您可以设置 reclaim_instance_interval > 0 来使 API 软删除实例,这样实例在被软删除后不会立即删除,直到 reclaim_instance_interval 过期。标记为 SOFT_DELETED 的实例可以在被真正从系统中删除之前通过 restore 操作恢复。
先决条件
服务器必须存在。
当服务器状态未锁定且策略允许时,任何人都可以删除服务器。
如果服务器被锁定,您必须具有管理员权限才能删除服务器。
异步后置条件
使用正确的权限,您可以将服务器状态显示为
deleting。附加到服务器的端口,Nova 在创建服务器期间或稍后附加接口时创建的端口将被删除。
服务器不会出现在列表服务器响应中。
如果是硬删除,OpenStack Compute 管理的服务器将在计算节点上删除。
故障排除
如果服务器状态保持在
deleting状态或其他错误状态,则请求失败。确保您满足先决条件。然后,调查计算后端。当服务器被锁定即使您有正确权限时,请求也会返回 HTTP 409 响应代码。确保您满足先决条件,然后调查服务器状态。
OpenStack Compute 管理的服务器未从计算节点删除。
正常响应代码:204
错误响应代码:unauthorized(401)、forbidden(403)、itemNotFound(404)、conflict(409)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
server_id |
路径 |
字符串 |
服务器的 UUID。 |
响应¶
成功的 DELETE 查询没有响应正文内容
服务器 - 执行操作 (servers, action)¶
允许所有用户对服务器执行操作。在请求正文中指定操作。
服务器有许多可用操作
您可以将固定 IP 地址或浮动 IP 地址与服务器关联或解除关联
您可以从服务器创建镜像
您可以创建服务器的备份
您可以在延迟清理之前强制删除服务器
您可以锁定、暂停、重启、重建、救援、调整大小、恢复、确认调整大小、回滚待定调整大小、暂存、暂存卸载、取消暂存、启动、停止、解锁、取消暂停和取消救援服务器
您可以更改服务器的密码
您可以向服务器添加安全组或从服务器删除安全组
您可以触发服务器的崩溃转储
您可以获取服务器的图形或串行控制台
…等等。
警告
此 API 已弃用,并将从 microversion 2.44 开始以 404 失败。已被替换为使用 Neutron 网络服务 API。
向服务器添加一个浮动 IP 地址,该地址与服务器关联。
OpenStack Compute 中提供了一个由云管理员配置的浮动 IP 地址池。项目配额定义了您可以分配给项目的浮动 IP 地址的最大数量。在您为项目 创建(分配)浮动 IP 地址 后,您可以将该地址与服务器关联。在请求正文中指定 addFloatingIp 操作。
如果实例连接到多个网络,您可以使用可选的 fixed_address 参数将浮动 IP 地址与特定固定 IP 地址关联。
先决条件
服务器必须存在。
只有当服务器状态为 ACTIVE 或 STOPPED 时,您才能将浮动 IP 地址添加到服务器。
正常响应代码:202
错误响应代码:badRequest(400)、unauthorized(401)、forbidden(403)、itemNotFound(404)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
server_id |
路径 |
字符串 |
服务器的 UUID。 |
addFloatingIp |
body |
对象 |
操作。包含必需的浮动 IP |
address |
body |
字符串 |
浮动 IP 地址。 |
fixed_address (可选) |
body |
字符串 |
您想将其与浮动 IP 地址关联的固定 IP 地址。 |
添加(关联)浮动 IP(addFloatingIp 操作)示例
{
"addFloatingIp" : {
"address": "10.10.10.10",
"fixed_address": "192.168.1.30"
}
}
响应¶
如果成功,此方法不会在响应正文中返回内容。
向服务器添加安全组。
在请求正文中指定 addSecurityGroup 操作。
正常响应代码:202
错误响应代码:badRequest(400),unauthorized(401),forbidden(403),itemNotFound(404),conflict(409)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
server_id |
路径 |
字符串 |
服务器的 UUID。 |
addSecurityGroup |
body |
对象 |
将安全组添加到服务器的操作。 |
name |
body |
字符串 |
安全组名称。 |
向服务器添加安全组(addSecurityGroup 操作)示例
{
"addSecurityGroup": {
"name": "test"
}
}
响应¶
如果成功,此方法不会在响应正文中返回内容。
更改服务器的管理密码。
在请求正文中指定 changePassword 操作。
策略默认仅允许具有管理员角色或服务器所有者的用户执行此操作。云提供商可以通过 policy.json 文件更改这些权限。
正常响应代码:202
错误响应代码:badRequest(400)、unauthorized(401)、forbidden(403)、itemNotFound(404)、conflict(409)、notImplemented(501)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
server_id |
路径 |
字符串 |
服务器的 UUID。 |
changePassword |
body |
对象 |
更改服务器管理密码的操作。 |
adminPass |
body |
字符串 |
服务器的管理密码。 |
更改管理密码(changePassword 操作)示例
{
"changePassword" : {
"adminPass" : "foo"
}
}
响应¶
如果成功,此方法不会在响应正文中返回内容。
确认服务器的待定调整大小操作。
在请求正文中指定 confirmResize 操作。
进行此请求后,您通常必须持续轮询服务器状态以确定请求是否成功。成功确认的调整大小操作显示状态为 ACTIVE 或 SHUTOFF,并且迁移状态为 confirmed。您也可以在 OpenStack Compute 管理的计算节点上看到已调整大小的服务器。
先决条件
您只能在服务器状态为 VERIFY_RESIZE 时确认已调整大小的服务器。
如果服务器被锁定,您必须具有管理员权限才能确认服务器。
故障排除
如果服务器状态仍为 VERIFY_RESIZE,则请求失败。确保您满足先决条件并再次运行请求。如果请求再次失败,服务器状态应为 ERROR,迁移状态为 error。调查计算后端或咨询您的云提供商。有一些选项可以尝试更正服务器状态
如果服务器正在运行并且网络正常,具有适当权限的用户可以使用 重置服务器状态(os-resetState 操作) API 将服务器状态重置为
active。如果服务器未运行,您可以尝试使用 重启服务器(reboot 操作) API 对服务器进行硬重启。
请注意,云提供商可能仍需要在源虚拟机监控程序上清理任何孤立的资源。
正常响应代码:204
错误响应代码:badRequest(400),unauthorized(401),forbidden(403),itemNotFound(404),conflict(409)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
server_id |
路径 |
字符串 |
服务器的 UUID。 |
confirmResize |
body |
none |
确认调整大小操作的操作。 |
确认已调整大小的服务器(confirmResize 操作)示例
{
"confirmResize" : null
}
响应¶
如果成功,此方法不会在响应正文中返回内容。
创建服务器的备份。
注意
此 API 不支持基于卷的实例。
在请求正文中指定 createBackup 操作。
策略默认仅允许具有管理员角色或服务器所有者的用户执行此操作。云提供商可以通过 policy.json 文件更改这些权限。
注意
从 2.39 版本开始,Nova metadata 的镜像配额强制执行已移除,配额检查应直接使用 Glance API 进行。
正常响应代码:202
错误响应代码:badRequest(400),unauthorized(401),forbidden(403),itemNotFound(404),conflict(409)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
server_id |
路径 |
字符串 |
服务器的 UUID。 |
createBackup |
body |
对象 |
操作。 |
name |
body |
字符串 |
要备份的镜像的名称。 |
backup_type |
body |
字符串 |
备份类型,例如 |
rotation |
body |
整数 |
备份镜像的轮换次数,当镜像数量超过轮换次数时,最旧的镜像将被移除。 |
metadata (可选) |
body |
对象 |
元数据键值对。每个元数据键和值的最大大小为 255 字节。 |
创建服务器备份(createBackup 操作)示例
{
"createBackup": {
"name": "Backup 1",
"backup_type": "daily",
"rotation": 1
}
}
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
位置 |
标头 |
字符串 |
创建的镜像或备份的镜像位置 URL,将返回 HTTP 头“Location: <image location URL>”。 注意 返回的 URL 可能用户无法访问,不应依赖。使用 microversion 2.45 或仅从 Location 响应头中的 URL 解析镜像 ID。 在 2.44 版本之前可用 |
image_id |
body |
字符串 |
生成的镜像快照的 UUID。 2.45 版本新增 |
创建服务器备份示例 (v2.45)
{
"image_id": "0e7761dd-ee98-41f0-ba35-05994e446431"
}
从服务器创建镜像。
在请求正文中指定 createImage 操作。
进行此请求后,您通常必须持续轮询创建的镜像的状态以确定请求是否成功。
如果操作成功,创建的镜像状态为 active,服务器状态恢复到原始状态。您也可以在 OpenStack 镜像服务管理的镜像后端中看到新镜像。
注意
从 2.39 版本开始,Nova metadata 的镜像配额强制执行已移除,配额检查应直接使用 Glance API 进行。
先决条件
服务器必须存在。
只有当服务器状态为 ACTIVE、SHUTOFF、SUSPENDED 或 PAUSED(PAUSED 仅支持镜像后置服务器)时,才能创建新镜像。
当服务器附加有卷时,项目必须在块存储服务中拥有足够的卷快照配额。如果项目没有足够的卷快照配额,API 将返回 403 错误。
异步后置条件
将在镜像服务中创建镜像快照。
在镜像后置服务器的情况下,不会创建附加卷的卷快照。在卷后置服务器的情况下,将为服务器附加的所有卷创建卷快照,然后这些快照将作为 block_device_mapping 镜像属性在镜像服务中的结果镜像中表示。如果该快照镜像稍后用于创建新服务器,它将导致一个卷后置服务器,其中根卷是从原始根卷的快照创建的。从原始其他卷的快照创建的卷将被附加到服务器。
故障排除
如果镜像状态保持上传中或显示其他错误状态,则请求失败。确保您满足先决条件并再次运行请求。如果请求再次失败,请调查镜像后端。
如果服务器状态未恢复到原始服务器状态,则请求失败。确保您满足先决条件,或检查是否有其他操作导致服务器出现竞争条件,然后再次运行请求。如果请求再次失败,请调查计算后端或咨询您的云提供商。
如果请求因 OpenStack Compute 服务错误而失败,镜像将从 OpenStack 镜像服务管理的镜像存储中清除。确保您满足先决条件并再次运行请求。如果请求再次失败,请调查 OpenStack Compute 服务或咨询您的云提供商。
正常响应代码:202
错误响应代码:badRequest(400),unauthorized(401),forbidden(403),itemNotFound(404),conflict(409)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
server_id |
路径 |
字符串 |
服务器的 UUID。 |
createImage |
body |
对象 |
创建镜像或服务器卷的快照的操作。 |
name |
body |
字符串 |
镜像的显示名称。 |
metadata (可选) |
body |
对象 |
镜像的元数据键值对。每个元数据键值对的最大大小为 255 字节。 |
创建镜像(createImage 操作)示例
{
"createImage" : {
"name" : "foo-image",
"metadata": {
"meta_var": "meta_val"
}
}
}
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
位置 |
标头 |
字符串 |
创建的镜像或备份的镜像位置 URL,将返回 HTTP 头“Location: <image location URL>”。 注意 返回的 URL 可能用户无法访问,不应依赖。使用 microversion 2.45 或仅从 Location 响应头中的 URL 解析镜像 ID。 在 2.44 版本之前可用 |
image_id |
body |
字符串 |
生成的镜像快照的 UUID。 2.45 版本新增 |
创建镜像示例 (v2.45)
{
"image_id": "0e7761dd-ee98-41f0-ba35-05994e446431"
}
锁定服务器。
在请求正文中指定 lock 操作。
此操作成功且服务器被锁定后,非管理员用户的多数操作将不允许对该服务器进行。请参阅 Compute API 指南中“服务器操作”的“锁定、解锁”项目,了解受限操作。但管理员即使在服务器被锁定时也可以对服务器执行操作。请注意,从 microversion 2.73 开始,可以指定锁定服务器的原因。
解锁操作将解锁处于锁定状态的服务器,以便非管理员用户可以对其执行其他操作。
您可以通过 列出服务器详细信息 API 或 显示服务器详细信息 API 来了解服务器是否被锁定以及 locked_reason(如果已指定,从 2.73 microversion 开始)。
策略默认仅允许具有管理员角色或服务器所有者的用户执行此操作。云提供商可以通过 policy.json 文件更改这些权限。管理员可以覆盖所有者的锁定。
正常响应代码:202
错误响应代码:unauthorized(401)、forbidden(403)、itemNotFound(404)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
server_id |
路径 |
字符串 |
服务器的 UUID。 |
lock |
body |
对象 |
锁定服务器的操作。此参数可以为 |
locked_reason (可选) |
body |
字符串 |
锁定服务器的原因。长度限制为 255 个字符。 版本 2.73 新增 |
锁定服务器(lock 操作)示例
{
"lock": null
}
锁定服务器(lock 操作)示例(v2.73)
{
"lock": {"locked_reason": "I don't want to work"}
}
Response¶
如果成功,此方法不会在响应正文中返回内容。
暂停服务器。将其状态更改为 PAUSED。
在请求正文中指定 pause 操作。
策略默认仅允许具有管理员角色或服务器所有者的用户执行此操作。云提供商可以通过 policy.json 文件更改这些权限。
正常响应代码:202
错误响应代码:unauthorized(401)、forbidden(403)、itemNotFound(404)、conflict(409)、notImplemented(501)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
server_id |
路径 |
字符串 |
服务器的 UUID。 |
暂停 |
body |
none |
暂停服务器的操作。 |
暂停服务器(pause 操作)示例
{
"pause": null
}
响应¶
如果成功,此方法不会在响应正文中返回内容。
重启服务器。
在请求正文中指定 reboot 操作。
先决条件
重启服务器的先决条件取决于重启的类型。
您只能在服务器状态为 ACTIVE 时软重启服务器。
您只能在服务器状态为以下任一状态时硬重启服务器:
ACTIVEERRORHARD_REBOOTPAUSEDREBOOTSHUTOFFSUSPENDED
如果服务器被锁定,您必须具有管理员权限才能重启服务器。
异步后置条件
成功重启服务器后,其状态将变为 ACTIVE。
正常响应代码:202
错误响应代码:unauthorized(401)、forbidden(403)、itemNotFound(404)、conflict(409)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
server_id |
路径 |
字符串 |
服务器的 UUID。 |
reboot |
body |
对象 |
重启服务器的操作。 |
type |
body |
字符串 |
重启操作的类型。有效值为 |
重启服务器(reboot 操作)示例
{
"reboot" : {
"type" : "HARD"
}
}
响应¶
如果成功,此方法不会在响应正文中返回内容。
重建服务器。
在请求正文中指定 rebuild 操作。
此操作会重新创建服务器的根磁盘。
使用 microversion 2.93,我们支持重建卷后置实例,这将使用提供的镜像重新映像卷。对于 microversion < 2.93,此操作会保留卷的内容,前提是提供的镜像与创建卷的镜像相同,否则操作将失败。
先决条件
服务器状态必须为 ACTIVE、SHUTOFF 或 ERROR。
异步后置条件
如果服务器在重建之前处于 SHUTOFF 状态,它将在重建后停止并处于 SHUTOFF 状态,否则如果重建成功,它将为 ACTIVE,如果重建失败,则为 ERROR。
注意
使用 microversion 2.93,我们支持重建卷后置实例。如果指定了任何 microversion < 2.93,则存在一个已知限制,即在重建期间不会替换卷后置实例的根磁盘。
正常响应代码:202
错误响应代码:badRequest(400),unauthorized(401),forbidden(403),itemNotFound(404),conflict(409)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
server_id |
路径 |
字符串 |
服务器的 UUID。 |
rebuild |
body |
对象 |
重建服务器的操作。 |
imageRef |
body |
字符串 |
用于重建服务器实例的镜像的 UUID。它必须是有效的 UUID,否则 API 将返回 400。要使用新镜像重建卷后置服务器,至少需要提供 microversion 2.93,否则请求将回退到旧行为,即 API 将返回 400(对于与创建卷时使用的镜像不同的镜像)。对于非卷后置服务器,指定新镜像将验证该镜像对于服务器存在的当前计算主机是可接受的。如果新镜像无效,服务器将进入 |
accessIPv4(可选) |
body |
字符串 |
应从此服务器访问的 IPv4 地址。 |
accessIPv6(可选) |
body |
字符串 |
应从此服务器访问的 IPv6 地址。 |
adminPass(可选) |
body |
字符串 |
服务器的管理密码。如果省略此参数,操作将生成一个新密码。 |
metadata (可选) |
body |
对象 |
元数据键值对。每个元数据键和值的最大大小为 255 字节。 |
name (可选) |
body |
字符串 |
服务器名称。 |
OS-DCF:diskConfig(可选) |
body |
字符串 |
控制 API 在创建、重建或调整服务器大小时如何对磁盘进行分区。服务器继承其创建的镜像的
|
personality(可选) |
body |
数组 |
要在启动时注入服务器的文件路径和内容(仅文本)。文件路径数据的最大大小为 255 字节。最大限制是解码数据(而不是编码数据)允许的字节数。 在版本 2.56 之前可用 |
personality.path |
body |
字符串 |
personality 对象中的 path 字段。 在版本 2.56 之前可用 |
personality.contents |
body |
字符串 |
personality 对象中的 file contents 字段。 在版本 2.56 之前可用 |
preserve_ephemeral (可选) |
body |
布尔值 |
指示服务器是否通过保留临时分区( 注意 这仅适用于 Ironic 提供的裸机服务器。将其传递给任何其他服务器实例都会导致故障并阻止重建发生。 |
description (可选) |
body |
字符串 |
服务器的自由格式描述。限制为 255 个字符。在微版本 2.19 之前,此字段设置为服务器名称。 版本 2.19 新增 |
key_name(可选) |
body |
字符串 |
用于重建 API 的密钥对名称。如果指定 注意 同一项目内的用户可以使用新的密钥对重建其他用户的项目实例。密钥由用户拥有(这是唯一具有此特性的资源)。服务器由项目拥有。因此,使用 key_name 进行重建是查找调用重建的用户拥有的密钥对。 2.54 版本新增 |
user_data(可选) |
body |
字符串 |
重建时的配置信息或脚本。必须进行 Base64 编码。限制为 65535 字节。如果指定 2.57 版本新增 |
trusted_image_certificates(可选) |
body |
数组 |
受信任的证书 ID 列表,用于在镜像签名验证期间验证签名证书。列表限制为最多 50 个 ID。如果策略允许,此参数在服务器重建请求中是可选的,并且不支持卷后置实例。 如果指定 版本 2.63 新增 |
hostname (可选) |
body |
字符串 |
配置实例在元数据服务中使用的名称。 从微版本 2.94 开始,这可以是一个最大长度为 255 个字符的完全限定域名 (FQDN)。 注意 此信息通过元数据服务发布,需要 版本 2.90 新增 |
重建服务器(rebuild 操作)示例(v2.63)
{
"rebuild" : {
"accessIPv4" : "1.2.3.4",
"accessIPv6" : "80fe::",
"OS-DCF:diskConfig": "AUTO",
"imageRef" : "70a599e0-31e7-49b7-b260-868f441e862b",
"name" : "foobar",
"key_name": "new-key",
"description" : "description of foobar",
"adminPass" : "seekr3t",
"metadata" : {
"meta_var" : "meta_val"
},
"user_data": "ZWNobyAiaGVsbG8gd29ybGQi",
"trusted_image_certificates": [
"0b5d2c72-12cc-4ba6-a8d7-3ff5cc1d8cb8",
"674736e3-f25c-405c-8362-bbf991e0ce0a"
]
}
}
重建服务器(rebuild 操作)示例(v2.90)
{
"rebuild" : {
"accessIPv4" : "1.2.3.4",
"accessIPv6" : "80fe::",
"OS-DCF:diskConfig": "AUTO",
"imageRef" : "70a599e0-31e7-49b7-b260-868f441e862b",
"name" : "foobar",
"adminPass" : "seekr3t",
"hostname": "custom-hostname",
"metadata" : {
"meta_var" : "meta_val"
},
"user_data": "ZWNobyAiaGVsbG8gd29ybGQi"
}
}
重建服务器(rebuild 操作)示例(v2.94)
{
"rebuild" : {
"accessIPv4" : "1.2.3.4",
"accessIPv6" : "80fe::",
"OS-DCF:diskConfig": "AUTO",
"imageRef" : "70a599e0-31e7-49b7-b260-868f441e862b",
"name" : "foobar",
"adminPass" : "seekr3t",
"hostname": "custom-hostname.example.com",
"metadata" : {
"meta_var" : "meta_val"
},
"user_data": "ZWNobyAiaGVsbG8gd29ybGQi"
}
}
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
位置 |
标头 |
字符串 |
服务器的定位 URL,将返回 HTTP 头“Location: <server location URL>”。 |
server |
body |
对象 |
一个 |
accessIPv4 |
body |
字符串 |
应使用此 IPv4 地址访问此服务器。可能由提供程序自动设置。 |
accessIPv6 |
body |
字符串 |
应使用此 IPv6 地址访问此服务器。可能由提供程序自动设置。 |
addresses |
body |
对象 |
服务器的地址信息。 |
创建时间 |
body |
字符串 |
资源被创建的日期和时间。日期和时间戳格式为 ISO 8601。 CCYY-MM-DDThh:mm:ss±hh:mm
例如, |
flavor |
body |
对象 |
在 microversion 2.47 之前,这包含用于引导服务器实例的风味 ID 和链接。如果风味信息不再存在于系统中,这可能是一个空对象。 从 microversion 2.47 开始,这包含用于创建服务器实例的风味信息的一个子集,表示为嵌套字典。 |
flavor.id |
body |
字符串 |
风味 ID。虽然人们经常将其视为整数,但它实际上是一个字符串。 在 2.46 版本之前可用 |
flavor.links |
body |
数组 |
指向风味资源的链接。更多信息请参见 API 指南 / 链接和引用。 在 2.46 版本之前可用 |
flavor.vcpus |
body |
整数 |
分配给服务器的虚拟 CPU 数量。 2.47 版本新增 |
flavor.ram |
body |
整数 |
风味的大小,以 MiB 为单位。 2.47 版本新增 |
flavor.disk |
body |
整数 |
创建的根磁盘的大小,以 GiB 为单位。 2.47 版本新增 |
flavor.ephemeral |
body |
整数 |
创建的临时磁盘的大小,以 GiB 为单位。 2.47 版本新增 |
flavor.swap |
body |
整数 |
分配的专用交换磁盘的大小,以 MiB 为单位。 2.47 版本新增 |
flavor.original_name |
body |
字符串 |
风类的显示名称。 2.47 版本新增 |
flavor.extra_specs (可选) |
body |
对象 |
风类附加规格键值对的字典。仅当用户被策略允许索引风类附加规格时才包含。 2.47 版本新增 |
flavor.extra_specs.key |
body |
字符串 |
风类的附加规格键。 2.47 版本新增 |
flavor.extra_specs.value |
body |
字符串 |
风类的附加规格值。 2.47 版本新增 |
hostId |
body |
字符串 |
表示主机的 ID 字符串。这是一个哈希值,所以实际上看起来不像主机名,并且使用 project_id 的数据进行哈希,因此由两个不同的 project_id 看到的同一物理主机将是不同的。当同一项目内需要确定两个实例是否在相同或不同的物理主机上以用于可用性或性能目的时,它很有用。 |
id |
body |
字符串 |
服务器的 UUID。 |
image |
body |
对象 |
用于服务器实例的镜像的 UUID 和链接。当从卷引导服务器时, |
image.id |
body |
字符串 |
镜像的 ID。 |
image.links |
body |
数组 |
指向相关资源的链接。有关更多信息,请参阅API 指南 / 链接和引用。 |
image.properties |
body |
对象 |
镜像的属性键/值对。 2.98 版本新增 |
links |
body |
数组 |
与服务器相关的链接。更多信息请参见 API 指南 / 链接和引用。 |
metadata |
body |
对象 |
元数据键值对。每个元数据键值对的最大大小为 255 字节。 |
name |
body |
字符串 |
服务器名称。 |
OS-DCF:diskConfig |
body |
字符串 |
磁盘配置。值可以是
|
status |
body |
字符串 |
服务器状态。 |
tenant_id |
body |
字符串 |
多租户云中的租户 UUID。 |
updated |
body |
字符串 |
资源被更新的日期和时间。日期和时间戳格式为 ISO 8601。 CCYY-MM-DDThh:mm:ss±hh:mm
例如, |
user_id |
body |
字符串 |
拥有服务器的用户 ID。 |
adminPass(可选) |
body |
字符串 |
服务器的管理密码。如果将 |
pinned_availability_zone (可选) |
body |
字符串 |
这是服务器创建期间请求的可用区。此外,当 cross_az_attach 选项为 false 且从卷引导实例时,实例可以固定到 AZ,在这种情况下,实例将在属于固定 AZ 的主机上调度。另外,当 default_schedule_zone 配置选项设置为特定 AZ 时,在这种情况下,实例将被固定到该特定 AZ,并且实例将在属于固定 AZ 的主机上调度。如果没有固定可用区,此值设置为 null。 2.96 版本新增 |
progress(可选) |
body |
整数 |
操作进度的百分比值。此参数仅在服务器状态为 |
locked |
body |
布尔值 |
如果实例被锁定则为 True,否则为 False。 2.9 版本新增 |
description |
body |
字符串 |
服务器的描述。在 microversion 2.19 之前,这被设置为服务器名称。 版本 2.19 新增 |
tags |
body |
数组 |
标签列表。此列表中的最大标签数为 50。 版本 2.26 新增 |
key_name |
body |
字符串 |
如果有关联的密钥对,则为密钥对的名称。 2.54 版本新增 |
user_data |
body |
字符串 |
实例的当前 user_data。 2.57 版本新增 |
trusted_image_certificates |
body |
数组 |
受信任的证书 ID 列表,用于在镜像签名验证期间验证签名证书。列表限制为最多 50 个 ID。如果未设置受信任的证书 ID,则值为 版本 2.63 新增 |
server_groups |
body |
数组 |
服务器所属的服务器组的 UUID。目前此项最多包含一个条目。 2.71 版本新增 |
locked_reason |
body |
字符串 |
锁定服务器的原因。 版本 2.73 新增 |
config_drive |
body |
字符串 |
指示是否为该服务器使用了配置驱动器。值为 2.75 版本新增 |
OS-EXT-AZ:availability_zone |
body |
字符串 |
可用区名称。 2.75 版本新增 |
OS-EXT-SRV-ATTR:host |
body |
字符串 |
实例运行的计算主机名称。仅对管理员用户显示在响应中。 2.75 版本新增 |
OS-EXT-SRV-ATTR:hypervisor_hostname |
body |
字符串 |
Nova virt 驱动程序提供的虚拟机监控程序主机名。对于 Ironic 驱动程序,它是 Ironic 节点 uuid。仅对管理员用户显示在响应中。 2.75 版本新增 |
OS-EXT-SRV-ATTR:instance_name |
body |
字符串 |
实例名称。计算 API 从实例名称模板生成实例名称。仅对管理员用户显示在响应中。 2.75 版本新增 |
OS-EXT-STS:power_state |
body |
整数 |
实例的电源状态。这是一个枚举值,映射为 0: NOSTATE
1: RUNNING
3: PAUSED
4: SHUTDOWN
6: CRASHED
7: SUSPENDED
2.75 版本新增 |
OS-EXT-STS:task_state |
body |
字符串 |
实例的任务状态。 2.75 版本新增 |
OS-EXT-STS:vm_state |
body |
字符串 |
VM 状态。 2.75 版本新增 |
OS-EXT-SRV-ATTR:hostname (可选) |
body |
字符串 |
在元数据服务中报告的实例的主机名。此参数仅在管理员的响应中显示,直到 microversion 2.90,之后对所有用户显示。 注意 此信息通过元数据服务发布,需要 2.75 版本新增 |
OS-EXT-SRV-ATTR:reservation_id (可选) |
body |
字符串 |
服务器的预留 ID。这是一个 ID,可用于跟踪通过多重创建创建的服务器组,这些服务器组都将具有相同的 reservation_id。默认情况下,仅对管理员用户显示在响应中。 2.75 版本新增 |
OS-EXT-SRV-ATTR:launch_index (可选) |
body |
整数 |
当通过多重创建启动服务器时,这是启动服务器的顺序。默认情况下,仅对管理员用户显示在响应中。 2.75 版本新增 |
OS-EXT-SRV-ATTR:kernel_id (可选) |
body |
字符串 |
使用 AMI 时内核镜像的 UUID。如果没有,将为 null。默认情况下,仅对管理员用户显示在响应中。 2.75 版本新增 |
OS-EXT-SRV-ATTR:ramdisk_id (可选) |
body |
字符串 |
使用 AMI 时引导磁盘镜像的 UUID。如果没有,将为 null。默认情况下,仅对管理员用户显示在响应中。 2.75 版本新增 |
OS-EXT-SRV-ATTR:root_device_name (可选) |
body |
字符串 |
实例的根设备名称。默认情况下,仅对管理员用户显示在响应中。 2.75 版本新增 |
os-extended-volumes:volumes_attached |
body |
数组 |
已附加的卷(如果有)。 2.75 版本新增 |
os-extended-volumes:volumes_attached.id |
body |
字符串 |
附加卷的 ID。 2.75 版本新增 |
os-extended-volumes:volumes_attached.delete_on_termination |
body |
布尔值 |
一个标志,指示附加的卷在服务器被删除时是否也会被删除。默认为 False。 2.75 版本新增 |
OS-SRV-USG:launched_at |
body |
字符串 |
服务器启动的日期和时间。 日期和时间戳格式为 ISO 8601 CCYY-MM-DDThh:mm:ss±hh:mm
例如,
2.75 版本新增 |
OS-SRV-USG:terminated_at |
body |
字符串 |
服务器删除的日期和时间。 日期和时间戳格式为 ISO 8601 CCYY-MM-DDThh:mm:ss±hh:mm
例如, 2.75 版本新增 |
scheduler_hints |
body |
对象 |
在服务器创建时发送给调度程序的提示字典。 2.100 版本新增 |
security_groups (可选) |
body |
数组 |
一个或多个安全组对象。 2.75 版本新增 |
security_group.name |
body |
字符串 |
安全组名称。 2.75 版本新增 |
host_status (可选) |
body |
字符串 |
主机状态。列表中的下一个值可以覆盖前一个值
此属性仅在策略允许时出现在响应中。默认情况下,只有管理员可以获取此参数。 2.75 版本新增 |
重建服务器(rebuild 操作)示例(v2.100)
{
"server": {
"OS-DCF:diskConfig": "AUTO",
"OS-EXT-AZ:availability_zone": "us-west",
"OS-EXT-SRV-ATTR:hostname": "updated-hostname.example.com",
"OS-EXT-STS:power_state": 1,
"OS-EXT-STS:task_state": null,
"OS-EXT-STS:vm_state": "active",
"OS-SRV-USG:launched_at": "2021-08-19T15:16:22.177882",
"OS-SRV-USG:terminated_at": null,
"accessIPv4": "1.2.3.4",
"accessIPv6": "80fe::",
"addresses": {
"private": [
{
"OS-EXT-IPS-MAC:mac_addr": "00:0c:29:0d:11:74",
"OS-EXT-IPS:type": "fixed",
"addr": "192.168.1.30",
"version": 4
}
]
},
"adminPass": "seekr3t",
"config_drive": "",
"created": "2019-04-23T17:10:22Z",
"description": null,
"flavor": {
"disk": 1,
"ephemeral": 0,
"extra_specs": {},
"original_name": "m1.tiny",
"ram": 512,
"swap": 0,
"vcpus": 1
},
"hostId": "2091634baaccdc4c5a1d57069c833e402921df696b7f970791b12ec6",
"id": "0c37a84a-c757-4f22-8c7f-0bf8b6970886",
"image": {
"id": "70a599e0-31e7-49b7-b260-868f441e862b",
"links": [
{
"href": "http://openstack.example.com/6f70656e737461636b20342065766572/images/70a599e0-31e7-49b7-b260-868f441e862b",
"rel": "bookmark"
}
],
"properties": {
"architecture": "x86_64",
"auto_disk_config": "True"
}
},
"key_name": null,
"links": [
{
"href": "http://openstack.example.com/v2.1/6f70656e737461636b20342065766572/servers/0c37a84a-c757-4f22-8c7f-0bf8b6970886",
"rel": "self"
},
{
"href": "http://openstack.example.com/6f70656e737461636b20342065766572/servers/0c37a84a-c757-4f22-8c7f-0bf8b6970886",
"rel": "bookmark"
}
],
"locked": false,
"locked_reason": null,
"metadata": {
"meta_var": "meta_val"
},
"name": "foobar",
"os-extended-volumes:volumes_attached": [],
"progress": 0,
"pinned_availability_zone": "us-west",
"scheduler_hints": {
"same_host": [
"48e6a9f6-30af-47e0-bc04-acaed113bb4e"
]
},
"security_groups": [
{
"name": "default"
}
],
"server_groups": [],
"status": "ACTIVE",
"tags": [],
"tenant_id": "6f70656e737461636b20342065766572",
"trusted_image_certificates": null,
"updated": "2019-04-23T17:10:24Z",
"user_data": "ZWNobyAiaGVsbG8gd29ybGQi",
"user_id": "fake"
}
}
重建服务器(rebuild 操作)示例(v2.98)
{
"server": {
"OS-DCF:diskConfig": "AUTO",
"OS-EXT-AZ:availability_zone": "us-west",
"OS-EXT-SRV-ATTR:hostname": "updated-hostname.example.com",
"OS-EXT-STS:power_state": 1,
"OS-EXT-STS:task_state": null,
"OS-EXT-STS:vm_state": "active",
"OS-SRV-USG:launched_at": "2021-08-19T15:16:22.177882",
"OS-SRV-USG:terminated_at": null,
"accessIPv4": "1.2.3.4",
"accessIPv6": "80fe::",
"addresses": {
"private": [
{
"OS-EXT-IPS-MAC:mac_addr": "00:0c:29:0d:11:74",
"OS-EXT-IPS:type": "fixed",
"addr": "192.168.1.30",
"version": 4
}
]
},
"adminPass": "seekr3t",
"config_drive": "",
"created": "2019-04-23T17:10:22Z",
"description": null,
"flavor": {
"disk": 1,
"ephemeral": 0,
"extra_specs": {},
"original_name": "m1.tiny",
"ram": 512,
"swap": 0,
"vcpus": 1
},
"hostId": "2091634baaccdc4c5a1d57069c833e402921df696b7f970791b12ec6",
"id": "0c37a84a-c757-4f22-8c7f-0bf8b6970886",
"image": {
"id": "70a599e0-31e7-49b7-b260-868f441e862b",
"links": [
{
"href": "http://openstack.example.com/6f70656e737461636b20342065766572/images/70a599e0-31e7-49b7-b260-868f441e862b",
"rel": "bookmark"
}
],
"properties": {
"architecture": "x86_64",
"auto_disk_config": "True"
}
},
"key_name": null,
"links": [
{
"href": "http://openstack.example.com/v2.1/6f70656e737461636b20342065766572/servers/0c37a84a-c757-4f22-8c7f-0bf8b6970886",
"rel": "self"
},
{
"href": "http://openstack.example.com/6f70656e737461636b20342065766572/servers/0c37a84a-c757-4f22-8c7f-0bf8b6970886",
"rel": "bookmark"
}
],
"locked": false,
"locked_reason": null,
"metadata": {
"meta_var": "meta_val"
},
"name": "foobar",
"os-extended-volumes:volumes_attached": [],
"pinned_availability_zone": "us-west",
"progress": 0,
"security_groups": [
{
"name": "default"
}
],
"server_groups": [],
"status": "ACTIVE",
"tags": [],
"tenant_id": "6f70656e737461636b20342065766572",
"trusted_image_certificates": null,
"updated": "2019-04-23T17:10:24Z",
"user_data": "ZWNobyAiaGVsbG8gd29ybGQi",
"user_id": "fake"
}
}
重建服务器(rebuild 操作)示例(v2.96)
{
"server": {
"OS-DCF:diskConfig": "AUTO",
"OS-EXT-AZ:availability_zone": "us-west",
"OS-EXT-SRV-ATTR:hostname": "updated-hostname.example.com",
"OS-EXT-STS:power_state": 1,
"OS-EXT-STS:task_state": null,
"OS-EXT-STS:vm_state": "active",
"OS-SRV-USG:launched_at": "2025-02-27T01:27:30.210952",
"OS-SRV-USG:terminated_at": null,
"accessIPv4": "1.2.3.4",
"accessIPv6": "80fe::",
"addresses": {
"private": [
{
"OS-EXT-IPS-MAC:mac_addr": "00:0c:29:0d:11:74",
"OS-EXT-IPS:type": "fixed",
"addr": "192.168.1.30",
"version": 4
}
]
},
"adminPass": "seekr3t",
"config_drive": "",
"created": "2025-02-27T01:27:28Z",
"description": null,
"flavor": {
"disk": 1,
"ephemeral": 0,
"extra_specs": {},
"original_name": "m1.tiny",
"ram": 512,
"swap": 0,
"vcpus": 1
},
"hostId": "2091634baaccdc4c5a1d57069c833e402921df696b7f970791b12ec6",
"id": "a7920f90-14be-4c71-a6f9-6182f5df17c2",
"image": {
"id": "70a599e0-31e7-49b7-b260-868f441e862b",
"links": [
{
"href": "http://openstack.example.com/6f70656e737461636b20342065766572/images/70a599e0-31e7-49b7-b260-868f441e862b",
"rel": "bookmark"
}
]
},
"key_name": null,
"links": [
{
"href": "http://openstack.example.com/v2.1/6f70656e737461636b20342065766572/servers/a7920f90-14be-4c71-a6f9-6182f5df17c2",
"rel": "self"
},
{
"href": "http://openstack.example.com/6f70656e737461636b20342065766572/servers/a7920f90-14be-4c71-a6f9-6182f5df17c2",
"rel": "bookmark"
}
],
"locked": false,
"locked_reason": null,
"metadata": {
"meta_var": "meta_val"
},
"name": "foobar",
"os-extended-volumes:volumes_attached": [],
"pinned_availability_zone": "us-west",
"progress": 0,
"security_groups": [
{
"name": "default"
}
],
"server_groups": [],
"status": "ACTIVE",
"tags": [],
"tenant_id": "6f70656e737461636b20342065766572",
"trusted_image_certificates": null,
"updated": "2025-02-27T01:27:30Z",
"user_data": "ZWNobyAiaGVsbG8gd29ybGQi",
"user_id": "fake"
}
}
重建服务器(rebuild 操作)示例(v2.75)
{
"server": {
"OS-DCF:diskConfig": "AUTO",
"OS-EXT-AZ:availability_zone": "us-west",
"OS-EXT-SRV-ATTR:host": "compute",
"OS-EXT-SRV-ATTR:hostname": "new-server-test",
"OS-EXT-SRV-ATTR:hypervisor_hostname": "fake-mini",
"OS-EXT-SRV-ATTR:instance_name": "instance-00000001",
"OS-EXT-SRV-ATTR:kernel_id": "",
"OS-EXT-SRV-ATTR:launch_index": 0,
"OS-EXT-SRV-ATTR:ramdisk_id": "",
"OS-EXT-SRV-ATTR:reservation_id": "r-t61j9da6",
"OS-EXT-SRV-ATTR:root_device_name": "/dev/sda",
"OS-EXT-STS:power_state": 1,
"OS-EXT-STS:task_state": null,
"OS-EXT-STS:vm_state": "active",
"OS-SRV-USG:launched_at": "2019-04-23T15:19:10.855016",
"OS-SRV-USG:terminated_at": null,
"accessIPv4": "1.2.3.4",
"accessIPv6": "80fe::",
"addresses": {
"private": [
{
"OS-EXT-IPS-MAC:mac_addr": "00:0c:29:0d:11:74",
"OS-EXT-IPS:type": "fixed",
"addr": "192.168.1.30",
"version": 4
}
]
},
"adminPass": "seekr3t",
"config_drive": "",
"created": "2019-04-23T17:10:22Z",
"description": null,
"flavor": {
"disk": 1,
"ephemeral": 0,
"extra_specs": {},
"original_name": "m1.tiny",
"ram": 512,
"swap": 0,
"vcpus": 1
},
"hostId": "2091634baaccdc4c5a1d57069c833e402921df696b7f970791b12ec6",
"host_status": "UP",
"id": "0c37a84a-c757-4f22-8c7f-0bf8b6970886",
"image": {
"id": "70a599e0-31e7-49b7-b260-868f441e862b",
"links": [
{
"href": "http://openstack.example.com/6f70656e737461636b20342065766572/images/70a599e0-31e7-49b7-b260-868f441e862b",
"rel": "bookmark"
}
]
},
"key_name": null,
"links": [
{
"href": "http://openstack.example.com/v2.1/6f70656e737461636b20342065766572/servers/0c37a84a-c757-4f22-8c7f-0bf8b6970886",
"rel": "self"
},
{
"href": "http://openstack.example.com/6f70656e737461636b20342065766572/servers/0c37a84a-c757-4f22-8c7f-0bf8b6970886",
"rel": "bookmark"
}
],
"locked": false,
"locked_reason": null,
"metadata": {
"meta_var": "meta_val"
},
"name": "foobar",
"os-extended-volumes:volumes_attached": [],
"progress": 0,
"security_groups": [
{
"name": "default"
}
],
"server_groups": [],
"status": "ACTIVE",
"tags": [],
"tenant_id": "6f70656e737461636b20342065766572",
"trusted_image_certificates": null,
"updated": "2019-04-23T17:10:24Z",
"user_data": "ZWNobyAiaGVsbG8gd29ybGQi",
"user_id": "admin"
}
}
警告
此 API 已弃用,并将从 microversion 2.44 开始以 404 失败。已被替换为使用 Neutron 网络服务 API。
从服务器移除或解除关联一个浮动 IP 地址。
IP 地址将返回到可供所有项目使用的 IP 地址池。当您移除一个浮动 IP 地址并且该 IP 地址仍与正在运行的实例关联时,它将自动与该实例解除关联。
在请求正文中指定 removeFloatingIp 操作。
正常响应代码:202
错误响应代码:badRequest(400),unauthorized(401),forbidden(403),itemNotFound(404),conflict(409)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
server_id |
路径 |
字符串 |
服务器的 UUID。 |
removeFloatingIp |
body |
对象 |
从服务器移除或解除关联浮动 IP 地址的操作。 |
address |
body |
字符串 |
浮动 IP 地址。 |
移除(解除关联)浮动 IP(removeFloatingIp 操作)示例
{
"removeFloatingIp": {
"address": "172.16.10.7"
}
}
响应¶
如果成功,此方法不会在响应正文中返回内容。
从服务器移除安全组。
在请求正文中指定 removeSecurityGroup 操作。
正常响应代码:202
错误响应代码:badRequest(400),unauthorized(401),forbidden(403),itemNotFound(404),conflict(409)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
server_id |
路径 |
字符串 |
服务器的 UUID。 |
removeSecurityGroup |
body |
对象 |
从服务器移除安全组的操作。 |
name |
body |
字符串 |
安全组名称。 |
从服务器移除安全组(removeSecurityGroup 操作)示例
{
"removeSecurityGroup": {
"name": "test"
}
}
响应¶
如果成功,此方法不会在响应正文中返回内容。
将服务器置于救援模式,并将其状态更改为 RESCUE。
注意
直到 microversion 2.87,此 API 不支持卷后置实例。
在请求正文中指定 rescue 操作。
如果您指定了 rescue_image_ref 扩展属性,则使用该镜像来救援实例。如果您省略了镜像引用,则默认使用基础镜像引用。
异步后置条件
成功救援服务器并发出 GET /servers/{server_id} 请求后,其状态将更改为 RESCUE。
正常响应代码:200
错误响应代码:badRequest(400)、unauthorized(401)、forbidden(403)、itemNotFound(404)、conflict(409)、notImplemented(501)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
server_id |
路径 |
字符串 |
服务器的 UUID。 |
rescue |
body |
对象 |
救援服务器的操作。 |
adminPass(可选) |
body |
字符串 |
被救援实例的密码。如果省略此参数,操作将生成新密码。 |
rescue_image_ref (可选) |
body |
字符串 |
用于救援服务器实例的镜像引用。通过 ID 或完整 URL 指定镜像引用。如果您省略了镜像引用,则默认为基础镜像引用。 |
救援服务器(rescue 操作)示例
{
"rescue": {
"adminPass": "MySecretPass",
"rescue_image_ref": "70a599e0-31e7-49b7-b260-868f441e862b"
}
}
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
adminPass(可选) |
body |
字符串 |
服务器的管理密码。如果将 |
救援服务器(rescue 操作)示例
{
"adminPass": "MySecretPass"
}
调整服务器大小。
在请求正文中指定 resize 操作。
先决条件
您只能在服务器状态为 ACTIVE 或 SHUTOFF 时调整服务器大小。
如果服务器被锁定,您必须具有管理员权限才能调整服务器大小。
异步后置条件
成功调整大小的服务器显示 VERIFY_RESIZE 状态和 finished 迁移状态。如果云已配置 Compute 服务的 resize_confirm_window 选项为正值,则 Compute 服务将在配置的间隔后自动确认调整大小操作。
注意
有一个已知限制,即临时磁盘未调整大小。
正常响应代码:202
错误响应代码:badRequest(400),unauthorized(401),forbidden(403),itemNotFound(404),conflict(409)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
server_id |
路径 |
字符串 |
服务器的 UUID。 |
调整大小 |
body |
对象 |
调整服务器大小的操作。 |
flavorRef |
body |
字符串 |
调整服务器大小的风味 ID。要调整大小到的风味中的磁盘大小必须大于或等于当前风味中的磁盘大小。 如果指定的风味 ID 与服务器的当前风味 ID 相同,则请求将返回 |
OS-DCF:diskConfig(可选) |
body |
字符串 |
控制 API 在创建、重建或调整服务器大小时如何对磁盘进行分区。服务器继承其创建的镜像的
|
调整服务器大小(Resize 操作)示例
{
"resize" : {
"flavorRef" : "2",
"OS-DCF:diskConfig": "AUTO"
}
}
响应¶
如果成功,此方法不会在响应正文中返回内容。
恢复挂起的服务器,并将其状态更改为 ACTIVE。
在请求正文中指定 resume 操作。
策略默认仅允许具有管理员角色或服务器所有者的用户执行此操作。云提供商可以通过 policy.json 文件更改这些权限。
正常响应代码:202
错误响应代码:unauthorized(401)、forbidden(403)、itemNotFound(404)、conflict(409)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
server_id |
路径 |
字符串 |
服务器的 UUID。 |
resume |
body |
none |
恢复挂起的服务器的操作。 |
恢复挂起的服务器(Resume 操作)示例
{
"resume": null
}
响应¶
如果成功,此方法不会在响应正文中返回内容。
取消并回滚服务器的待定调整大小操作。
在请求正文中指定 revertResize 操作。
先决条件
您只能在服务器状态为 VERIFY_RESIZE 且 OS-EXT-STS:vm_state 为 resized 时回滚已调整大小的服务器。
如果服务器被锁定,您必须具有管理员权限才能回滚调整大小。
异步后置条件
进行此请求后,您通常必须持续轮询服务器状态以确定请求是否成功。回滚调整大小操作显示状态为 REVERT_RESIZE,任务状态为 resize_reverting。如果成功,状态将恢复到 ACTIVE 或 SHUTOFF。您也可以在 OpenStack Compute 管理的计算节点上看到已回滚的服务器。
故障排除
如果服务器状态仍为 VERIFY_RESIZE,则请求失败。确保您满足先决条件并再次运行请求。如果请求再次失败,请调查计算后端。
服务器未在 OpenStack Compute 管理的计算节点上回滚。
正常响应代码:202
错误响应代码:badRequest(400),unauthorized(401),forbidden(403),itemNotFound(404),conflict(409)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
server_id |
路径 |
字符串 |
服务器的 UUID。 |
revertResize |
body |
none |
回滚调整大小操作的操作。 |
回滚已调整大小的服务器(revertResize 操作)示例
{
"revertResize" : null
}
响应¶
如果成功,此方法不会在响应正文中返回内容。
启动已停止的服务器,并将其状态更改为 ACTIVE。
在请求正文中指定 os-start 操作。
先决条件
服务器状态必须为 SHUTOFF。
如果服务器被锁定,您必须具有管理员权限才能启动服务器。
异步后置条件
成功启动服务器后,其状态将更改为 ACTIVE。
故障排除
如果服务器状态未更改为 ACTIVE,则启动操作失败。确保您满足先决条件并再次运行请求。如果请求再次失败,请调查是否还有其他操作正在运行,导致了竞争条件。
正常响应代码:202
错误响应代码:unauthorized(401)、forbidden(403)、itemNotFound(404)、conflict(409)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
server_id |
路径 |
字符串 |
服务器的 UUID。 |
os-start |
body |
none |
启动已停止服务器的操作。 |
启动服务器示例
{
"os-start" : null
}
响应¶
如果成功,此方法不会在响应正文中返回内容。
停止正在运行的服务器,并将其状态更改为 SHUTOFF。
在请求正文中指定 os-stop 操作。
先决条件
服务器状态必须为 ACTIVE 或 ERROR。
如果服务器被锁定,您必须具有管理员权限才能停止服务器。
异步后置条件
成功停止服务器后,其状态将更改为 SHUTOFF。此 API 操作不会删除服务器实例数据,数据将在 os-start 操作后再次可用。
正常响应代码:202
错误响应代码:unauthorized(401)、forbidden(403)、itemNotFound(404)、conflict(409)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
server_id |
路径 |
字符串 |
服务器的 UUID。 |
os-stop |
body |
none |
停止正在运行的服务器的操作。 |
停止服务器示例
{
"os-stop" : null
}
响应¶
如果成功,此方法不会在响应正文中返回内容。
挂起服务器,并将其状态更改为 SUSPENDED。
在请求正文中指定 suspend 操作。
策略默认仅允许具有管理员角色或服务器所有者的用户执行此操作。云提供商可以通过 policy.json 文件更改这些权限。
正常响应代码:202
错误响应代码:unauthorized(401)、forbidden(403)、itemNotFound(404)、conflict(409)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
server_id |
路径 |
字符串 |
服务器的 UUID。 |
挂起 |
body |
none |
挂起服务器的操作。 |
挂起服务器(suspend 操作)示例
{
"suspend": null
}
响应¶
如果成功,此方法不会在响应正文中返回内容。
解锁锁定的服务器。
在请求正文中指定 unlock 操作。
策略默认仅允许具有管理员角色或服务器所有者的用户执行此操作。云提供商可以通过 policy.json 文件更改这些权限。
正常响应代码:202
错误响应代码:unauthorized(401)、forbidden(403)、itemNotFound(404)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
server_id |
路径 |
字符串 |
服务器的 UUID。 |
unlock |
body |
none |
解锁锁定服务器的操作。 |
解锁服务器(unlock 操作)示例
{
"unlock": null
}
响应¶
如果成功,此方法不会在响应正文中返回内容。
取消暂停处于暂停状态的服务器,并将其状态更改为 ACTIVE。
在请求正文中指定 unpause 操作。
策略默认仅允许具有管理员角色或服务器所有者的用户执行此操作。云提供商可以通过 policy.json 文件更改这些权限。
正常响应代码:202
错误响应代码:unauthorized(401)、forbidden(403)、itemNotFound(404)、conflict(409)、notImplemented(501)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
server_id |
路径 |
字符串 |
服务器的 UUID。 |
取消暂停 |
body |
none |
取消暂停处于暂停状态的服务器的操作。 |
取消暂停服务器(unpause 操作)示例
{
"unpause": null
}
响应¶
如果成功,此方法不会在响应正文中返回内容。
取消救援服务器。将状态更改为 ACTIVE。
在请求正文中指定 unrescue 操作。
先决条件
服务器必须存在。
您只能在服务器状态为 RESCUE 时取消救援服务器。
异步后置条件
成功取消救援服务器并发出 GET /servers/{server_id} 请求后,其状态将更改为 ACTIVE。
正常响应代码:202
错误响应代码:unauthorized(401)、forbidden(403)、itemNotFound(404)、conflict(409)、notImplemented(501)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
server_id |
路径 |
字符串 |
服务器的 UUID。 |
取消救援 |
body |
none |
处于救援模式下的服务器的取消救援操作。 |
取消救援服务器示例
{
"unrescue": null
}
响应¶
如果成功,此方法不会在响应正文中返回内容。
警告
此 API 已弃用,并将从 microversion 2.44 开始以 404 失败。已被替换为使用 Neutron 网络服务 API。
向服务器实例添加一个固定 IP 地址,该地址与服务器关联。固定 IP 地址从请求中指定的网络检索。
在请求正文中指定 addFixedIp 操作和网络 ID。
策略默认仅允许具有管理员角色或服务器所有者的用户执行此操作。云提供商可以通过 policy.json 文件更改这些权限。
正常响应代码:202
错误响应代码:badRequest(400)、unauthorized(401)、forbidden(403)、itemNotFound(404)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
server_id |
路径 |
字符串 |
服务器的 UUID。 |
addFixedIp |
body |
对象 |
向服务器添加固定 IP 地址的操作。 |
networkId |
body |
字符串 |
网络 ID。 |
添加(关联)固定 IP(addFixedIp 操作)示例
{
"addFixedIp": {
"networkId": "e1882e38-38c2-4239-ade7-35d644cb963a"
}
}
响应¶
成功的 addFixedIp 操作后,不会返回响应正文。
警告
此 API 已弃用,并将从 microversion 2.44 开始以 404 失败。已被替换为使用 Neutron 网络服务 API。
从服务器移除或解除关联一个固定 IP 地址。
在请求正文中指定 removeFixedIp 操作。
策略默认仅允许具有管理员角色或服务器所有者的用户执行此操作。云提供商可以通过 policy.json 文件更改这些权限。
正常响应代码:202
错误响应代码:badRequest(400)、unauthorized(401)、forbidden(403)、itemNotFound(404)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
server_id |
路径 |
字符串 |
服务器的 UUID。 |
removeFixedIp |
body |
对象 |
从服务器移除固定 IP 地址的操作。 |
address |
body |
字符串 |
IP 地址。 |
移除(解除关联)固定 IP(removeFixedIp 操作)示例
{
"removeFixedIp": {
"address": "10.0.0.4"
}
}
响应¶
成功的 removeFixedIp 操作后,不会返回响应正文。
在延迟清理之前强制删除服务器。
在请求正文中指定 forceDelete 操作。
策略默认仅允许具有管理员角色或服务器所有者的用户执行此操作。云提供商可以通过 policy.json 文件更改这些权限。
正常响应代码:202
错误响应代码:unauthorized(401)、forbidden(403)、itemNotFound(404)、conflict(409)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
server_id |
路径 |
字符串 |
服务器的 UUID。 |
forceDelete |
body |
none |
操作。 |
强制删除服务器(forceDelete 操作):JSON 请求
{
"forceDelete": null
}
响应¶
成功提交后没有正文返回。
恢复先前已软删除的服务器实例。您不能使用此方法恢复已删除的实例。
在请求正文中指定 restore 操作。
策略默认仅允许具有管理员角色或服务器所有者的用户执行此操作。云提供商可以通过 policy.json 文件更改这些权限。
正常响应代码:202
错误响应代码:unauthorized(401)、forbidden(403)、itemNotFound(404)、conflict(409)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
server_id |
路径 |
字符串 |
服务器的 UUID。 |
restore |
body |
none |
操作。 |
恢复软删除实例(restore 操作)示例:JSON 请求
{
"restore": null
}
响应¶
成功提交后没有正文返回。
显示服务器的控制台输出。
此 API 返回自启动以来的控制台文本。返回的内容可能很大。通过在请求正文中设置可选的 length 参数,限制从内容末尾开始的控制台文本行数。
从其获取控制台日志的服务器应设置 export LC_ALL=en_US.UTF-8 以避免不正确的 Unicode 错误。
正常响应代码:200
错误响应代码:unauthorized(401)、forbidden(403)、notFound(404)、conflict(409)、methodNotImplemented(501)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
server_id |
路径 |
字符串 |
服务器的 UUID。 |
os-getConsoleOutput |
body |
对象 |
获取服务器控制台输出的操作。 |
length (可选) |
body |
整数 |
从控制台日志末尾获取的行数。如果未指定此参数,则返回所有行。 注意 此参数不仅可以指定为“整数”,还可以指定为“字符串”。 |
显示控制台输出(os-getConsoleOutput 操作)示例
此示例请求指定服务器的最后 50 行控制台内容。
{
"os-getConsoleOutput": {
"length": 50
}
}
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
output |
body |
字符串 |
控制台输出作为字符串。控制字符将被转义以创建有效的 JSON 字符串。 |
显示控制台输出(os-getConsoleOutput 操作)示例
{
"output": "FAKE CONSOLE OUTPUT\nANOTHER\nLAST LINE"
}
暂存服务器。
在请求正文中指定 shelve 操作。
所有关联的数据和资源都将保留,但内存中的任何内容都不会被保留。要恢复暂存的实例,请使用 unshelve 操作。要移除暂存的实例,请使用 shelveOffload 操作。
策略默认仅允许具有管理员角色或服务器所有者的用户执行此操作。云提供商可以通过 policy.json 文件更改这些权限。
先决条件
服务器状态必须为 ACTIVE、SHUTOFF、PAUSED 或 SUSPENDED。
如果服务器被锁定,您必须具有管理员权限才能暂存服务器。
异步后置条件
成功暂存服务器后,其状态将更改为 SHELVED,镜像状态为 ACTIVE。服务器实例数据出现在 Compute 服务管理的计算节点上。
如果您从卷引导服务器或将 shelved_offload_time 选项设置为 0,则 Compute 服务将自动删除计算节点上的实例,并将服务器状态更改为 SHELVED_OFFLOADED。
故障排除
如果服务器状态未更改为 SHELVED 或 SHELVED_OFFLOADED,则暂存操作失败。确保您满足先决条件并再次运行请求。如果请求再次失败,请调查是否还有其他操作正在运行,导致了竞争条件。
正常响应代码:202
错误响应代码:unauthorized(401)、forbidden(403)、itemNotFound(404)、conflict(409)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
server_id |
路径 |
字符串 |
服务器的 UUID。 |
shelve |
body |
none |
操作。 |
暂存服务器(shelve 操作)示例
{
"shelve": null
}
响应¶
如果成功,此方法不会在响应正文中返回内容。
暂存卸载,或移除,一个已暂存的服务器。
在请求正文中指定 shelveOffload 操作。
将删除数据和资源关联。如果不再需要实例,您可以从虚拟机监控程序中移除该实例以最小化资源使用。
策略默认仅允许具有管理员角色或服务器所有者的用户执行此操作。云提供商可以通过 policy.json 文件更改这些权限。
先决条件
服务器状态必须为 SHELVED。
如果服务器被锁定,您必须具有管理员权限才能暂存卸载服务器。
异步后置条件
成功暂存卸载服务器后,其状态将更改为 SHELVED_OFFLOADED。服务器实例数据出现在计算节点上。
故障排除
如果服务器状态未变为 SHELVED_OFFLOADED,则表示 shelve-offload 操作失败。请确保您满足先决条件并重新运行请求。如果请求再次失败,请调查是否有其他操作正在运行导致了竞态条件。
正常响应代码:202
错误响应代码:unauthorized(401)、forbidden(403)、itemNotFound(404)、conflict(409)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
server_id |
路径 |
字符串 |
服务器的 UUID。 |
shelveOffload |
body |
none |
操作。 |
示例:Shelf-Offload 服务器(shelveOffload 操作)
{
"shelveOffload": null
}
响应¶
如果成功,此方法不会在响应正文中返回内容。
Unshelve,即恢复,已 Shelved 的服务器。
在请求正文中指定 unshelve 操作。
策略默认仅允许具有管理员角色或服务器所有者的用户执行此操作。云提供商可以通过 policy.json 文件更改这些权限。
先决条件
在不带参数的情况下 Unshelve 服务器要求其状态为 SHELVED 或 SHELVED_OFFLOADED。
使用 availability_zone 和/或 host 参数 Unshelve 服务器要求其状态仅为 SHELVED_OFFLOADED,否则将返回 HTTP 409 conflict 响应。
如果服务器被锁定,您必须拥有管理员权限才能 Unshelve 该服务器。
从 microversion 2.91 开始,如果您拥有 PROJECT_ADMIN 权限,则可以将服务器 Unshelve 到指定的计算节点。此微版本还提供了将服务器固定到 availability_zone 和取消固定服务器(从任何 availability_zone)的功能。
当服务器固定到一个 availability_zone 时,服务器移动操作将使服务器保留在该 availability_zone 中。但是,当服务器未固定到任何 availability_zone 时,移动操作可以将服务器移动到不同 availability_zones 中的节点。
根据 unshelve 参数的行为将遵循下表。
启动 |
AZ (1) |
Host (1) |
结果 |
|---|---|---|---|
无 AZ |
无 AZ 或 AZ=null |
否 |
自由调度(2) |
无 AZ |
无 AZ 或 AZ=null |
Host1 |
调度到 Host1。服务器保持未固定状态。 |
无 AZ |
AZ=”AZ1” |
否 |
调度到“AZ1”中的任何主机。服务器固定到“AZ1”。 |
无 AZ |
AZ=”AZ1” |
Host1 |
验证 Host1 是否在“AZ1”中,然后调度到 Host1,否则拒绝请求。服务器固定到“AZ1”。 |
AZ1 |
无 AZ |
否 |
调度到“AZ1”中的任何主机。服务器保持固定到“AZ1”。 |
AZ1 |
AZ=null |
否 |
自由调度(2)。服务器未固定。 |
AZ1 |
无 AZ |
Host1 |
验证 Host1 是否在“AZ1”中,然后调度到 Host1,否则拒绝请求。服务器保持固定到“AZ1”。 |
AZ1 |
AZ=null |
Host1 |
调度到 Host1。服务器未固定。 |
AZ1 |
AZ=”AZ2” |
否 |
调度到“AZ2”中的任何主机。服务器固定到“AZ2”。 |
AZ1 |
AZ=”AZ2” |
Host1 |
验证 Host1 是否在“AZ2”中,然后调度到 Host1,否则拒绝请求。服务器固定到“AZ2”。 |
Unshelve 请求体参数
调度到任何可用主机。
异步后置条件
成功 Unshelve 服务器后,其状态将变为 ACTIVE。服务器将出现在计算节点上。
Shelved 镜像将从 API 调用返回的镜像列表中删除。
故障排除
如果服务器状态未变为 ACTIVE,则表示 unshelve 操作失败。请确保您满足先决条件并重新运行请求。如果请求再次失败,请调查是否有其他操作正在运行导致了竞态条件。
正常响应代码:202
错误响应代码:badRequest(400),unauthorized(401),forbidden(403),itemNotFound(404),conflict(409)
请求¶
注意
从 microversion 2.77 开始,允许的请求体 schema 为 {“unshelve”: null} 或 {“unshelve”: {“availability_zone”: <string>}}。不允许使用 {“unshelve”: {}} 的请求体。
注意
从 microversion 2.91 开始,允许的请求体 schema 为
{“unshelve”: null} (保持与先前微版本的兼容性)
或者
{“unshelve”: {“availability_zone”: <string>}} (Unshelve 并将服务器固定到 availability_zone)
{“unshelve”: {“availability_zone”: null}} (Unshelve 并取消服务器从任何 availability_zone 的固定)
{“unshelve”: {“host”: <fqdn>}}
{“unshelve”: {“availability_zone”: <string>, “host”: <fqdn>}}
{“unshelve”: {“availability_zone”: null, “host”: <fqdn>}}
其他均不允许,示例
{“unshelve”: {}}
{“unshelve”: {“host”: <fqdn>, “host”: <fqdn>}}
{“unshelve”: {“foo”: <string>}}
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
server_id |
路径 |
字符串 |
服务器的 UUID。 |
unshelve |
body |
none |
操作。 |
availability_zone (可选) |
body |
字符串 |
可用区名称。指定可用区仅在服务器状态为 从 microversion 2.91 开始, 版本 2.77 中新增 |
host (可选) |
body |
字符串 |
目标主机名。默认情况下,指定目标主机仅允许 project_admin 执行,否则将返回 HTTP 403 forbidden 响应。 版本 2.91 中新增 |
示例:Unshelve 服务器(unshelve 操作)
{
"unshelve": null
}
示例:Unshelve 服务器(unshelve 操作)(v2.77)
{
"unshelve": {
"availability_zone": "us-west"
}
}
示例:Unshelve 服务器(unshelve 操作)(v2.91)
{
"unshelve": {
"host": "host01"
}
}
{
"unshelve": {
"availability_zone": "nova",
"host": "host01"
}
}
{
"unshelve": {
"availability_zone": null,
"host": "host01"
}
}
{
"unshelve": {
"availability_zone": null
}
}
Response¶
如果成功,此方法不会在响应正文中返回内容。
版本 2.17 中添加。
在服务器中触发崩溃转储。
当服务器在底层出现异常行为时,获取内核级别的崩溃转储以进行进一步调试可能很有用。崩溃转储操作会强制进行一次崩溃转储,然后重启服务器。一旦服务器重新上线,您就可以在文件系统的某个位置找到一个内核崩溃转储文件。例如,对于 Ubuntu,您可以在 /var/crash 目录中找到它。
警告
此操作可能导致数据丢失。此外,在此操作期间及之后都可能丢失网络连接。
正常响应代码:202
错误响应代码:badRequest(400),unauthorized(401),forbidden(403),itemNotFound(404),conflict(409)
如果服务器不支持崩溃转储(由于配置或后端不支持),则返回 400。
如果服务器状态不允许执行崩溃转储操作,则返回 409。
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
server_id |
路径 |
字符串 |
服务器的 UUID。 |
trigger_crash_dump |
body |
none |
指定应运行触发崩溃转储操作。 |
示例:触发崩溃转储:JSON 请求
{
"trigger_crash_dump": null
}
响应¶
成功提交后没有正文返回。
为服务器获取串行控制台。
警告
此操作在 microversion 2.5 中已弃用,由 microversion 2.6 中的 API Server Consoles 替代。新 API 提供了统一的 API 来处理不同类型的控制台。
在请求正文中指定 os-getSerialConsole 操作。
唯一支持的连接类型是 serial。 type 参数应设置为 serial。
正常响应代码:200
错误响应代码:badRequest(400)、unauthorized(401)、forbidden(403)、itemNotFound(404)、conflict(409)、notImplemented(501)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
server_id |
路径 |
字符串 |
服务器的 UUID。 |
os-getSerialConsole |
body |
对象 |
操作。 |
type |
body |
字符串 |
串行控制台的类型。唯一有效的值是 |
示例:获取串行控制台(os-getSerialConsole 操作)
{
"os-getSerialConsole": {
"type": "serial"
}
}
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
console |
body |
对象 |
远程控制台对象。 |
type |
body |
字符串 |
串行控制台的类型。唯一有效的值是 |
url |
body |
字符串 |
用于连接到串行控制台的 URL。 |
示例:获取串行控制台(os-getSerialConsole 操作)
{
"console": {
"type": "serial",
"url":"ws://127.0.0.1:6083/?token=f9906a48-b71e-4f18-baca-c987da3ebdb3"
}
}
为服务器获取 SPICE 控制台。
警告
此操作在 microversion 2.5 中已弃用,由 microversion 2.6 中的 API Server Consoles 替代。新 API 提供了统一的 API 来处理不同类型的控制台。
在请求正文中指定 os-getSPICEConsole 操作。
唯一支持的连接类型是 spice-html5。 type 参数应设置为 spice-html5。
正常响应代码:200
错误响应代码:badRequest(400)、unauthorized(401)、forbidden(403)、itemNotFound(404)、conflict(409)、notImplemented(501)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
server_id |
路径 |
字符串 |
服务器的 UUID。 |
os-getSPICEConsole |
body |
对象 |
操作。 |
type |
body |
字符串 |
SPICE 控制台的类型。唯一有效的值是 |
示例:获取 SPICE 控制台(os-getSPICEConsole 操作)
{
"os-getSPICEConsole": {
"type": "spice-html5"
}
}
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
console |
body |
对象 |
远程控制台对象。 |
type |
body |
字符串 |
SPICE 控制台的类型。唯一有效的值是 |
url |
body |
字符串 |
用于连接到 SPICE 控制台的 URL。 |
示例:获取 SPICE 控制台(os-getSPICEConsole 操作)
{
"console": {
"type": "spice-html5",
"url": "http://127.0.0.1:6082/spice_auto.html?token=a30e5d08-6a20-4043-958f-0852440c6af4"
}
}
为服务器获取 VNC 控制台。
警告
此操作在 microversion 2.5 中已弃用,由 microversion 2.6 中的 API Server Consoles 替代。新 API 提供了统一的 API 来处理不同类型的控制台。
在请求正文中指定 os-getVNCConsole 操作。
正常响应代码:200
错误响应代码:badRequest(400)、unauthorized(401)、forbidden(403)、itemNotFound(404)、conflict(409)、notImplemented(501)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
server_id |
路径 |
字符串 |
服务器的 UUID。 |
os-getVNCConsole |
body |
对象 |
操作。 |
type |
body |
字符串 |
VNC 控制台的类型。唯一有效的值是 |
示例:获取 VNC 控制台(os-getVNCConsole 操作)
{
"os-getVNCConsole": {
"type": "novnc"
}
}
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
console |
body |
对象 |
远程控制台对象。 |
type |
body |
字符串 |
VNC 控制台的类型。唯一有效的值是 |
url |
body |
字符串 |
用于连接到 VNC 控制台的 URL。 |
示例:获取 VNC 控制台(os-getVNCConsole 操作)
{
"console": {
"type": "novnc",
"url": "http://127.0.0.1:6080/vnc_auto.html?path=%3Ftoken%3Ddaae261f-474d-4cae-8f6a-1865278ed8c9"
}
}
服务器 - 执行管理操作(servers, action)¶
允许管理员对服务器执行操作。在请求正文中指定操作。
您可以将网络信息注入服务器、迁移服务器、实时迁移服务器、重置服务器网络、重置服务器状态以及从故障主机迁移服务器到新主机。
将网络信息注入服务器。
在请求正文中指定 injectNetworkInfo 操作。
策略默认仅允许具有管理员角色的用户执行此操作。云提供商可以通过 policy.json 文件更改这些权限。
警告
此 API 的支持非常有限,有关更多信息,请参阅 nova virt support matrix
正常响应代码:202
错误响应代码:unauthorized(401)、forbidden(403)、itemNotFound(404)、conflict(409)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
server_id |
路径 |
字符串 |
服务器的 UUID。 |
injectNetworkInfo |
body |
none |
操作。 |
示例:注入网络信息(injectNetworkInfo 操作)
{
"injectNetworkInfo": null
}
响应¶
如果成功,此方法不会在响应正文中返回内容。
将服务器迁移到另一台主机。
在请求正文中指定 migrate 操作。
在 microversion 2.55 之前,由调度器选择主机。从 microversion 2.56 开始,提供了 host 参数来指定目标主机。如果您指定 null 或不指定此参数,则由调度器选择主机。
异步后置条件
成功迁移的服务器将显示 VERIFY_RESIZE 状态和 finished 迁移状态。如果云环境已将 Compute 服务的 resize_confirm_window 选项配置为正值,则 Compute 服务将在配置的间隔后自动确认迁移操作。
此操作有两种不同的策略,取决于是否设置了 host 参数。两者的默认设置都仅允许管理员执行此操作。云提供商可以通过 policy.json 文件更改这些权限。
正常响应代码:202
错误响应代码:badRequest(400), unauthorized(401), forbidden(403) itemNotFound(404), conflict(409)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
server_id |
路径 |
字符串 |
服务器的 UUID。 |
migrate |
body |
对象 |
冷迁移服务器的操作。此参数可以为 |
host (可选) |
body |
字符串 |
要迁移服务器的主机。如果您指定 版本 2.56 中新增 |
示例:迁移服务器(migrate 操作)(v2.1)
{
"migrate": null
}
示例:迁移服务器(migrate 操作)(v2.56)
{
"migrate": {
"host": "host1"
}
}
响应¶
如果成功,此方法不会在响应正文中返回内容。
在不重启的情况下将服务器实时迁移到新主机。
在请求正文中指定 os-migrateLive 操作。
使用 host 参数指定目标主机。如果此参数为 null,则由调度器选择主机。如果调度的主机不适合进行迁移,调度器将尝试最多 migrate_max_retries 次重新调度尝试。
从 API 版本 2.25 开始,block_migration 参数可以设置为 auto,以便 nova 在实时迁移期间决定 block_migration 的值。
策略默认仅允许具有管理员角色的用户执行此操作。云提供商可以通过 policy.json 文件更改这些权限。
从 REST API 版本 2.34 开始,预实时迁移检查是异步进行的,这些检查的结果可在 instance-actions 中找到。Nova 会立即响应,不会返回任何预实时迁移检查的结果。如果实时迁移检查失败,实例不会立即变为 ERROR 状态。
从 API 版本 2.68 开始,不再接受 force 参数,因为对于具有复杂资源分配的服务器,该参数无法有意义地支持。
正常响应代码:202
错误响应代码:badRequest(400), unauthorized(401), forbidden(403) itemNotFound(404), conflict(409)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
server_id |
路径 |
字符串 |
服务器的 UUID。 |
os-migrateLive |
body |
对象 |
操作。 |
host |
body |
字符串 |
要将服务器迁移到的主机。如果此参数为 警告 在 microversion 2.30 之前,指定主机将绕过调度器的验证,这可能导致实例未能实际迁移到指定主机,或导致主机过载。建议要么不指定主机,让调度器选择一个,要么指定一个主机且 microversion >= 2.30 且不设置 |
block_migration |
body |
布尔值 |
设置为 可用至版本 2.24 |
block_migration |
body |
字符串 |
使用块迁移迁移本地磁盘。设置为 版本 2.25 中新增 |
disk_over_commit |
body |
布尔值 |
设置为 可用至版本 2.25 |
force (可选) |
body |
布尔值 |
通过不验证调度器提供的目标主机来强制进行实时迁移。 警告 这可能导致实例未能实际实时迁移到指定主机。建议要么不指定主机,让调度器选择一个,要么指定一个主机且不设置 版本 2.30 中新增 可用至版本 2.67 |
示例:实时迁移服务器(os-migrateLive 操作)
{
"os-migrateLive": {
"host": "01c0cadef72d47e28a672a76060d492c",
"block_migration": "auto",
"force": false
}
}
响应¶
如果成功,此方法不会在响应正文中返回内容。
重置服务器上的网络。
警告
此操作仅由 XenAPI virt 驱动程序支持,该驱动程序在 20.0.0 (Train) 版本中已弃用,并在 22.0.0 (Victoria) 版本中移除。在新应用程序中应避免使用此操作。它在 23.0.0 (Wallaby) 版本中已被移除。
在请求正文中指定 resetNetwork 操作。
策略默认仅允许具有管理员角色的用户执行此操作。云提供商可以通过 policy.json 文件更改这些权限。
正常响应代码:202
错误响应代码:unauthorized(401), forbidden(403), itemNotFound(404), conflict(409), gone(410)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
server_id |
路径 |
字符串 |
服务器的 UUID。 |
resetNetwork |
body |
none |
操作。 |
示例:重置服务器网络(resetNetwork 操作)
{
"resetNetwork": null
}
响应¶
如果成功,此方法不会在响应正文中返回内容。
重置服务器的状态。
在请求正文中指定 os-resetState 操作和 state。
策略默认仅允许具有管理员角色的用户执行此操作。云提供商可以通过 policy.json 文件更改这些权限。
正常响应代码:202
错误响应代码:unauthorized(401)、forbidden(403)、itemNotFound(404)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
server_id |
路径 |
字符串 |
服务器的 UUID。 |
os-resetState |
body |
对象 |
操作。 |
os-resetState.state |
body |
字符串 |
要设置的服务器状态, |
示例:重置服务器状态(os-resetState 操作)
{
"os-resetState": {
"state": "active"
}
}
响应¶
如果成功,此方法不会在响应正文中返回内容。
将服务器从故障主机疏散到新主机。
在请求正文中指定
evacuate操作。在请求正文中,如果设置了
onSharedStorage,则不要设置adminPass。目标主机不应与实例主机相同。
先决条件
故障主机必须已被隔离且不再运行原始服务器。
故障主机必须报告为宕机或使用 Update Forced Down 标记为强制宕机。
从 API 版本 2.68 开始,不再接受 force 参数,因为对于具有复杂资源分配的服务器,该参数无法有意义地支持。
从 API 版本 2.95 开始,服务器将在目标主机上保持停止状态,直到手动启动。如果服务器在疏散前在目标主机上的电源状态应与其在源主机上的状态相同,则可以使用较旧的微版本。
正常响应代码:200
错误响应代码:badRequest(400),unauthorized(401),forbidden(403),itemNotFound(404),conflict(409)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
server_id |
路径 |
字符串 |
服务器的 UUID。 |
evacuate |
body |
对象 |
将服务器疏散到另一台主机的操作。 |
host (可选) |
body |
字符串 |
要将服务器疏散到的主机的名称或 ID。如果省略此参数,则由调度器选择主机。 警告 在 microversion 2.29 之前,指定主机将绕过调度器的验证,这可能导致实例未能实际疏散到指定主机,或导致主机过载。建议要么不指定主机,让调度器选择一个,要么指定一个主机且 microversion >= 2.29 且不设置 |
adminPass(可选) |
body |
字符串 |
用于访问疏散服务器的管理密码。如果您省略此参数,该操作将生成新密码。在 API 版本 2.13 之前,如果 |
onSharedStorage |
body |
布尔值 |
位于共享存储上的服务器。 注意 从 2.14 版本开始,Nova 会自动检测服务器是否位于共享存储上。因此,此参数已被移除。 可用至版本 2.13 |
force (可选) |
body |
布尔值 |
通过不验证调度器提供的目标主机来强制进行疏散。 警告 这可能导致实例未能实际疏散到指定主机。建议要么不指定主机,让调度器选择一个,要么指定一个主机且不设置 此外,在使用如 ironic 等集群虚拟机管理程序驱动程序管理的实例进行疏散时,不应指定此参数,因为您无法指定节点,计算服务将随机选择一个节点,该节点可能无法容纳实例。 版本 2.29 中新增 可用至版本 2.67 |
示例:疏散服务器(evacuate 操作)
{
"evacuate": {
"host": "b419863b7d814906a68fb31703c0dbd6",
"adminPass": "MySecretPass",
"onSharedStorage": "False"
}
}
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
adminPass(可选) |
body |
字符串 |
用于访问疏散实例的管理密码。如果您将 可用至版本 2.13 |
注意
API 不会为 Microversion 2.14 或更高版本返回任何响应。
示例:疏散服务器(evacuate 操作)
{
"adminPass": "MySecretPass"
}
服务器控制台¶
管理服务器控制台。
注意
需要 Microversion 2.6 或更高版本才能使用此 API。
该 API 提供了一个统一的请求来创建远程控制台。用户可以从此 API 获取一个 URL 来连接控制台。该 URL 包含用于获取控制台访问权限的令牌。服务器可能支持不同的控制台协议。要使用特定协议(如 VNC)返回远程控制台,请将 protocol 参数设置为 vnc。
正常响应代码:200
错误响应代码:badRequest(400)、unauthorized(401)、forbidden(403)、itemNotFound(404)、conflict(409)、notImplemented(501)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
server_id |
路径 |
字符串 |
服务器的 UUID。 |
remote_console |
body |
对象 |
远程控制台对象。 |
协议 |
body |
字符串 |
远程控制台的协议。有效值为 |
type |
body |
字符串 |
远程控制台的类型。有效值为 |
示例:获取远程 VNC 控制台
{
"remote_console": {
"protocol": "vnc",
"type": "novnc"
}
}
示例:获取远程 spice-direct 控制台
``spice-direct`` 控制台是在 microversion 2.99 中添加的。
{
"remote_console": {
"protocol": "spice",
"type": "spice-direct"
}
}
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
remote_console |
body |
对象 |
远程控制台对象。 |
协议 |
body |
字符串 |
远程控制台的协议。有效值为 |
type |
body |
字符串 |
远程控制台的类型。有效值为 |
url |
body |
字符串 |
用于连接控制台的 URL。 |
示例:获取远程 VNC 控制台
{
"remote_console": {
"protocol": "vnc",
"type": "novnc",
"url": "http://example.com:6080/vnc_auto.html?path=%3Ftoken%3Db60bcfc3-5fd4-4d21-986c-e83379107819"
}
}
示例:获取远程 spice-direct 控制台
``spice-direct`` 控制台是在 microversion 2.99 中添加的。
{
"remote_console": {
"protocol": "spice",
"type": "spice-direct",
"url": "http://127.0.0.1:13002/nova?token=aeabd4ec-3acb-4898-9130-10521ccbe5f3"
}
}
给定服务器的控制台身份验证令牌,显示相关的连接信息。
Nova HyperV 驱动程序已被移除,因此对 RDP 控制台连接信息的请求将始终返回 http 400 错误。从 microversion 2.31 开始,它适用于所有其他控制台类型。
正常响应代码:200
错误响应代码:badRequest(400)、unauthorized(401)、forbidden(403)、itemNotFound(404)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
console_token |
路径 |
字符串 |
控制台身份验证令牌。 |
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
console |
body |
对象 |
控制台对象。 |
instance_uuid |
body |
字符串 |
服务器的 UUID。 |
host (可选) |
body |
字符串 |
主机名或 ID。 |
port |
body |
整数 |
端口号。 |
tls_port (可选) |
body |
整数 |
需要 TLS 连接的端口的端口号。 |
internal_access_path (可选) |
body |
字符串 |
表示内部访问路径的 ID。 |
示例:显示控制台身份验证令牌
{
"console": {
"instance_uuid": "b48316c5-71e8-45e4-9884-6c78055b9b13",
"host": "localhost",
"port": 5900,
"internal_access_path": "51af38c3-555e-4884-a314-6c8cdde37444"
}
}
示例:spice-direct 控制台的控制台连接信息
``spice-direct`` 控制台是在 microversion 2.99 中添加的。
{
"console": {
"host": "fakespiceconsole.com",
"instance_uuid": "16802173-4e67-44f9-ba84-6d99080b81b5",
"internal_access_path": null,
"port": 6969,
"tls_port": 6970
}
}
服务器安全组(servers, os-security-groups)¶
列出服务器的安全组。
列出服务器的安全组。
正常响应代码:200
错误响应代码:unauthorized(401)、forbidden(403)、itemNotFound(404)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
server_id |
路径 |
字符串 |
服务器的 UUID。 |
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
security_groups |
body |
数组 |
一个或多个安全组对象。 |
description |
body |
字符串 |
安全组描述。 |
id |
body |
字符串 |
安全组 ID。 |
name |
body |
字符串 |
安全组名称。 |
rules |
body |
数组 |
安全组规则列表。 |
tenant_id |
body |
字符串 |
多租户云中的租户 UUID。 |
示例:按服务器列出安全组
{
"security_groups": [
{
"description": "default",
"id": "4e469db4-3b60-43c7-8dfa-2c60e2f27075",
"name": "default",
"rules": [],
"tenant_id": "6f70656e737461636b20342065766572"
}
]
}
服务器诊断(servers, diagnostics)¶
显示服务器的使用情况数据。
显示服务器的基本使用情况数据。
策略默认仅允许具有管理员角色的用户。云提供商可以通过 policy.json 文件更改这些权限。
正常响应代码:200
错误响应代码:unauthorized(401), forbidden(403), notfound(404), conflict(409), notimplemented(501)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
server_id |
路径 |
字符串 |
服务器的 UUID。 |
响应¶
从 **microversion 2.48** 开始,所有 virt 驱动程序的诊断响应格式均已标准化。响应仅应被视为调试接口,不应被编程工具依赖。所有响应字段均列于下方。如果 virt 驱动程序无法提供特定字段,则该字段将在响应中报告为 None。
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
config_drive |
body |
布尔值 |
指示是否为此服务器使用了配置驱动器。 版本 2.48 中新增 |
state |
body |
字符串 |
一个字符串枚举,表示 VM 的当前状态。可能的值为
版本 2.48 中新增 |
driver |
body |
字符串 |
VM 运行的驱动程序。可能的值为
版本 2.48 中新增 |
管理程序 |
body |
字符串 |
VM 运行的虚拟机管理程序。libvirt 驱动程序的示例可能为: 版本 2.48 中新增 |
hypervisor_os |
body |
字符串 |
虚拟机管理程序操作系统。 版本 2.48 中新增 |
uptime |
body |
整数 |
VM 运行的秒数。 版本 2.48 中新增 |
num_cpus |
body |
整数 |
vCPU 数量。 版本 2.48 中新增 |
num_disks |
body |
整数 |
磁盘数量。 版本 2.48 中新增 |
num_nics |
body |
整数 |
vNIC 数量。 版本 2.48 中新增 |
memory_details |
body |
数组 |
包含 VM 内存使用情况信息的字典。字典中包含以下字段
版本 2.48 中新增 |
cpu_details |
body |
数组 |
包含 VM CPU 详细信息的字典列表。每个字典中包含以下字段
版本 2.48 中新增 |
disk_details |
body |
数组 |
包含 VM 磁盘详细信息的字典列表。每个字典中包含以下字段
版本 2.48 中新增 |
nic_details |
body |
数组 |
包含 VM NIC 详细信息的字典列表。每个字典中包含以下字段
版本 2.48 中新增 |
示例:服务器诊断(2.48)
{
"config_drive": true,
"cpu_details": [
{
"id": 0,
"time": 17300000000,
"utilisation": 15
}
],
"disk_details": [
{
"errors_count": 1,
"read_bytes": 262144,
"read_requests": 112,
"write_bytes": 5778432,
"write_requests": 488
}
],
"driver": "libvirt",
"hypervisor": "kvm",
"hypervisor_os": "ubuntu",
"memory_details": {
"maximum": 524288,
"used": 0
},
"nic_details": [
{
"mac_address": "01:23:45:67:89:ab",
"rx_drop": 200,
"rx_errors": 100,
"rx_octets": 2070139,
"rx_packets": 26701,
"rx_rate": 300,
"tx_drop": 500,
"tx_errors": 400,
"tx_octets": 140208,
"tx_packets": 662,
"tx_rate": 600
}
],
"num_cpus": 1,
"num_disks": 1,
"num_nics": 1,
"state": "running",
"uptime": 46664
}
警告
在 **microversion 2.48** 之前,诊断的响应格式并未明确定义。每个虚拟机管理程序都有自己的格式。
示例:服务器诊断(2.1)
以下是基于 libvirt 的实例的诊断示例。返回值单位特定于虚拟机管理程序,但在这种情况下,vnet1_rx* 和 vnet1_tx* 的单位是字节。
{
"cpu0_time": 17300000000,
"memory": 524288,
"vda_errors": -1,
"vda_read": 262144,
"vda_read_req": 112,
"vda_write": 5778432,
"vda_write_req": 488,
"vnet1_rx": 2070139,
"vnet1_rx_drop": 0,
"vnet1_rx_errors": 0,
"vnet1_rx_packets": 26701,
"vnet1_tx": 140208,
"vnet1_tx_drop": 0,
"vnet1_tx_errors": 0,
"vnet1_tx_packets": 662
}
服务器 IP(servers, ips)¶
列出实例的 IP 地址并显示 IP 地址的详细信息。
列出分配给实例的 IP 地址。
策略默认仅允许具有管理员角色或服务器所有者的用户执行此操作。云提供商可以通过 policy.json 文件更改这些权限。
正常响应代码:200
错误响应代码:unauthorized(401)、forbidden(403)、itemNotFound(404)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
server_id |
路径 |
字符串 |
服务器的 UUID。 |
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
addresses |
body |
对象 |
服务器的地址信息。 |
network_label |
body |
数组 |
IP 地址和 IP 版本对的列表。 |
addr |
body |
字符串 |
IP 地址。 |
版本 |
body |
整数 |
与服务器关联的地址的 IP 版本。 |
示例:列出 IP
{
"addresses": {
"private": [
{
"addr": "192.168.1.30",
"version": 4
}
]
}
}
显示服务器实例某个网络标签的 IP 地址详细信息。
策略默认仅允许具有管理员角色或服务器所有者的用户执行此操作。云提供商可以通过 policy.json 文件更改这些权限。
正常响应代码:200
错误响应代码:unauthorized(401)、forbidden(403)、itemNotFound(404)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
server_id |
路径 |
字符串 |
服务器的 UUID。 |
network_label |
路径 |
字符串 |
网络标签,例如 |
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
network_label |
body |
数组 |
IP 地址和 IP 版本对的列表。 |
addr |
body |
字符串 |
IP 地址。 |
版本 |
body |
整数 |
与服务器关联的地址的 IP 版本。 |
示例:显示 IP 详细信息
{
"private": [
{
"addr": "192.168.1.30",
"version": 4
}
]
}
服务器元数据(servers, metadata)¶
列出元数据、创建或替换一个或多个元数据项,并更新服务器的一个或多个元数据项。
显示详细信息、创建或替换、并按键更新服务器的一个或多个元数据项。
列出服务器的所有元数据。
策略默认仅允许具有管理员角色或服务器所有者的用户执行此操作。云提供商可以通过 policy.json 文件更改这些权限。
正常响应代码:200
错误响应代码:unauthorized(401)、forbidden(403)、itemNotFound(404)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
server_id |
路径 |
字符串 |
服务器的 UUID。 |
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
metadata |
body |
对象 |
元数据键值对。每个元数据键值对的最大大小为 255 字节。 |
示例:列出所有元数据
{
"metadata": {
"foo": "Foo Value"
}
}
为服务器创建或更新一个或多个元数据项。
创建服务器中尚不存在的任何元数据项,替换与键匹配的现有元数据项。不修改请求中未包含的项。
策略默认仅允许具有管理员角色或服务器所有者的用户执行此操作。云提供商可以通过 policy.json 文件更改这些权限。
正常响应代码:200
错误响应代码:badRequest(400),unauthorized(401),forbidden(403),itemNotFound(404),conflict(409)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
server_id |
路径 |
字符串 |
服务器的 UUID。 |
metadata |
body |
对象 |
元数据键值对。每个元数据键值对的最大大小为 255 字节。 |
示例:更新元数据项
{
"metadata": {
"foo": "Foo Value"
}
}
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
metadata |
body |
对象 |
元数据键值对。每个元数据键值对的最大大小为 255 字节。 |
示例:更新元数据项
{
"metadata": {
"foo": "Foo Value"
}
}
替换服务器的一个或多个元数据项。
创建服务器中尚不存在的任何元数据项。删除并完全替换服务器中已存在的任何元数据项,替换为请求中的元数据项。
策略默认仅允许具有管理员角色或服务器所有者的用户执行此操作。云提供商可以通过 policy.json 文件更改这些权限。
正常响应代码:200
错误响应代码:badRequest(400),unauthorized(401),forbidden(403),itemNotFound(404),conflict(409)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
server_id |
路径 |
字符串 |
服务器的 UUID。 |
metadata |
body |
对象 |
元数据键值对。每个元数据键值对的最大大小为 255 字节。 |
示例:创建或替换元数据项
{
"metadata": {
"foo": "Foo Value"
}
}
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
metadata |
body |
对象 |
元数据键值对。每个元数据键值对的最大大小为 255 字节。 |
示例:创建或替换元数据项
{
"metadata": {
"foo": "Foo Value"
}
}
按键显示服务器某个元数据项的详细信息。
策略默认仅允许具有管理员角色或服务器所有者的用户执行此操作。云提供商可以通过 policy.json 文件更改这些权限。
正常响应代码:200
错误响应代码:unauthorized(401)、forbidden(403)、itemNotFound(404)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
server_id |
路径 |
字符串 |
服务器的 UUID。 |
key |
路径 |
字符串 |
元数据项的键,作为字符串。最大长度为 255 个字符。 |
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
meta |
body |
对象 |
元数据键值对。每个元数据键值对的最大大小为 255 字节。 |
示例:显示元数据项详细信息
{
"meta": {
"foo": "Foo Value"
}
}
按键创建或替换服务器的元数据项。
创建服务器中尚不存在的元数据项。用请求中的元数据项替换与键匹配的现有元数据项。
策略默认仅允许具有管理员角色或服务器所有者的用户执行此操作。云提供商可以通过 policy.json 文件更改这些权限。
正常响应代码:200
错误响应代码:badRequest(400),unauthorized(401),forbidden(403),itemNotFound(404),conflict(409)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
server_id |
路径 |
字符串 |
服务器的 UUID。 |
key |
路径 |
字符串 |
元数据项的键,作为字符串。最大长度为 255 个字符。 |
示例:创建或更新元数据项
{
"meta": {
"foo": "Bar Value"
}
}
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
meta |
body |
对象 |
元数据键值对。每个元数据键值对的最大大小为 255 字节。 |
示例:创建或更新元数据项
{
"meta": {
"foo": "Foo Value"
}
}
从服务器删除元数据项(按键)。
策略默认仅允许具有管理员角色或服务器所有者的用户执行此操作。云提供商可以通过 policy.json 文件更改这些权限。
正常响应代码:204
错误响应代码:unauthorized(401)、forbidden(403)、itemNotFound(404)、conflict(409)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
server_id |
路径 |
字符串 |
服务器的 UUID。 |
key |
路径 |
字符串 |
元数据项的键,作为字符串。最大长度为 255 个字符。 |
响应¶
如果成功,此方法不会在响应正文中返回内容。
服务器操作(servers, os-instance-actions)¶
列出服务器的操作及其详细信息。
列出服务器的操作。
对于 2.21 及之后的微版本请求,可以返回已删除实例的操作信息。
策略默认仅允许具有管理员角色或服务器所有者的用户执行此操作。云提供商可以通过 policy.json 文件更改这些权限。
正常响应代码:200
错误响应代码:badRequest(400)、unauthorized(401)、forbidden(403)、itemNotFound(404)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
server_id |
路径 |
字符串 |
服务器的 UUID。 |
limit (可选) |
查询 |
整数 |
请求分页的项目。返回的项目数最多为 limit 值。使用 版本 2.58 中新增 |
marker (可选) |
查询 |
字符串 |
最后可见的实例操作的 版本 2.58 中新增 |
changes-since(可选) |
查询 |
字符串 |
按时间戳过滤响应,表示实例操作最后更改的时间。 日期和时间戳格式为 ISO 8601 CCYY-MM-DDThh:mm:ss±hh:mm
如果包含 版本 2.58 中新增 |
changes-before(可选) |
查询 |
字符串 |
按时间戳过滤响应,表示实例操作最后更改的时间。返回在指定日期和时间之前或等于该日期和时间更改的实例。 日期和时间戳格式为 ISO 8601 CCYY-MM-DDThh:mm:ss±hh:mm
如果包含 版本 2.66 新增 |
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
instanceActions |
body |
数组 |
按创建时间降序排列的给定实例的操作列表。 |
动作 |
body |
字符串 |
操作的名称。 |
instance_uuid |
body |
字符串 |
服务器的 UUID。 |
message |
body |
字符串 |
操作失败时的相关错误消息。 |
project_id |
body |
字符串 |
启动服务器操作的项目 ID。对于 |
request_id |
body |
字符串 |
执行此操作的 API 时生成的请求 ID。 |
start_time |
body |
字符串 |
操作开始的日期和时间。日期和时间戳格式为 ISO 8601 CCYY-MM-DDThh:mm:ss±hh:mm
例如, |
user_id |
body |
字符串 |
启动服务器操作的用户 ID。对于 |
updated_at |
body |
字符串 |
实例操作或实例操作的事件更新的日期和时间。日期和时间戳格式为 ISO 8601 CCYY-MM-DDThh:mm:ss±hh:mm
例如, 版本 2.58 中新增 |
links (可选) |
body |
数组 |
与实例操作相关的链接。当分页且有更多数据可用时,会返回此参数。有关更多信息,请参阅 Paginated collections。 版本 2.58 中新增 |
示例:列出服务器的操作:JSON 响应
{
"instanceActions": [
{
"action": "stop",
"instance_uuid": "fcd19ef2-b593-40b1-90a5-fc31063fa95c",
"message": null,
"project_id": "6f70656e737461636b20342065766572",
"request_id": "req-f8a59f03-76dc-412f-92c2-21f8612be728",
"start_time": "2018-04-25T01:26:29.092892",
"user_id": "admin"
},
{
"action": "create",
"instance_uuid": "fcd19ef2-b593-40b1-90a5-fc31063fa95c",
"message": null,
"project_id": "6f70656e737461636b20342065766572",
"request_id": "req-50189019-626d-47fb-b944-b8342af09679",
"start_time": "2018-04-25T01:26:25.877278",
"user_id": "admin"
}
]
}
示例:列出带链接的服务器操作(v2.58)
{
"instanceActions": [
{
"action": "stop",
"instance_uuid": "ca3d3be5-1a40-427f-9515-f5e181f479d0",
"message": null,
"project_id": "6f70656e737461636b20342065766572",
"request_id": "req-4dbefbb7-d743-4d42-b0a1-a79cbe256138",
"start_time": "2018-04-25T01:26:28.909887",
"updated_at": "2018-04-25T01:26:29.400606",
"user_id": "admin"
}
],
"links": [
{
"href": "http://openstack.example.com/v2.1/6f70656e737461636b20342065766572/servers/ca3d3be5-1a40-427f-9515-f5e181f479d0/os-instance-actions?limit=1&marker=req-4dbefbb7-d743-4d42-b0a1-a79cbe256138",
"rel": "next"
}
]
}
显示服务器操作的详细信息。
对于 2.21 之后的微版本请求,可以返回已删除实例的操作详细信息。
策略默认仅允许具有管理员角色或服务器所有者的用户执行此操作。云提供商可以通过 policy.json 文件更改这些权限。
正常响应代码:200
错误响应代码:unauthorized(401)、forbidden(403)、itemNotFound(404)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
server_id |
路径 |
字符串 |
服务器的 UUID。 |
request_id |
路径 |
字符串 |
请求 ID。 |
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
instanceAction |
body |
对象 |
实例操作对象。 |
动作 |
body |
字符串 |
操作的名称。 |
instance_uuid |
body |
字符串 |
服务器的 UUID。 |
message |
body |
字符串 |
操作失败时的相关错误消息。 |
project_id |
body |
字符串 |
启动服务器操作的项目 ID。对于 |
request_id |
body |
字符串 |
执行此操作的 API 时生成的请求 ID。 |
start_time |
body |
字符串 |
操作开始的日期和时间。日期和时间戳格式为 ISO 8601 CCYY-MM-DDThh:mm:ss±hh:mm
例如, |
user_id |
body |
字符串 |
启动服务器操作的用户 ID。对于 |
events (可选) |
body |
数组 |
此操作中发生的事件,按创建时间降序排列。 策略默认仅允许管理员查看实例操作事件信息。云提供商可以通过 可用至版本 2.50 |
events |
body |
数组 |
此操作中发生的事件,按创建时间降序排列。 策略默认仅允许管理员或服务器所有者查看实例操作事件信息。云提供商可以通过 版本 2.51 中新增 |
events.event |
body |
字符串 |
事件的名称。 |
events.start_time |
body |
字符串 |
事件开始的日期和时间。日期和时间戳格式为 ISO 8601 CCYY-MM-DDThh:mm:ss±hh:mm
例如, |
events.finish_time |
body |
字符串 |
事件完成的日期和时间。日期和时间戳格式为 ISO 8601 CCYY-MM-DDThh:mm:ss±hh:mm
例如, |
events.result |
body |
字符串 |
事件的结果。 |
events.traceback |
body |
字符串 |
如果事件中发生错误,则为堆栈跟踪。 策略默认仅允许管理员查看实例操作事件的堆栈跟踪。云提供商可以通过 |
events.hostId |
body |
字符串 |
一个经过混淆处理的哈希主机 ID 字符串,如果事件没有主机,则为空字符串。这是一个哈希值,因此不会真正像主机名,并且是使用项目 ID 中的数据进行哈希处理的,因此从两个不同的项目 ID 看到的同一物理主机将是不同的。当在同一项目中需要确定两个事件是否发生在同一物理主机或不同物理主机上时,此功能很有用。 版本 2.62 中新增 |
events.host (可选) |
body |
字符串 |
事件发生所在主机的名称。 策略默认仅允许管理员查看实例操作事件主机。云提供商可以通过 版本 2.62 中新增 |
events.details |
body |
字符串 |
事件的详细信息。可能为 版本 2.84 中新增 |
updated_at |
body |
字符串 |
实例操作或实例操作的事件更新的日期和时间。日期和时间戳格式为 ISO 8601 CCYY-MM-DDThh:mm:ss±hh:mm
例如, 版本 2.58 中新增 |
示例:显示服务器操作详细信息(管理员)(v2.62)
{
"instanceAction": {
"action": "stop",
"events": [
{
"event": "compute_stop_instance",
"finish_time": "2018-04-25T01:26:36.790544",
"host": "compute",
"hostId": "2091634baaccdc4c5a1d57069c833e402921df696b7f970791b12ec6",
"result": "Success",
"start_time": "2018-04-25T01:26:36.539271",
"traceback": null
}
],
"instance_uuid": "4bf3473b-d550-4b65-9409-292d44ab14a2",
"message": null,
"project_id": "6f70656e737461636b20342065766572",
"request_id": "req-0d819d5c-1527-4669-bdf0-ffad31b5105b",
"start_time": "2018-04-25T01:26:36.341290",
"updated_at": "2018-04-25T01:26:36.790544",
"user_id": "admin"
}
}
示例:显示服务器操作详细信息(非管理员)(v2.62)
{
"instanceAction": {
"action": "stop",
"events": [
{
"event": "compute_stop_instance",
"finish_time": "2018-04-25T01:26:34.784165",
"hostId": "2091634baaccdc4c5a1d57069c833e402921df696b7f970791b12ec6",
"result": "Success",
"start_time": "2018-04-25T01:26:34.612020"
}
],
"instance_uuid": "79edaa44-ad4f-4af7-b994-154518c2b927",
"message": null,
"project_id": "6f70656e737461636b20342065766572",
"request_id": "req-8eb28d4a-db6c-4337-bab8-ce154e9c620e",
"start_time": "2018-04-25T01:26:34.388280",
"updated_at": "2018-04-25T01:26:34.784165",
"user_id": "fake"
}
}
示例:显示服务器操作详细信息(系统读取器)(v2.84)
{
"instanceAction": {
"action": "stop",
"events": [
{
"event": "compute_stop_instance",
"finish_time": "2018-04-25T01:26:36.790544",
"host": "compute",
"hostId": "2091634baaccdc4c5a1d57069c833e402921df696b7f970791b12ec6",
"result": "Success",
"start_time": "2018-04-25T01:26:36.539271",
"traceback": null,
"details": null
}
],
"instance_uuid": "4bf3473b-d550-4b65-9409-292d44ab14a2",
"message": null,
"project_id": "6f70656e737461636b20342065766572",
"request_id": "req-0d819d5c-1527-4669-bdf0-ffad31b5105b",
"start_time": "2018-04-25T01:26:36.341290",
"updated_at": "2018-04-25T01:26:36.790544",
"user_id": "admin"
}
}
端口接口(servers, os-interface)¶
列出服务器的端口接口、显示端口接口的详细信息。创建端口接口并使用它将端口附加到服务器,从服务器分离端口接口。
列出附加到服务器的端口接口。
正常响应代码:200
错误响应代码:unauthorized(401), forbidden(403), itemNotFound(404), NotImplemented(501)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
server_id |
路径 |
字符串 |
服务器的 UUID。 |
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
interfaceAttachments |
body |
数组 |
接口附件列表。 |
port_state |
body |
字符串 |
端口状态。 |
fixed_ips |
body |
数组 |
带有子网 ID 的固定 IP 地址。 |
ip_address |
body |
字符串 |
IP 地址。 |
subnet_id |
body |
字符串 |
子网的 UUID。 |
mac_addr |
body |
字符串 |
MAC 地址。 |
net_id |
body |
字符串 |
网络 ID。 |
port_id |
body |
字符串 |
端口 ID。 |
tag |
body |
字符串 |
应用于虚拟网络接口的设备标签或 版本 2.70 中新增 |
示例:列出端口接口:JSON 响应
{
"interfaceAttachments": [
{
"fixed_ips": [
{
"ip_address": "192.168.1.3",
"subnet_id": "f8a6e8f8-c2ec-497c-9f23-da9616de54ef"
}
],
"mac_addr": "fa:16:3e:4c:2c:30",
"net_id": "3cb9bc59-5699-4588-a4b1-b87f96708bc6",
"port_id": "ce531f90-199f-48c0-816c-13e38010b442",
"port_state": "ACTIVE"
}
]
}
示例:列出标记的端口接口 (v2.70):JSON 响应
{
"interfaceAttachments": [
{
"fixed_ips": [
{
"ip_address": "192.168.1.3",
"subnet_id": "f8a6e8f8-c2ec-497c-9f23-da9616de54ef"
}
],
"mac_addr": "fa:16:3e:4c:2c:30",
"net_id": "3cb9bc59-5699-4588-a4b1-b87f96708bc6",
"port_id": "ce531f90-199f-48c0-816c-13e38010b442",
"port_state": "ACTIVE",
"tag": "public"
}
]
}
创建端口接口并将其附加到服务器。
正常响应代码:200
错误响应代码:badRequest(400), unauthorized(401), forbidden(403), itemNotFound(404), conflict(409), computeFault(500), NotImplemented(501)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
server_id |
路径 |
字符串 |
服务器的 UUID。 |
interfaceAttachment |
body |
字符串 |
在请求正文中指定 |
port_id (可选) |
body |
字符串 |
您要为其创建接口的端口 ID。 |
net_id (可选) |
body |
字符串 |
您要为其创建端口接口的网络 ID。 |
fixed_ips (可选) |
body |
数组 |
固定 IP 地址。如果您请求一个特定的固定 IP 地址而没有 |
ip_address |
body |
字符串 |
IP 地址。当指定 |
tag (可选) |
body |
字符串 |
可以应用于附加到 VM 的虚拟网络接口的设备角色标签。具有如此标记设备的服务器的来宾操作系统可以从元数据 API 和配置驱动器(如果启用)中访问标记设备的硬件元数据。 版本 2.49 中新增 |
示例:创建接口:JSON 请求
使用 net_id 和 fixed_ips 创建接口。
{
"interfaceAttachment": {
"fixed_ips": [
{
"ip_address": "192.168.1.3"
}
],
"net_id": "3cb9bc59-5699-4588-a4b1-b87f96708bc6"
}
}
使用 port_id 创建接口。
{
"interfaceAttachment": {
"port_id": "ce531f90-199f-48c0-816c-13e38010b442"
}
}
示例:创建标记的接口 (v2.49):JSON 请求
{
"interfaceAttachment": {
"port_id": "ce531f90-199f-48c0-816c-13e38010b442",
"tag": "foo"
}
}
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
interfaceAttachment |
body |
对象 |
接口附件。 |
fixed_ips |
body |
数组 |
带有子网 ID 的固定 IP 地址。 |
ip_address |
body |
字符串 |
IP 地址。 |
subnet_id |
body |
字符串 |
子网的 UUID。 |
mac_addr |
body |
字符串 |
MAC 地址。 |
net_id |
body |
字符串 |
网络 ID。 |
port_id |
body |
字符串 |
端口 ID。 |
port_state |
body |
字符串 |
端口状态。 |
tag |
body |
字符串 |
应用于虚拟网络接口的设备标签或 版本 2.70 中新增 |
示例:创建接口:JSON 响应
{
"interfaceAttachment": {
"fixed_ips": [
{
"ip_address": "192.168.1.3",
"subnet_id": "f8a6e8f8-c2ec-497c-9f23-da9616de54ef"
}
],
"mac_addr": "fa:16:3e:4c:2c:30",
"net_id": "3cb9bc59-5699-4588-a4b1-b87f96708bc6",
"port_id": "ce531f90-199f-48c0-816c-13e38010b442",
"port_state": "ACTIVE"
}
}
示例:创建标记的接口 (v2.70):JSON 响应
{
"interfaceAttachment": {
"fixed_ips": [
{
"ip_address": "192.168.1.3",
"subnet_id": "f8a6e8f8-c2ec-497c-9f23-da9616de54ef"
}
],
"mac_addr": "fa:16:3e:4c:2c:30",
"net_id": "3cb9bc59-5699-4588-a4b1-b87f96708bc6",
"port_id": "ce531f90-199f-48c0-816c-13e38010b442",
"port_state": "ACTIVE",
"tag": "public"
}
}
显示附加到服务器的端口接口的详细信息。
正常响应代码:200
错误响应代码:unauthorized(401)、forbidden(403)、itemNotFound(404)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
server_id |
路径 |
字符串 |
服务器的 UUID。 |
port_id |
路径 |
字符串 |
端口的 UUID。 |
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
interfaceAttachment |
body |
对象 |
接口附件。 |
port_state |
body |
字符串 |
端口状态。 |
fixed_ips |
body |
数组 |
带有子网 ID 的固定 IP 地址。 |
ip_address |
body |
字符串 |
IP 地址。 |
subnet_id |
body |
字符串 |
子网的 UUID。 |
mac_addr |
body |
字符串 |
MAC 地址。 |
net_id |
body |
字符串 |
网络 ID。 |
port_id |
body |
字符串 |
端口 ID。 |
tag |
body |
字符串 |
应用于虚拟网络接口的设备标签或 版本 2.70 中新增 |
示例:显示端口接口详细信息:JSON 响应
{
"interfaceAttachment": {
"fixed_ips": [
{
"ip_address": "192.168.1.3",
"subnet_id": "f8a6e8f8-c2ec-497c-9f23-da9616de54ef"
}
],
"mac_addr": "fa:16:3e:4c:2c:30",
"net_id": "3cb9bc59-5699-4588-a4b1-b87f96708bc6",
"port_id": "ce531f90-199f-48c0-816c-13e38010b442",
"port_state": "ACTIVE"
}
}
示例:显示标记的端口接口详细信息 (v2.70):JSON 响应
{
"interfaceAttachment": {
"fixed_ips": [
{
"ip_address": "192.168.1.3",
"subnet_id": "f8a6e8f8-c2ec-497c-9f23-da9616de54ef"
}
],
"mac_addr": "fa:16:3e:4c:2c:30",
"net_id": "3cb9bc59-5699-4588-a4b1-b87f96708bc6",
"port_id": "ce531f90-199f-48c0-816c-13e38010b442",
"port_state": "ACTIVE",
"tag": "public"
}
}
从服务器分离端口接口。
正常响应代码:202
错误响应代码:unauthorized(401), forbidden(403), itemNotFound(404), conflict(409), NotImplemented(501)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
server_id |
路径 |
字符串 |
服务器的 UUID。 |
port_id |
路径 |
字符串 |
端口的 UUID。 |
响应¶
成功请求时没有返回正文。
服务器密码(servers, os-server-password)¶
显示加密的管理密码。此外,清除服务器的加密管理密码,从而将其从元数据服务器中移除。
显示服务器的管理密码。
此操作调用元数据服务来查询元数据信息,而不直接从服务器本身读取密码信息。
保存在元数据服务中的密码通常使用注入到该服务器的公共 SSH 密钥进行加密,因此需要 SSH 私钥才能读取密码。
策略默认仅允许具有管理员角色或服务器所有者的用户执行此操作。云提供商可以通过 policy.json 文件更改这些权限。
正常响应代码:200
错误响应代码:unauthorized(401)、forbidden(403)、itemNotFound(404)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
server_id |
路径 |
字符串 |
服务器的 UUID。 |
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
密码 (可选) |
body |
字符串 |
从元数据服务器返回的密码。 |
示例:显示服务器密码
{
"password": "xlozO3wLCBRWAa2yDjCCVx8vwNPypxnypmRYDa/zErlQ+EzPe1S/Gz6nfmC52mOlOSCRuUOmG7kqqgejPof6M7bOezS387zjq4LSvvwp28zUknzy4YzfFGhnHAdai3TxUJ26pfQCYrq8UTzmKF2Bq8ioSEtVVzM0A96pDh8W2i7BOz6MdoiVyiev/I1K2LsuipfxSJR7Wdke4zNXJjHHP2RfYsVbZ/k9ANu+Nz4iIH8/7Cacud/pphH7EjrY6a4RZNrjQskrhKYed0YERpotyjYk1eDtRe72GrSiXteqCM4biaQ5w3ruS+AcX//PXk3uJ5kC7d67fPXaVz4WaQRYMg=="
}
清除服务器的加密管理密码,将其从数据库中移除。
此操作实际上不会更改实例服务器的密码。
策略默认仅允许具有管理员角色或服务器所有者的用户执行此操作。云提供商可以通过 policy.json 文件更改这些权限。
正常响应代码:204
错误响应代码:unauthorized(401)、forbidden(403)、itemNotFound(404)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
server_id |
路径 |
字符串 |
服务器的 UUID。 |
响应¶
如果成功,此方法不会在响应正文中返回内容。
带有卷挂载的服务器(servers, os-volume_attachments)¶
将通过卷 API 创建的卷挂载到服务器实例。此外,列出服务器的卷挂载,显示卷挂载的详细信息,并分离卷。
列出实例的卷挂载。
正常响应代码:200
错误响应代码:unauthorized(401)、forbidden(403)、itemNotFound(404)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
server_id |
路径 |
字符串 |
服务器的 UUID。 |
limit (可选) |
查询 |
整数 |
与 |
offset (可选) |
查询 |
整数 |
与 |
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
volumeAttachments |
body |
数组 |
卷挂载列表。 |
id |
body |
字符串 |
挂载的卷 ID。 可用至版本 2.88 |
serverId |
body |
字符串 |
服务器的 UUID。 |
volumeId |
body |
字符串 |
已挂载卷的 UUID。 |
device (可选) |
body |
字符串 |
挂载对象中的设备名称,例如 |
tag |
body |
字符串 |
应用于块设备卷的设备标签或 版本 2.70 中新增 |
delete_on_termination |
body |
布尔值 |
一个标志,指示在服务器删除时是否将挂载的卷删除。 版本 2.79 中新增 |
attachment_id |
body |
字符串 |
Cinder 中相关卷挂载的 UUID。 版本 2.89 中新增 |
bdm_uuid |
body |
字符串 |
Nova 中用于挂载的块设备映射记录的 UUID。 版本 2.89 中新增 |
示例:列出实例的卷挂载:JSON 响应
{
"volumeAttachments": [
{
"device": "/dev/sdc",
"id": "227cc671-f30b-4488-96fd-7d0bf13648d8",
"serverId": "4b293d31-ebd5-4a7f-be03-874b90021e54",
"volumeId": "227cc671-f30b-4488-96fd-7d0bf13648d8"
},
{
"device": "/dev/sdb",
"id": "a07f71dc-8151-4e7d-a0cc-cd24a3f11113",
"serverId": "4b293d31-ebd5-4a7f-be03-874b90021e54",
"volumeId": "a07f71dc-8151-4e7d-a0cc-cd24a3f11113"
}
]
}
示例:列出实例的标记卷挂载 (v2.89):JSON 响应
{
"volumeAttachments": [
{
"attachment_id": "979ce4f8-033a-409d-85e6-6b5c0f6a6302",
"delete_on_termination": false,
"device": "/dev/sdc",
"serverId": "7696780b-3f53-4688-ab25-019bfcbbd806",
"tag": null,
"volumeId": "227cc671-f30b-4488-96fd-7d0bf13648d8",
"bdm_uuid": "c088db45-92b8-49e8-81e2-a1b77a144b3b"
},
{
"attachment_id": "c5684109-0311-4fca-9814-350e46ab7d2a",
"delete_on_termination": true,
"device": "/dev/sdb",
"serverId": "7696780b-3f53-4688-ab25-019bfcbbd806",
"tag": "foo",
"volumeId": "a07f71dc-8151-4e7d-a0cc-cd24a3f11113",
"bdm_uuid": "1aa24536-6fb5-426c-8894-d627f39aa48b"
}
]
}
将卷附加到实例。
正常响应代码:200
错误响应代码:badRequest(400),unauthorized(401),forbidden(403),itemNotFound(404),conflict(409)
注意
从 v2.20 开始,允许将卷附加到处于 SHELVED 或 SHELVED_OFFLOADED 状态的实例。
注意
从 v2.60 开始,对于非 SHELVED_OFFLOADED 状态的实例,支持将 multiattach 卷附加到多个实例。实际支持 multiattach 卷的能力取决于卷类型和托管实例的计算服务。
注意
这是一个异步 API,调用者应轮询卷 API 中的卷状态和附件列表,以确定附件是否已成功完成。
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
server_id |
路径 |
字符串 |
服务器的 UUID。 |
volumeAttachment |
body |
对象 |
卷附件的字典表示,包含 |
volumeId |
body |
字符串 |
要附加的卷的 UUID。 |
device (可选) |
body |
字符串 |
设备名称,例如 |
tag (可选) |
body |
字符串 |
一个设备角色标签,可以在将卷附加到 VM 时应用于该卷。具有此类已标记设备的服务器的客户机操作系统可以从元数据 API 和(如果已启用)配置驱动器中访问有关已标记设备的硬件元数据。 注意 带标签的卷附件不支持已暂停卸载的实例。 版本 2.49 中新增 |
delete_on_termination (可选) |
body |
布尔值 |
要在销毁服务器时删除附加的卷,请指定 版本 2.79 中新增 |
示例:将卷附加到实例:JSON 请求
{
"volumeAttachment": {
"volumeId": "a07f71dc-8151-4e7d-a0cc-cd24a3f11113",
"device": "/dev/sdb"
}
}
示例:将卷附加到实例并为其打标签 (v2.49):JSON 请求
{
"volumeAttachment": {
"volumeId": "a07f71dc-8151-4e7d-a0cc-cd24a3f11113",
"tag": "foo"
}
}
示例:将卷附加到具有“delete_on_termination”的实例 (v2.79):JSON 请求
{
"volumeAttachment": {
"volumeId": "a07f71dc-8151-4e7d-a0cc-cd24a3f11113",
"tag": "foo",
"delete_on_termination": true
}
}
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
volumeAttachment |
body |
对象 |
卷附件的字典表示,包含 |
device |
body |
字符串 |
设备名称,例如 |
id (可选) |
body |
字符串 |
附件的 UUID。 |
serverId |
body |
字符串 |
服务器的 UUID。 |
volumeId |
body |
字符串 |
已挂载卷的 UUID。 |
tag |
body |
字符串 |
应用于块设备卷的设备标签或 版本 2.70 中新增 |
delete_on_termination |
body |
布尔值 |
一个标志,指示在服务器删除时是否将挂载的卷删除。 版本 2.79 中新增 |
示例:将卷附加到实例:JSON 响应
{
"volumeAttachment": {
"device": "/dev/sdb",
"id": "a07f71dc-8151-4e7d-a0cc-cd24a3f11113",
"serverId": "802db873-0373-4bdd-a433-d272a539ba18",
"volumeId": "a07f71dc-8151-4e7d-a0cc-cd24a3f11113"
}
}
示例:将带标签的卷附加到实例 (v2.70):JSON 响应
{
"volumeAttachment": {
"device": "/dev/sdb",
"id": "a07f71dc-8151-4e7d-a0cc-cd24a3f11113",
"serverId": "70f5c62a-972d-4a8b-abcf-e1375ca7f8c0",
"tag": "foo",
"volumeId": "a07f71dc-8151-4e7d-a0cc-cd24a3f11113"
}
}
示例:将卷附加到具有“delete_on_termination”的实例 (v2.79):JSON 响应
{
"volumeAttachment": {
"delete_on_termination": true,
"device": "/dev/sdb",
"id": "a07f71dc-8151-4e7d-a0cc-cd24a3f11113",
"serverId": "09b3b9d1-b8c5-48e1-841d-62c3ef967a88",
"tag": "foo",
"volumeId": "a07f71dc-8151-4e7d-a0cc-cd24a3f11113"
}
}
显示卷附件的详细信息。
正常响应代码:200
错误响应代码:unauthorized(401)、forbidden(403)、itemNotFound(404)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
server_id |
路径 |
字符串 |
服务器的 UUID。 |
volume_id |
路径 |
字符串 |
已挂载卷的 UUID。 |
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
volumeAttachment |
body |
对象 |
卷附件的字典表示,包含 |
id |
body |
字符串 |
挂载的卷 ID。 可用至版本 2.88 |
serverId |
body |
字符串 |
服务器的 UUID。 |
volumeId |
body |
字符串 |
已挂载卷的 UUID。 |
device (可选) |
body |
字符串 |
挂载对象中的设备名称,例如 |
tag |
body |
字符串 |
应用于块设备卷的设备标签或 版本 2.70 中新增 |
delete_on_termination |
body |
布尔值 |
一个标志,指示在服务器删除时是否将挂载的卷删除。 版本 2.79 中新增 |
attachment_id |
body |
字符串 |
Cinder 中相关卷挂载的 UUID。 版本 2.89 中新增 |
bdm_uuid |
body |
字符串 |
Nova 中用于挂载的块设备映射记录的 UUID。 版本 2.89 中新增 |
示例:显示卷附件的详细信息:JSON 响应
{
"volumeAttachment": {
"device": "/dev/sdb",
"id": "a07f71dc-8151-4e7d-a0cc-cd24a3f11113",
"serverId": "1ad6852e-6605-4510-b639-d0bff864b49a",
"volumeId": "a07f71dc-8151-4e7d-a0cc-cd24a3f11113"
}
}
示例:显示带标签的卷附件的详细信息 (v2.89):JSON 响应
{
"volumeAttachment": {
"attachment_id": "721a5c82-5ebc-4c6a-8339-3d33d8d027ed",
"delete_on_termination": true,
"device": "/dev/sdb",
"serverId": "7ebed2ce-85b3-40b5-84ae-8cc725c37ed2",
"tag": "foo",
"volumeId": "a07f71dc-8151-4e7d-a0cc-cd24a3f11113",
"bdm_uuid": "c088db45-92b8-49e8-81e2-a1b77a144b3b"
}
}
更新卷附件。
策略默认角色为“rule:admin_or_owner”,其作用域为 [project],允许项目成员或管理员更改服务器已附加卷的字段。云提供商可以通过 policy.yaml 文件更改这些权限。
正常响应代码:202
错误响应代码:badRequest(400),unauthorized(401),forbidden(403),itemNotFound(404),conflict(409)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
server_id |
路径 |
字符串 |
服务器的 UUID。 |
volume_id |
路径 |
字符串 |
卷的唯一 ID。 |
volumeAttachment |
body |
对象 |
卷附件的字典表示,包含 |
volumeId |
body |
字符串 |
已挂载卷的 UUID。 |
delete_on_termination (可选) |
body |
布尔值 |
一个标志,指示在服务器删除时是否将挂载的卷删除。 新功能,版本 2.85 |
device (可选) |
body |
字符串 |
挂载对象中的设备名称,例如 新功能,版本 2.85 |
serverId (可选) |
body |
字符串 |
服务器的 UUID。 新功能,版本 2.85 |
tag |
body |
字符串 |
应用于块设备卷的设备标签或 新功能,版本 2.85 |
id (可选) |
body |
字符串 |
附件的 UUID。 新功能,版本 2.85 |
注意
除了 volumeId 之外,从 v2.85 开始,只能从当前值更改 delete_on_termination。
示例:更新卷附件 (v2.85):JSON 请求
{
"volumeAttachment": {
"volumeId": "a07f71dc-8151-4e7d-a0cc-cd24a3f11113",
"delete_on_termination": true
}
}
响应¶
成功请求时没有返回正文。
将卷与实例分离。
正常响应代码:202
错误响应代码:badRequest(400),unauthorized(401),forbidden(403),itemNotFound(404),conflict(409)
注意
从 v2.20 开始,允许将卷与处于 SHELVED 或 SHELVED_OFFLOADED 状态的实例分离。
注意
这是一个异步 API,调用者应通过 GET /servers/{server_id}/os-volume_attachments 提供的卷附件列表来轮询,以确定卷的分离是否已成功完成。
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
server_id |
路径 |
字符串 |
服务器的 UUID。 |
volume_id |
路径 |
字符串 |
要分离的卷的 UUID。 |
响应¶
成功请求时没有返回正文。
规格¶
显示和管理服务器配置(flavors)。
配置(Flavors)是描述要创建的服务器的基本尺寸的一种方式,包括用该配置创建的服务器将分配多少 cpu、ram 和 disk space。
列出对您的项目可访问的所有配置。
正常响应代码:200
错误响应代码:未授权(401)、禁止(403)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
sort_key (可选) |
查询 |
字符串 |
按配置属性排序。默认属性是
|
sort_dir (可选) |
查询 |
字符串 |
排序方向。有效值为 |
limit (可选) |
查询 |
整数 |
请求项目页面大小。返回最多限制值数量的项目。使用 |
marker (可选) |
查询 |
字符串 |
最后一个已查看项目的 ID。使用 |
minDisk (可选) |
查询 |
整数 |
按最小磁盘空间(以 GiB 为单位)过滤响应。例如, |
minRam (可选) |
查询 |
整数 |
按最小 RAM(以 MiB 为单位)过滤响应。例如, |
is_public (可选) |
查询 |
字符串 |
此参数仅适用于具有管理员角色的用户。对于所有其他非管理员用户,将忽略此参数,并且仅返回公共配置。根据配置是公共的还是私有的来过滤配置列表。如果未指定此参数的值,则将其视为 |
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
flavors |
body |
数组 |
配置对象的数组。 |
id |
body |
字符串 |
风味 ID。虽然人们经常将其视为整数,但它实际上是一个字符串。 |
name |
body |
字符串 |
风类的显示名称。 |
description |
body |
字符串 |
配置的描述。 新功能,版本 2.55 |
links |
body |
数组 |
指向相关资源的链接。有关更多信息,请参阅API 指南 / 链接和引用。 |
示例:列出配置 (v2.55)
{
"flavors": [
{
"id": "1",
"links": [
{
"href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/flavors/1",
"rel": "self"
},
{
"href": "http://openstack.example.com/6f70656e737461636b20342065766572/flavors/1",
"rel": "bookmark"
}
],
"name": "m1.tiny",
"description": null
},
{
"id": "2",
"links": [
{
"href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/flavors/2",
"rel": "self"
},
{
"href": "http://openstack.example.com/6f70656e737461636b20342065766572/flavors/2",
"rel": "bookmark"
}
],
"name": "m1.small",
"description": null
},
{
"id": "3",
"links": [
{
"href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/flavors/3",
"rel": "self"
},
{
"href": "http://openstack.example.com/6f70656e737461636b20342065766572/flavors/3",
"rel": "bookmark"
}
],
"name": "m1.medium",
"description": null
},
{
"id": "4",
"links": [
{
"href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/flavors/4",
"rel": "self"
},
{
"href": "http://openstack.example.com/6f70656e737461636b20342065766572/flavors/4",
"rel": "bookmark"
}
],
"name": "m1.large",
"description": null
},
{
"id": "5",
"links": [
{
"href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/flavors/5",
"rel": "self"
},
{
"href": "http://openstack.example.com/6f70656e737461636b20342065766572/flavors/5",
"rel": "bookmark"
}
],
"name": "m1.xlarge",
"description": null
},
{
"id": "6",
"links": [
{
"href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/flavors/6",
"rel": "self"
},
{
"href": "http://openstack.example.com/6f70656e737461636b20342065766572/flavors/6",
"rel": "bookmark"
}
],
"name": "m1.tiny.specs",
"description": null
},
{
"id": "7",
"links": [
{
"href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/flavors/7",
"rel": "self"
},
{
"href": "http://openstack.example.com/6f70656e737461636b20342065766572/flavors/7",
"rel": "bookmark"
}
],
"name": "m1.small.description",
"description": "test description"
}
]
}
创建flavor。
创建配置通常仅限于云管理员,因为这会影响云中的有效调度。
注意
不允许配置 ID 中包含特殊字符(连字符“-”、下划线“_”、空格和点“.”除外)的配置。
配置 ID 应为 UUID。用“-”分隔/分组的序列化字符串代表默认配置 ID 或 UUID。例如:01cc74d8-4816-4bef-835b-e36ff188c406。
仅为向后兼容,允许使用整数作为配置 ID。
正常响应代码:200
错误响应代码:badRequest(400),unauthorized(401),forbidden(403),conflict(409)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
flavor |
body |
对象 |
用于服务器实例的配置的 ID 和链接。配置是内存、磁盘大小和 CPU 的组合。 |
name |
body |
字符串 |
风类的显示名称。 |
description (可选) |
body |
字符串 |
配置的自由格式描述。长度限制为 65535 个字符。仅允许使用可打印字符。 新功能,版本 2.55 |
id (可选) |
body |
字符串 |
仅允许字母数字字符,以及连字符“-”、下划线“_”、空格和点“.”。如果未提供 ID,则会分配默认 UUID。 |
ram |
body |
整数 |
风味的大小,以 MiB 为单位。 |
disk |
body |
整数 |
用于创建实例的镜像的根磁盘大小(以 GiB 为单位)。如果为 0,根磁盘将设置为与用于部署实例的镜像大小完全一致。但是,在这种情况下,调度程序无法根据虚拟镜像大小选择计算主机。因此,0 只应用于卷启动的实例或用于测试目的。通过 |
vcpus |
body |
整数 |
将分配给服务器的虚拟 CPU 数量。 |
OS-FLV-EXT-DATA:ephemeral (可选) |
body |
整数 |
将要创建的临时磁盘的大小(以 GiB 为单位)。临时磁盘在服务器状态更改时可能会被覆盖。因此,应仅用作了解其限制的应用程序的临时空间。默认为 0。 |
swap (可选) |
body |
整数 |
将要分配的专用交换磁盘的大小(以 MiB 为单位)。如果为 0(默认值),则不会创建专用交换磁盘。 |
rxtx_factor (可选) |
body |
float |
如果网络后端支持 QOS 扩展,则将在端口上设置的接收/传输因子(浮点数)。否则将被忽略。默认值为 1.0。 |
os-flavor-access:is_public (可选) |
body |
布尔值 |
配置是公共的(所有项目都可用)还是限定于一组项目。如果未指定,则默认为 True。 |
示例:创建配置 (v2.55)
{
"flavor": {
"name": "test_flavor",
"ram": 1024,
"vcpus": 2,
"disk": 10,
"id": "10",
"rxtx_factor": 2.0,
"description": "test description"
}
}
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
flavor |
body |
对象 |
用于服务器实例的配置的 ID 和链接。配置是内存、磁盘大小和 CPU 的组合。 |
name |
body |
字符串 |
风类的显示名称。 |
description |
body |
字符串 |
配置的描述。 新功能,版本 2.55 |
id |
body |
字符串 |
风味 ID。虽然人们经常将其视为整数,但它实际上是一个字符串。 |
ram |
body |
整数 |
风味的大小,以 MiB 为单位。 |
disk |
body |
整数 |
用于创建实例的镜像的根磁盘大小(以 GiB 为单位)。如果为 0,根磁盘将设置为与用于部署实例的镜像大小完全一致。但是,在这种情况下,调度程序无法根据虚拟镜像大小选择计算主机。因此,0 只应用于卷启动的实例或用于测试目的。通过 |
vcpus |
body |
整数 |
将分配给服务器的虚拟 CPU 数量。 |
links |
body |
数组 |
指向相关资源的链接。有关更多信息,请参阅API 指南 / 链接和引用。 |
OS-FLV-EXT-DATA:ephemeral |
body |
整数 |
将要创建的临时磁盘的大小(以 GiB 为单位)。临时磁盘在服务器状态更改时可能会被覆盖。因此,应仅用作了解其限制的应用程序的临时空间。默认为 0。 |
OS-FLV-DISABLED:disabled (可选) |
body |
布尔值 |
配置是否已被管理员禁用。这是旧版 v2 API 的产物,始终设置为 |
swap |
body |
整数 |
将要分配的专用交换磁盘的大小(以 MiB 为单位)。如果为 0(默认值),则不会创建专用交换磁盘。目前,空字符串 (“”) 用于表示 0。从微版本 2.75 开始,swap 的默认返回值是 0,而不是空字符串。 |
rxtx_factor |
body |
float |
如果网络后端支持 QOS 扩展,则将在端口上设置的接收/传输因子(浮点数)。否则将被忽略。默认值为 1.0。 |
os-flavor-access:is_public |
body |
布尔值 |
配置是公共的(所有项目都可用)还是限定于一组项目。如果未指定,则默认为 True。 |
extra_specs (可选) |
body |
对象 |
风类附加规格键值对的字典。仅当用户被策略允许索引风类附加规格时才包含。 新功能,版本 2.61 |
示例:创建配置 (v2.75)
{
"flavor": {
"OS-FLV-DISABLED:disabled": false,
"disk": 10,
"OS-FLV-EXT-DATA:ephemeral": 0,
"os-flavor-access:is_public": true,
"id": "10",
"links": [
{
"href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/flavors/10",
"rel": "self"
},
{
"href": "http://openstack.example.com/6f70656e737461636b20342065766572/flavors/10",
"rel": "bookmark"
}
],
"name": "test_flavor",
"ram": 1024,
"swap": 0,
"rxtx_factor": 2.0,
"vcpus": 2,
"description": "test description",
"extra_specs": {}
}
}
列出详细的配置。
正常响应代码:200
错误响应代码:badRequest(400),unauthorized(401),forbidden(403)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
sort_key (可选) |
查询 |
字符串 |
按配置属性排序。默认属性是
|
sort_dir (可选) |
查询 |
字符串 |
排序方向。有效值为 |
limit (可选) |
查询 |
整数 |
请求项目页面大小。返回最多限制值数量的项目。使用 |
marker (可选) |
查询 |
字符串 |
最后一个已查看项目的 ID。使用 |
minDisk (可选) |
查询 |
整数 |
按最小磁盘空间(以 GiB 为单位)过滤响应。例如, |
minRam (可选) |
查询 |
整数 |
按最小 RAM(以 MiB 为单位)过滤响应。例如, |
is_public (可选) |
查询 |
字符串 |
此参数仅适用于具有管理员角色的用户。对于所有其他非管理员用户,将忽略此参数,并且仅返回公共配置。根据配置是公共的还是私有的来过滤配置列表。如果未指定此参数的值,则将其视为 |
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
flavors |
body |
数组 |
配置对象的数组。 |
name |
body |
字符串 |
风类的显示名称。 |
description |
body |
字符串 |
配置的描述。 新功能,版本 2.55 |
id |
body |
字符串 |
风味 ID。虽然人们经常将其视为整数,但它实际上是一个字符串。 |
ram |
body |
整数 |
风味的大小,以 MiB 为单位。 |
disk |
body |
整数 |
用于创建实例的镜像的根磁盘大小(以 GiB 为单位)。如果为 0,根磁盘将设置为与用于部署实例的镜像大小完全一致。但是,在这种情况下,调度程序无法根据虚拟镜像大小选择计算主机。因此,0 只应用于卷启动的实例或用于测试目的。通过 |
vcpus |
body |
整数 |
将分配给服务器的虚拟 CPU 数量。 |
links |
body |
数组 |
指向相关资源的链接。有关更多信息,请参阅API 指南 / 链接和引用。 |
OS-FLV-EXT-DATA:ephemeral |
body |
整数 |
将要创建的临时磁盘的大小(以 GiB 为单位)。临时磁盘在服务器状态更改时可能会被覆盖。因此,应仅用作了解其限制的应用程序的临时空间。默认为 0。 |
OS-FLV-DISABLED:disabled (可选) |
body |
布尔值 |
配置是否已被管理员禁用。这是旧版 v2 API 的产物,始终设置为 |
swap |
body |
整数 |
将要分配的专用交换磁盘的大小(以 MiB 为单位)。如果为 0(默认值),则不会创建专用交换磁盘。目前,空字符串 (“”) 用于表示 0。从微版本 2.75 开始,swap 的默认返回值是 0,而不是空字符串。 |
rxtx_factor |
body |
float |
如果网络后端支持 QOS 扩展,则将在端口上设置的接收/传输因子(浮点数)。否则将被忽略。默认值为 1.0。 |
os-flavor-access:is_public |
body |
布尔值 |
配置是公共的(所有项目都可用)还是限定于一组项目。如果未指定,则默认为 True。 |
extra_specs (可选) |
body |
对象 |
风类附加规格键值对的字典。仅当用户被策略允许索引风类附加规格时才包含。 新功能,版本 2.61 |
示例:列出详细的配置 (v2.75)
{
"flavors": [
{
"OS-FLV-DISABLED:disabled": false,
"disk": 1,
"OS-FLV-EXT-DATA:ephemeral": 0,
"os-flavor-access:is_public": true,
"id": "1",
"links": [
{
"href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/flavors/1",
"rel": "self"
},
{
"href": "http://openstack.example.com/6f70656e737461636b20342065766572/flavors/1",
"rel": "bookmark"
}
],
"name": "m1.tiny",
"ram": 512,
"swap": 0,
"vcpus": 1,
"rxtx_factor": 1.0,
"description": null,
"extra_specs": {}
},
{
"OS-FLV-DISABLED:disabled": false,
"disk": 20,
"OS-FLV-EXT-DATA:ephemeral": 0,
"os-flavor-access:is_public": true,
"id": "2",
"links": [
{
"href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/flavors/2",
"rel": "self"
},
{
"href": "http://openstack.example.com/6f70656e737461636b20342065766572/flavors/2",
"rel": "bookmark"
}
],
"name": "m1.small",
"ram": 2048,
"swap": 0,
"vcpus": 1,
"rxtx_factor": 1.0,
"description": null,
"extra_specs": {}
},
{
"OS-FLV-DISABLED:disabled": false,
"disk": 40,
"OS-FLV-EXT-DATA:ephemeral": 0,
"os-flavor-access:is_public": true,
"id": "3",
"links": [
{
"href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/flavors/3",
"rel": "self"
},
{
"href": "http://openstack.example.com/6f70656e737461636b20342065766572/flavors/3",
"rel": "bookmark"
}
],
"name": "m1.medium",
"ram": 4096,
"swap": 0,
"vcpus": 2,
"rxtx_factor": 1.0,
"description": null,
"extra_specs": {}
},
{
"OS-FLV-DISABLED:disabled": false,
"disk": 80,
"OS-FLV-EXT-DATA:ephemeral": 0,
"os-flavor-access:is_public": true,
"id": "4",
"links": [
{
"href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/flavors/4",
"rel": "self"
},
{
"href": "http://openstack.example.com/6f70656e737461636b20342065766572/flavors/4",
"rel": "bookmark"
}
],
"name": "m1.large",
"ram": 8192,
"swap": 0,
"vcpus": 4,
"rxtx_factor": 1.0,
"description": null,
"extra_specs": {}
},
{
"OS-FLV-DISABLED:disabled": false,
"disk": 160,
"OS-FLV-EXT-DATA:ephemeral": 0,
"os-flavor-access:is_public": true,
"id": "5",
"links": [
{
"href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/flavors/5",
"rel": "self"
},
{
"href": "http://openstack.example.com/6f70656e737461636b20342065766572/flavors/5",
"rel": "bookmark"
}
],
"name": "m1.xlarge",
"ram": 16384,
"swap": 0,
"vcpus": 8,
"rxtx_factor": 1.0,
"description": null,
"extra_specs": {}
},
{
"OS-FLV-DISABLED:disabled": false,
"disk": 1,
"OS-FLV-EXT-DATA:ephemeral": 0,
"os-flavor-access:is_public": true,
"id": "6",
"links": [
{
"href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/flavors/6",
"rel": "self"
},
{
"href": "http://openstack.example.com/6f70656e737461636b20342065766572/flavors/6",
"rel": "bookmark"
}
],
"name": "m1.tiny.specs",
"ram": 512,
"swap": 0,
"vcpus": 1,
"rxtx_factor": 1.0,
"description": null,
"extra_specs": {
"hw:numa_nodes": "1"
}
},
{
"OS-FLV-DISABLED:disabled": false,
"disk": 20,
"OS-FLV-EXT-DATA:ephemeral": 0,
"os-flavor-access:is_public": true,
"id": "7",
"links": [
{
"href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/flavors/7",
"rel": "self"
},
{
"href": "http://openstack.example.com/6f70656e737461636b20342065766572/flavors/7",
"rel": "bookmark"
}
],
"name": "m1.small.description",
"ram": 2048,
"swap": 0,
"vcpus": 1,
"rxtx_factor": 1.0,
"description": "test description",
"extra_specs": {
"hw:cpu_policy": "shared",
"hw:numa_nodes": "1"
}
}
]
}
显示flavor的详情。
正常响应代码:200
错误响应代码:unauthorized(401)、forbidden(403)、itemNotFound(404)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
flavor_id |
路径 |
字符串 |
flavor 的 ID。 |
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
flavor |
body |
对象 |
用于服务器实例的配置的 ID 和链接。配置是内存、磁盘大小和 CPU 的组合。 |
name |
body |
字符串 |
风类的显示名称。 |
description |
body |
字符串 |
配置的描述。 新功能,版本 2.55 |
id |
body |
字符串 |
风味 ID。虽然人们经常将其视为整数,但它实际上是一个字符串。 |
ram |
body |
整数 |
风味的大小,以 MiB 为单位。 |
disk |
body |
整数 |
用于创建实例的镜像的根磁盘大小(以 GiB 为单位)。如果为 0,根磁盘将设置为与用于部署实例的镜像大小完全一致。但是,在这种情况下,调度程序无法根据虚拟镜像大小选择计算主机。因此,0 只应用于卷启动的实例或用于测试目的。通过 |
vcpus |
body |
整数 |
将分配给服务器的虚拟 CPU 数量。 |
links |
body |
数组 |
指向相关资源的链接。有关更多信息,请参阅API 指南 / 链接和引用。 |
OS-FLV-EXT-DATA:ephemeral |
body |
整数 |
将要创建的临时磁盘的大小(以 GiB 为单位)。临时磁盘在服务器状态更改时可能会被覆盖。因此,应仅用作了解其限制的应用程序的临时空间。默认为 0。 |
OS-FLV-DISABLED:disabled (可选) |
body |
布尔值 |
配置是否已被管理员禁用。这是旧版 v2 API 的产物,始终设置为 |
swap |
body |
整数 |
将要分配的专用交换磁盘的大小(以 MiB 为单位)。如果为 0(默认值),则不会创建专用交换磁盘。目前,空字符串 (“”) 用于表示 0。从微版本 2.75 开始,swap 的默认返回值是 0,而不是空字符串。 |
rxtx_factor |
body |
float |
如果网络后端支持 QOS 扩展,则将在端口上设置的接收/传输因子(浮点数)。否则将被忽略。默认值为 1.0。 |
os-flavor-access:is_public |
body |
布尔值 |
配置是公共的(所有项目都可用)还是限定于一组项目。如果未指定,则默认为 True。 |
extra_specs (可选) |
body |
对象 |
风类附加规格键值对的字典。仅当用户被策略允许索引风类附加规格时才包含。 新功能,版本 2.61 |
示例:显示配置详细信息 (v2.75)
{
"flavor": {
"OS-FLV-DISABLED:disabled": false,
"disk": 20,
"OS-FLV-EXT-DATA:ephemeral": 0,
"os-flavor-access:is_public": true,
"id": "7",
"links": [
{
"href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/flavors/7",
"rel": "self"
},
{
"href": "http://openstack.example.com/6f70656e737461636b20342065766572/flavors/7",
"rel": "bookmark"
}
],
"name": "m1.small.description",
"ram": 2048,
"swap": 0,
"vcpus": 1,
"rxtx_factor": 1.0,
"description": "test description",
"extra_specs": {
"hw:cpu_policy": "shared",
"hw:numa_nodes": "1"
}
}
}
更新配置描述。
此 API 从微版本 2.55 开始可用。
策略默认仅允许具有管理员角色的用户执行此操作。云提供商可以通过 policy.json 文件更改这些权限。
正常响应代码:200
错误响应代码:badRequest(400)、unauthorized(401)、forbidden(403)、itemNotFound(404)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
flavor_id |
路径 |
字符串 |
flavor 的 ID。 |
flavor |
body |
对象 |
用于服务器实例的配置的 ID 和链接。配置是内存、磁盘大小和 CPU 的组合。 |
description |
body |
字符串 |
配置的自由格式描述。长度限制为 65535 个字符。仅允许使用可打印字符。 |
示例:更新配置描述 (v2.55)
{
"flavor": {
"description": "updated description"
}
}
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
flavor |
body |
对象 |
用于服务器实例的配置的 ID 和链接。配置是内存、磁盘大小和 CPU 的组合。 |
name |
body |
字符串 |
风类的显示名称。 |
description |
body |
字符串 |
配置的描述。 |
id |
body |
字符串 |
风味 ID。虽然人们经常将其视为整数,但它实际上是一个字符串。 |
ram |
body |
整数 |
风味的大小,以 MiB 为单位。 |
disk |
body |
整数 |
用于创建实例的镜像的根磁盘大小(以 GiB 为单位)。如果为 0,根磁盘将设置为与用于部署实例的镜像大小完全一致。但是,在这种情况下,调度程序无法根据虚拟镜像大小选择计算主机。因此,0 只应用于卷启动的实例或用于测试目的。通过 |
vcpus |
body |
整数 |
将分配给服务器的虚拟 CPU 数量。 |
links |
body |
数组 |
指向相关资源的链接。有关更多信息,请参阅API 指南 / 链接和引用。 |
OS-FLV-EXT-DATA:ephemeral |
body |
整数 |
将要创建的临时磁盘的大小(以 GiB 为单位)。临时磁盘在服务器状态更改时可能会被覆盖。因此,应仅用作了解其限制的应用程序的临时空间。默认为 0。 |
OS-FLV-DISABLED:disabled (可选) |
body |
布尔值 |
配置是否已被管理员禁用。这是旧版 v2 API 的产物,始终设置为 |
swap |
body |
整数 |
将要分配的专用交换磁盘的大小(以 MiB 为单位)。如果为 0(默认值),则不会创建专用交换磁盘。目前,空字符串 (“”) 用于表示 0。从微版本 2.75 开始,swap 的默认返回值是 0,而不是空字符串。 |
rxtx_factor |
body |
float |
如果网络后端支持 QOS 扩展,则将在端口上设置的接收/传输因子(浮点数)。否则将被忽略。默认值为 1.0。 |
os-flavor-access:is_public |
body |
布尔值 |
配置是公共的(所有项目都可用)还是限定于一组项目。如果未指定,则默认为 True。 |
extra_specs (可选) |
body |
对象 |
风类附加规格键值对的字典。仅当用户被策略允许索引风类附加规格时才包含。 新功能,版本 2.61 |
示例:更新配置描述 (v2.75)
{
"flavor": {
"OS-FLV-DISABLED:disabled": false,
"disk": 1,
"OS-FLV-EXT-DATA:ephemeral": 0,
"os-flavor-access:is_public": true,
"id": "1",
"links": [
{
"href": "http://openstack.example.com/v2.1/6f70656e737461636b20342065766572/flavors/1",
"rel": "self"
},
{
"href": "http://openstack.example.com/6f70656e737461636b20342065766572/flavors/1",
"rel": "bookmark"
}
],
"name": "m1.tiny",
"ram": 512,
"swap": 0,
"vcpus": 1,
"rxtx_factor": 1.0,
"description": "updated description",
"extra_specs": {}
}
}
删除配置。
这通常是管理员才能执行的操作。不建议删除正在被现有服务器使用的配置,因为它可能导致在某些操作中向用户返回不正确的数据。
正常响应代码:202
错误响应代码:unauthorized(401)、forbidden(403)、itemNotFound(404)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
flavor_id |
路径 |
字符串 |
flavor 的 ID。 |
响应¶
成功删除后不返回正文内容。
配置访问 (flavors, os-flavor-access)¶
列出有权访问私有配置的租户,并向租户添加私有配置访问权限,或从中移除。默认情况下,只有管理员可以管理私有配置访问。私有配置的 is_public 设置为 false,而公共配置的 is_public 设置为 true。
列出配置访问信息。
正常响应代码:200
错误响应代码:unauthorized(401)、forbidden(403)、itemNotFound(404)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
flavor_id |
路径 |
字符串 |
flavor 的 ID。 |
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
flavor_access |
body |
数组 |
一个对象列表,每个对象都有 |
tenant_id |
body |
字符串 |
多租户云中的租户 UUID。 |
flavor_id |
body |
字符串 |
风味 ID。虽然人们经常将其视为整数,但它实际上是一个字符串。 |
示例:列出给定配置的访问信息:JSON 响应
{
"flavor_access": [
{
"flavor_id": "10",
"tenant_id": "6f70656e737461636b20342065766572"
}
]
}
向租户和配置添加访问权限。
在请求体中指定 addTenantAccess 操作和 tenant。
正常响应代码:200
错误响应代码:badRequest(400),unauthorized(401),forbidden(403),itemNotFound(404),conflict(409)
400 - BadRequest - 如果在您的 OpenStack 部署中找不到 tenant,则返回 400 以防止 API 调用中的拼写错误。
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
flavor_id |
路径 |
字符串 |
flavor 的 ID。 |
addTenantAccess |
body |
字符串 |
操作。 |
tenant |
body |
字符串 |
多租户云中的租户 UUID。 |
示例:向租户添加配置访问:JSON 请求
{
"addTenantAccess": {
"tenant": "fake_tenant"
}
}
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
flavor_access |
body |
数组 |
一个对象列表,每个对象都有 |
tenant_id |
body |
字符串 |
多租户云中的租户 UUID。 |
flavor_id |
body |
字符串 |
风味 ID。虽然人们经常将其视为整数,但它实际上是一个字符串。 |
示例:向租户添加配置访问:JSON 响应
{
"flavor_access": [
{
"flavor_id": "10",
"tenant_id": "6f70656e737461636b20342065766572"
}
]
}
从租户和配置中移除配置访问权限。
在请求体中指定 removeTenantAccess 操作和 tenant。
正常响应代码:200
错误响应代码:badRequest(400),unauthorized(401),forbidden(403),itemNotFound(404),conflict(409)
400 - BadRequest - 如果在您的 OpenStack 部署中找不到 tenant,则返回 400 以防止 API 调用中的拼写错误。
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
flavor_id |
路径 |
字符串 |
flavor 的 ID。 |
removeTenantAccess |
body |
字符串 |
操作。 |
tenant |
body |
字符串 |
多租户云中的租户 UUID。 |
示例:从租户移除配置访问:JSON 请求
{
"removeTenantAccess": {
"tenant": "fake_tenant"
}
}
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
flavor_access |
body |
数组 |
一个对象列表,每个对象都有 |
tenant_id |
body |
字符串 |
多租户云中的租户 UUID。 |
flavor_id |
body |
字符串 |
风味 ID。虽然人们经常将其视为整数,但它实际上是一个字符串。 |
示例:从租户移除配置访问:JSON 响应
{
"flavor_access": [
]
}
配置额外规格 (flavors, os-flavor-extra-specs)¶
列出、创建、删除和更新配置的额外规格或键。
有关可用内置额外规格,请参阅 计算配置。
按 ID 列出配置的所有额外规格。
正常响应代码:200
错误响应代码:unauthorized(401)、forbidden(403)、itemNotFound(404)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
flavor_id |
路径 |
字符串 |
flavor 的 ID。 |
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
extra_specs |
body |
对象 |
配置额外规格键值对的字典。它出现在 os-extra-specs 的“create”请求体以及 os-extra-specs 的“create”和“list”响应体中。 |
key |
body |
字符串 |
配置的额外规格键。它出现在 os-extra-specs 的“create”和“update”请求体以及 os-extra-specs 的“create”、“list”、“show”和“update”响应体中。 |
value |
body |
字符串 |
配置的额外规格值。它出现在 os-extra-specs 的“create”和“update”请求体以及 os-extra-specs 的“create”、“list”、“show”和“update”响应体中。 |
示例:列出配置的额外规格:JSON 响应
{
"extra_specs": {
"hw:cpu_policy": "shared",
"hw:numa_nodes": "1"
}
}
按 ID 为配置创建额外规格。
正常响应代码:200
错误响应代码:unauthorized(401)、forbidden(403)、itemNotFound(404)、conflict(409)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
flavor_id |
路径 |
字符串 |
flavor 的 ID。 |
extra_specs |
body |
对象 |
配置额外规格键值对的字典。它出现在 os-extra-specs 的“create”请求体以及 os-extra-specs 的“create”和“list”响应体中。 |
key |
body |
字符串 |
配置的额外规格键。它出现在 os-extra-specs 的“create”和“update”请求体以及 os-extra-specs 的“create”、“list”、“show”和“update”响应体中。 |
value |
body |
字符串 |
配置的额外规格值。它出现在 os-extra-specs 的“create”和“update”请求体以及 os-extra-specs 的“create”、“list”、“show”和“update”响应体中。 |
示例:为配置创建额外规格:JSON 请求
{
"extra_specs": {
"hw:cpu_policy": "shared",
"hw:numa_nodes": "1"
}
}
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
extra_specs |
body |
对象 |
配置额外规格键值对的字典。它出现在 os-extra-specs 的“create”请求体以及 os-extra-specs 的“create”和“list”响应体中。 |
key |
body |
字符串 |
配置的额外规格键。它出现在 os-extra-specs 的“create”和“update”请求体以及 os-extra-specs 的“create”、“list”、“show”和“update”响应体中。 |
value |
body |
字符串 |
配置的额外规格值。它出现在 os-extra-specs 的“create”和“update”请求体以及 os-extra-specs 的“create”、“list”、“show”和“update”响应体中。 |
示例:为配置创建额外规格:JSON 响应
{
"extra_specs": {
"hw:cpu_policy": "shared",
"hw:numa_nodes": "1"
}
}
按键显示配置的某个额外规格,按 ID。
正常响应代码:200
错误响应代码:unauthorized(401)、forbidden(403)、itemNotFound(404)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
flavor_id |
路径 |
字符串 |
flavor 的 ID。 |
flavor_extra_spec_key |
路径 |
字符串 |
配置的额外规格键。 |
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
key |
body |
字符串 |
配置的额外规格键。它出现在 os-extra-specs 的“create”和“update”请求体以及 os-extra-specs 的“create”、“list”、“show”和“update”响应体中。 |
value |
body |
字符串 |
配置的额外规格值。它出现在 os-extra-specs 的“create”和“update”请求体以及 os-extra-specs 的“create”、“list”、“show”和“update”响应体中。 |
示例:显示配置的某个额外规格:JSON 响应
{
"hw:numa_nodes": "1"
}
按键更新配置的某个额外规格,按 ID。
正常响应代码:200
错误响应代码:badRequest(400), unauthorized(401), forbidden(403) itemNotFound(404), conflict(409)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
flavor_id |
路径 |
字符串 |
flavor 的 ID。 |
flavor_extra_spec_key |
路径 |
字符串 |
配置的额外规格键。 |
key |
body |
字符串 |
配置的额外规格键。它出现在 os-extra-specs 的“create”和“update”请求体以及 os-extra-specs 的“create”、“list”、“show”和“update”响应体中。 |
value |
body |
字符串 |
配置的额外规格值。它出现在 os-extra-specs 的“create”和“update”请求体以及 os-extra-specs 的“create”、“list”、“show”和“update”响应体中。 |
示例:更新配置的某个额外规格:JSON 请求
{
"hw:numa_nodes": "2"
}
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
key |
body |
字符串 |
配置的额外规格键。它出现在 os-extra-specs 的“create”和“update”请求体以及 os-extra-specs 的“create”、“list”、“show”和“update”响应体中。 |
value |
body |
字符串 |
配置的额外规格值。它出现在 os-extra-specs 的“create”和“update”请求体以及 os-extra-specs 的“create”、“list”、“show”和“update”响应体中。 |
示例:更新配置的某个额外规格:JSON 响应
{
"hw:numa_nodes": "2"
}
按键删除配置的某个额外规格,按 ID。
正常响应代码:200
错误响应代码:unauthorized(401)、forbidden(403)、itemNotFound(404)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
flavor_id |
路径 |
字符串 |
flavor 的 ID。 |
flavor_extra_spec_key |
路径 |
字符串 |
配置的额外规格键。 |
响应¶
成功的 DELETE 操作的响应体为空。
密钥对 (keypairs)¶
生成、导入和删除 SSH 密钥。
列出与帐户关联的密钥对。
正常响应代码:200
错误响应代码:未授权(401)、禁止(403)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
user_id (可选) |
查询 |
字符串 |
这允许管理员用户操作指定用户 ID 的密钥对。 版本 2.10 中新增 |
limit (可选) |
查询 |
整数 |
请求分页的项目。返回的项目数最多为 limit 值。使用 新功能,版本 2.35 |
marker (可选) |
查询 |
字符串 |
最后一个看到的条目。使用 新功能,版本 2.35 |
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
keypairs |
body |
数组 |
密钥对对象数组。 |
keypair |
body |
对象 |
密钥对对象。 |
name |
body |
字符串 |
密钥对的名称。 |
public_key |
body |
字符串 |
密钥对的公钥。 |
fingerprint |
body |
字符串 |
密钥对的指纹。 |
type |
body |
字符串 |
密钥对的类型。允许的值为 版本 2.2 中新增 |
keypairs_links (可选) |
body |
数组 |
与密钥对相关的链接。有关更多信息,请参阅 API 指南 / 链接和引用。 新功能,版本 2.35 |
示例:列出密钥对 (v2.35):JSON 响应
{
"keypairs": [
{
"keypair": {
"fingerprint": "7e:eb:ab:24:ba:d1:e1:88:ae:9a:fb:66:53:df:d3:bd",
"name": "keypair-5d935425-31d5-48a7-a0f1-e76e9813f2c3",
"type": "ssh",
"public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCkF3MX59OrlBs3dH5CU7lNmvpbrgZxSpyGjlnE8Flkirnc/Up22lpjznoxqeoTAwTW034k7Dz6aYIrZGmQwe2TkE084yqvlj45Dkyoj95fW/sZacm0cZNuL69EObEGHdprfGJQajrpz22NQoCD8TFB8Wv+8om9NH9Le6s+WPe98WC77KLw8qgfQsbIey+JawPWl4O67ZdL5xrypuRjfIPWjgy/VH85IXg/Z/GONZ2nxHgSShMkwqSFECAC5L3PHB+0+/12M/iikdatFSVGjpuHvkLOs3oe7m6HlOfluSJ85BzLWBbvva93qkGmLg4ZAc8rPh2O+YIsBUHNLLMM/oQp Generated-by-Nova\n"
}
}
],
"keypairs_links": [
{
"href": "http://openstack.example.com/v2.1/6f70656e737461636b20342065766572/os-keypairs?limit=1&marker=keypair-5d935425-31d5-48a7-a0f1-e76e9813f2c3",
"rel": "next"
}
]
}
导入(或生成)密钥对。
警告
从 2.92 版本开始,不再可能生成密钥对。
正常响应代码:200, 201
注意
在版本 2.2 中,成功状态代码从 200 更改为 201。
错误响应代码:badRequest(400),unauthorized(401),forbidden(403),conflict(409)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
keypair |
body |
对象 |
密钥对对象。 |
name |
body |
字符串 |
用于稍后引用密钥对的名称。 注意 自微版本 2.92 起,允许的字符是 ASCII 字母 |
public_key |
body |
字符串 |
要导入的公钥 SSH。在微版本 2.92 之前是可选的:如果您省略此值,将为您生成一个密钥对。请务必保存此密钥,因为将来无法再次获取此私钥。 |
type (可选) |
body |
字符串 |
密钥对的类型。允许的值为 版本 2.2 中新增 |
user_id (可选) |
body |
字符串 |
密钥对的用户 ID。这允许管理员用户上传非自己的密钥。 版本 2.10 中新增 |
示例:创建或导入密钥对 (v2.10):JSON 请求
{
"keypair": {
"name": "keypair-d20a3d59-9433-4b79-8726-20b431d89c78",
"type": "ssh",
"public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQDx8nkQv/zgGgB4rMYmIf+6A4l6Rr+o/6lHBQdW5aYd44bd8JttDCE/F/pNRr0lRE+PiqSPO8nDPHw0010JeMH9gYgnnFlyY3/OcJ02RhIPyyxYpv9FhY+2YiUkpwFOcLImyrxEsYXpD/0d3ac30bNH6Sw9JD9UZHYcpSxsIbECHw== Generated-by-Nova",
"user_id": "fake"
}
}
示例:导入密钥对 (v2.92):JSON 请求
{
"keypair": {
"name": "me.and.myself@this.nice.domain.com mooh.",
"type": "ssh",
"public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQDx8nkQv/zgGgB4rMYmIf+6A4l6Rr+o/6lHBQdW5aYd44bd8JttDCE/F/pNRr0lRE+PiqSPO8nDPHw0010JeMH9gYgnnFlyY3/OcJ02RhIPyyxYpv9FhY+2YiUkpwFOcLImyrxEsYXpD/0d3ac30bNH6Sw9JD9UZHYcpSxsIbECHw== Generated-by-Nova",
"user_id": "fake"
}
}
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
keypair |
body |
对象 |
密钥对对象。 |
name |
body |
字符串 |
密钥对的名称。 |
public_key |
body |
字符串 |
密钥对的公钥。 |
fingerprint |
body |
字符串 |
密钥对的指纹。 |
user_id |
body |
字符串 |
密钥对的用户 ID。 |
private_key (可选) |
body |
字符串 |
如果在创建时未提供公钥,将为您构建一个新的密钥对,并在初始创建调用期间返回私钥。请务必保存此密钥,因为将来无法再次获取此私钥。 在版本 2.91 之前可用。 |
type |
body |
字符串 |
密钥对的类型。允许的值为 版本 2.2 中新增 |
示例:创建或导入密钥对 (v2.10):JSON 响应
{
"keypair": {
"fingerprint": "1e:2c:9b:56:79:4b:45:77:f9:ca:7a:98:2c:b0:d5:3c",
"name": "keypair-803a1926-af78-4b05-902a-1d6f7a8d9d3e",
"type": "ssh",
"public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQDx8nkQv/zgGgB4rMYmIf+6A4l6Rr+o/6lHBQdW5aYd44bd8JttDCE/F/pNRr0lRE+PiqSPO8nDPHw0010JeMH9gYgnnFlyY3/OcJ02RhIPyyxYpv9FhY+2YiUkpwFOcLImyrxEsYXpD/0d3ac30bNH6Sw9JD9UZHYcpSxsIbECHw== Generated-by-Nova",
"user_id": "fake"
}
}
示例:导入密钥对 (v2.92):JSON 响应
{
"keypair": {
"fingerprint": "1e:2c:9b:56:79:4b:45:77:f9:ca:7a:98:2c:b0:d5:3c",
"name": "me.and.myself@this.nice.domain.com mooh.",
"type": "ssh",
"public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQDx8nkQv/zgGgB4rMYmIf+6A4l6Rr+o/6lHBQdW5aYd44bd8JttDCE/F/pNRr0lRE+PiqSPO8nDPHw0010JeMH9gYgnnFlyY3/OcJ02RhIPyyxYpv9FhY+2YiUkpwFOcLImyrxEsYXpD/0d3ac30bNH6Sw9JD9UZHYcpSxsIbECHw== Generated-by-Nova",
"user_id": "fake"
}
}
显示与帐户关联的密钥对的详细信息。
正常响应代码:200
错误响应代码:unauthorized(401)、forbidden(403)、itemNotFound(404)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
keypair_name |
路径 |
字符串 |
密钥对的名称。 |
user_id (可选) |
查询 |
字符串 |
这允许管理员用户操作指定用户 ID 的密钥对。 版本 2.10 中新增 |
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
keypair |
body |
对象 |
密钥对对象。 |
created_at |
body |
字符串 |
资源被创建的日期和时间。日期和时间戳格式为 ISO 8601。 CCYY-MM-DDThh:mm:ss±hh:mm
例如, |
deleted |
body |
布尔值 |
一个布尔值,指示此密钥对是否已被删除。值始终为 |
deleted_at |
body |
none |
它始终为 |
fingerprint |
body |
字符串 |
密钥对的指纹。 |
id |
body |
整数 |
密钥对的 ID。 |
name |
body |
字符串 |
密钥对的名称。 |
public_key |
body |
字符串 |
密钥对的公钥。 |
updated_at |
body |
none |
它始终为 |
user_id |
body |
字符串 |
密钥对的用户 ID。 |
type |
body |
字符串 |
密钥对的类型。允许的值为 版本 2.2 中新增 |
示例:显示密钥对详细信息 (v2.10):JSON 响应
{
"keypair": {
"fingerprint": "44:fe:29:6e:23:14:b9:53:5b:65:82:58:1c:fe:5a:c3",
"name": "keypair-6638abdb-c4e8-407c-ba88-c8dd7cc3c4f1",
"type": "ssh",
"public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC1HTrHCbb9NawNLSV8N6tSa8i637+EC2dA+lsdHHfQlT54t+N0nHhJPlKWDLhc579j87vp6RDFriFJ/smsTnDnf64O12z0kBaJpJPH2zXrBkZFK6q2rmxydURzX/z0yLSCP77SFJ0fdXWH2hMsAusflGyryHGX20n+mZK6mDrxVzGxEz228dwQ5G7Az5OoZDWygH2pqPvKjkifRw0jwUKf3BbkP0QvANACOk26cv16mNFpFJfI1N3OC5lUsZQtKGR01ptJoWijYKccqhkAKuo902tg/qup58J5kflNm7I61sy1mJon6SGqNUSfoQagqtBH6vd/tU1jnlwZ03uUroAL Generated-by-Nova\n",
"user_id": "fake",
"deleted": false,
"created_at": "2014-05-07T12:06:13.681238",
"updated_at": null,
"deleted_at": null,
"id": 1
}
}
删除密钥对。
正常响应代码:202, 204
注意
在版本 2.2 中,正常返回代码为 204,以匹配不返回正文内容的事实。
错误响应代码:unauthorized(401)、forbidden(403)、itemNotFound(404)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
keypair_name |
路径 |
字符串 |
密钥对的名称。 |
user_id (可选) |
查询 |
字符串 |
这允许管理员用户操作指定用户 ID 的密钥对。 版本 2.10 中新增 |
响应¶
成功的 DELETE 查询没有响应正文内容
配额 (limits)¶
显示项目的速率和绝对限制。
显示项目的速率和绝对限制。
正常响应代码:200
错误响应代码:未授权(401)、禁止(403)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
reserved (可选) |
查询 |
整数 |
指定资源总数是否包含预留资源。
如果指定非整数值,则与 |
tenant_id (可选) |
查询 |
字符串 |
指定要显示速率和绝对限制的项目 ID(租户 ID)。此参数只能由管理员指定。 |
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
限制 |
body |
对象 |
包含部署内绝对限制的数据结构。 |
absolute |
body |
对象 |
设置部署内配额限制的名称/值对和资源使用情况的名称/值对。 |
maxServerGroupMembers |
body |
整数 |
每个服务器组允许的成员数。 |
maxServerGroups |
body |
整数 |
每个租户允许的服务器组数。 |
maxServerMeta |
body |
整数 |
每个服务器允许的元数据项数。 |
maxTotalCores |
body |
整数 |
每个租户允许的服务器核心数。 |
maxTotalInstances |
body |
整数 |
每个租户允许的服务器数量。 |
maxTotalKeypairs |
body |
整数 |
每个用户允许的密钥对数量。 |
maxTotalRAMSize |
body |
整数 |
每个租户允许的服务器 RAM 量(以 MiB 为单位)。 |
totalCoresUsed |
body |
整数 |
每个租户已使用的服务器核心数。如果指定了 |
totalInstancesUsed |
body |
整数 |
每个租户中的服务器数量。如果指定了 |
totalRAMUsed |
body |
整数 |
每个租户中已使用的服务器 RAM 量。如果指定了 |
totalServerGroupsUsed |
body |
整数 |
每个租户中已使用的服务器组数。如果指定了 |
maxSecurityGroupRules |
body |
整数 |
每个安全组允许的规则数。 在版本 2.35 之前可用。 |
maxSecurityGroups |
body |
整数 |
每个租户允许的安全组数。 在版本 2.35 之前可用。 |
maxTotalFloatingIps |
body |
整数 |
每个租户允许的浮动 IP 地址数。 在版本 2.35 之前可用。 |
totalFloatingIpsUsed |
body |
整数 |
每个租户中已使用的浮动 IP 地址数。如果指定了 在版本 2.35 之前可用。 |
totalSecurityGroupsUsed |
body |
整数 |
每个租户中已使用的安全组数。如果指定了 在版本 2.35 之前可用。 |
maxImageMeta |
body |
整数 |
每个镜像允许的元数据项数。从 2.39 版本开始,此字段已从“os-limits”响应中删除,因为“image-metadata”代理 API 已被弃用。 在版本 2.38 之前可用。 |
maxPersonality |
body |
整数 |
每个租户允许注入的文件数。 在版本 2.56 之前可用 |
maxPersonalitySize |
body |
整数 |
每个注入文件的允许内容字节数。 在版本 2.56 之前可用 |
rate |
body |
数组 |
为了向后兼容而提供的空列表。 |
示例:显示速率和绝对限制:JSON 响应
{
"limits": {
"absolute": {
"maxImageMeta": 128,
"maxPersonality": 5,
"maxPersonalitySize": 10240,
"maxSecurityGroupRules": -1,
"maxSecurityGroups": -1,
"maxServerMeta": 128,
"maxTotalCores": 20,
"maxTotalFloatingIps": -1,
"maxTotalInstances": 10,
"maxTotalKeypairs": 100,
"maxTotalRAMSize": 51200,
"maxServerGroups": 10,
"maxServerGroupMembers": 10,
"totalCoresUsed": 0,
"totalInstancesUsed": 0,
"totalRAMUsed": 0,
"totalSecurityGroupsUsed": 0,
"totalFloatingIpsUsed": 0,
"totalServerGroupsUsed": 0
},
"rate": []
}
}
主机聚合 (os-aggregates)¶
创建和管理主机聚合。聚合为计算节点组分配元数据。
策略默认设置仅允许具有管理员角色的用户执行与聚合相关的操作。云提供商可以通过 策略文件配置 更改这些权限。
列出所有聚合。包括每个聚合的 ID、名称和可用性区域。
正常响应代码:200
错误响应代码:未授权(401)、禁止(403)
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
aggregates |
body |
数组 |
现有聚合列表。 |
availability_zone |
body |
字符串 |
主机聚合的可用性区域。 |
created_at |
body |
字符串 |
资源被创建的日期和时间。日期和时间戳格式为 ISO 8601。 CCYY-MM-DDThh:mm:ss±hh:mm
例如, |
deleted_at |
body |
字符串 |
资源删除的日期和时间。如果资源尚未删除,此字段将为 CCYY-MM-DDThh:mm:ss±hh:mm
例如, |
deleted |
body |
布尔值 |
一个布尔值,指示此聚合是否已被删除;如果尚未删除,则显示 |
hosts |
body |
数组 |
此聚合中的主机 ID 列表。 |
id |
body |
整数 |
主机聚合的 ID。 |
metadata |
body |
对象 |
与聚合关联的元数据键值对。 |
name |
body |
字符串 |
主机聚合的名称。 |
updated_at |
body |
字符串 |
资源更新的日期和时间,如果资源尚未更新,此字段将显示为 CCYY-MM-DDThh:mm:ss±hh:mm
例如, |
uuid |
body |
字符串 |
主机聚合的 UUID。 新功能,版本 2.41 |
示例:列出聚合 (v2.41):JSON 响应
{
"aggregates": [
{
"availability_zone": "london",
"created_at": "2016-12-27T23:47:32.911515",
"deleted": false,
"deleted_at": null,
"hosts": [
"compute"
],
"id": 1,
"metadata": {
"availability_zone": "london"
},
"name": "name",
"updated_at": null,
"uuid": "6ba28ba7-f29b-45cc-a30b-6e3a40c2fb14"
}
]
}
创建聚合。如果指定了可选的 availability_zone,则聚合将被创建为可用性区域,并且该可用性区域对普通用户可见。
正常响应代码:200
错误响应代码:badRequest(400),unauthorized(401),forbidden(403),conflict(409)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
聚合 |
body |
对象 |
主机聚合对象。 |
name |
body |
字符串 |
主机聚合的名称。 |
availability_zone (可选) |
body |
字符串 |
主机聚合的可用性区域。您应该使用自定义可用性区域而不是 os-availability-zone API 返回的默认值。可用性区域的名称不得包含“:”。 |
示例:创建聚合:JSON 请求
{
"aggregate":
{
"name": "name",
"availability_zone": "london"
}
}
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
聚合 |
body |
对象 |
主机聚合对象。 |
availability_zone |
body |
字符串 |
主机聚合的可用性区域。 |
created_at |
body |
字符串 |
资源被创建的日期和时间。日期和时间戳格式为 ISO 8601。 CCYY-MM-DDThh:mm:ss±hh:mm
例如, |
deleted_at |
body |
字符串 |
资源删除的日期和时间。如果资源尚未删除,此字段将为 CCYY-MM-DDThh:mm:ss±hh:mm
例如, |
deleted |
body |
布尔值 |
一个布尔值,指示此聚合是否已被删除;如果尚未删除,则显示 |
id |
body |
整数 |
主机聚合的 ID。 |
name |
body |
字符串 |
主机聚合的名称。 |
updated_at |
body |
字符串 |
资源更新的日期和时间,如果资源尚未更新,此字段将显示为 CCYY-MM-DDThh:mm:ss±hh:mm
例如, |
uuid |
body |
字符串 |
主机聚合的 UUID。 新功能,版本 2.41 |
示例:创建聚合 (v2.41):JSON 响应
{
"aggregate": {
"availability_zone": "london",
"created_at": "2016-12-27T22:51:32.877711",
"deleted": false,
"deleted_at": null,
"id": 1,
"name": "name",
"updated_at": null,
"uuid": "86a0da0e-9f0c-4f51-a1e0-3c25edab3783"
}
}
显示聚合的详细信息。详细信息包括主机和元数据。
正常响应代码:200
错误响应代码:unauthorized(401)、forbidden(403)、itemNotFound(404)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
aggregate_id |
路径 |
整数 |
聚合的 ID。 |
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
聚合 |
body |
对象 |
主机聚合对象。 |
availability_zone |
body |
字符串 |
主机聚合的可用性区域。 |
created_at |
body |
字符串 |
资源被创建的日期和时间。日期和时间戳格式为 ISO 8601。 CCYY-MM-DDThh:mm:ss±hh:mm
例如, |
deleted_at |
body |
字符串 |
资源删除的日期和时间。如果资源尚未删除,此字段将为 CCYY-MM-DDThh:mm:ss±hh:mm
例如, |
deleted |
body |
布尔值 |
一个布尔值,指示此聚合是否已被删除;如果尚未删除,则显示 |
hosts |
body |
数组 |
主机信息的数组。 |
id |
body |
整数 |
主机聚合的 ID。 |
metadata |
body |
对象 |
与聚合关联的元数据键值对。 |
name |
body |
字符串 |
主机聚合的名称。 |
updated_at |
body |
字符串 |
资源更新的日期和时间,如果资源尚未更新,此字段将显示为 CCYY-MM-DDThh:mm:ss±hh:mm
例如, |
uuid |
body |
字符串 |
主机聚合的 UUID。 新功能,版本 2.41 |
示例:显示聚合详细信息 (v2.41):JSON 响应
{
"aggregate": {
"availability_zone": "london",
"created_at": "2016-12-27T23:47:30.563527",
"deleted": false,
"deleted_at": null,
"hosts": [],
"id": 1,
"metadata": {
"availability_zone": "london"
},
"name": "name",
"updated_at": null,
"uuid": "fd0a5b12-7e8d-469d-bfd5-64a6823e7407"
}
}
更新聚合的名称和/或可用性区域。如果要更新的聚合中的主机已位于给定的可用性区域中,则请求将以 400 错误失败。
正常响应代码:200
错误响应代码:badRequest(400),unauthorized(401),forbidden(403),itemNotFound(404),conflict(409)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
aggregate_id |
路径 |
整数 |
聚合的 ID。 |
聚合 |
body |
对象 |
主机聚合对象。 |
name (可选) |
body |
字符串 |
主机聚合的名称。 |
availability_zone (可选) |
body |
字符串 |
主机聚合的可用性区域。您应该使用自定义可用性区域而不是 os-availability-zone API 返回的默认值。可用性区域的名称不得包含“:”。 警告 您不应更改或取消设置聚合的可用性区域,因为该聚合中的主机可能包含服务器,这可能会影响这些服务器迁移到另一个主机的能力。 |
示例:更新聚合:JSON 请求
{
"aggregate":
{
"name": "newname",
"availability_zone": "nova2"
}
}
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
聚合 |
body |
对象 |
主机聚合对象。 |
availability_zone |
body |
字符串 |
主机聚合的可用性区域。 |
created_at |
body |
字符串 |
资源被创建的日期和时间。日期和时间戳格式为 ISO 8601。 CCYY-MM-DDThh:mm:ss±hh:mm
例如, |
deleted_at |
body |
字符串 |
资源删除的日期和时间。如果资源尚未删除,此字段将为 CCYY-MM-DDThh:mm:ss±hh:mm
例如, |
deleted |
body |
布尔值 |
一个布尔值,指示此聚合是否已被删除;如果尚未删除,则显示 |
hosts |
body |
数组 |
主机信息的数组。 |
id |
body |
整数 |
主机聚合的 ID。 |
metadata |
body |
对象 |
与聚合关联的元数据键值对。 |
name |
body |
字符串 |
主机聚合的名称。 |
updated_at |
body |
字符串 |
资源更新的日期和时间,如果资源尚未更新,此字段将显示为 CCYY-MM-DDThh:mm:ss±hh:mm
例如, |
uuid |
body |
字符串 |
主机聚合的 UUID。 新功能,版本 2.41 |
示例:更新聚合 (v2.41):JSON 响应
{
"aggregate": {
"availability_zone": "nova2",
"created_at": "2016-12-27T23:47:32.897139",
"deleted": false,
"deleted_at": null,
"hosts": [],
"id": 1,
"metadata": {
"availability_zone": "nova2"
},
"name": "newname",
"updated_at": "2016-12-27T23:47:33.067180",
"uuid": "6f74e3f3-df28-48f3-98e1-ac941b1c5e43"
}
}
删除聚合。
正常响应代码:200
错误响应代码:badRequest(400)、unauthorized(401)、forbidden(403)、itemNotFound(404)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
aggregate_id |
路径 |
整数 |
聚合的 ID。 |
响应¶
成功的 DELETE 操作的响应体为空。
将主机添加到聚合。
在请求体中指定 add_host 操作和主机名。
不允许将带有服务器的主机移至可用性区域之间。此类请求将被拒绝并返回 409 错误。
正常响应代码:200
错误响应代码:badRequest(400),unauthorized(401),forbidden(403),itemNotFound(404),conflict(409)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
aggregate_id |
路径 |
整数 |
聚合的 ID。 |
add_host |
body |
对象 |
用于将主机添加到聚合的 add_host 对象。 |
host |
body |
字符串 |
主机的名称。 |
示例:添加主机:JSON 请求
{
"add_host": {
"host": "21549b2f665945baaa7101926a00143c"
}
}
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
聚合 |
body |
对象 |
主机聚合对象。 |
availability_zone |
body |
字符串 |
主机聚合的可用性区域。 |
created_at |
body |
字符串 |
资源被创建的日期和时间。日期和时间戳格式为 ISO 8601。 CCYY-MM-DDThh:mm:ss±hh:mm
例如, |
deleted_at |
body |
字符串 |
资源删除的日期和时间。如果资源尚未删除,此字段将为 CCYY-MM-DDThh:mm:ss±hh:mm
例如, |
deleted |
body |
布尔值 |
一个布尔值,指示此聚合是否已被删除;如果尚未删除,则显示 |
hosts |
body |
数组 |
主机信息的数组。 |
id |
body |
整数 |
主机聚合的 ID。 |
metadata |
body |
对象 |
与聚合关联的元数据键值对。 |
name |
body |
字符串 |
主机聚合的名称。 |
updated_at |
body |
字符串 |
资源更新的日期和时间,如果资源尚未更新,此字段将显示为 CCYY-MM-DDThh:mm:ss±hh:mm
例如, |
uuid |
body |
字符串 |
主机聚合的 UUID。 新功能,版本 2.41 |
示例:添加主机 (v2.41):JSON 响应
{
"aggregate": {
"availability_zone": "london",
"created_at": "2016-12-27T23:47:30.594805",
"deleted": false,
"deleted_at": null,
"hosts": [
"compute"
],
"id": 1,
"metadata": {
"availability_zone": "london"
},
"name": "name",
"updated_at": null,
"uuid": "d1842372-89c5-4fbd-ad5a-5d2e16c85456"
}
}
将主机从聚合中移除。
在请求体中指定 remove_host 操作和主机名。
不允许将带有服务器的主机移至可用性区域之间。此类请求将被拒绝并返回 409 错误。
正常响应代码:200
错误响应代码:badRequest(400),unauthorized(401),forbidden(403),itemNotFound(404),conflict(409)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
aggregate_id |
路径 |
整数 |
聚合的 ID。 |
remove_host |
body |
对象 |
用于将主机从聚合中移除的 add_host 对象。 |
host |
body |
字符串 |
主机的名称。 |
示例:移除主机:JSON 请求
{
"remove_host": {
"host": "bf1454b3d71145d49fca2101c56c728d"
}
}
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
聚合 |
body |
对象 |
主机聚合对象。 |
availability_zone |
body |
字符串 |
主机聚合的可用性区域。 |
created_at |
body |
字符串 |
资源被创建的日期和时间。日期和时间戳格式为 ISO 8601。 CCYY-MM-DDThh:mm:ss±hh:mm
例如, |
deleted_at |
body |
字符串 |
资源删除的日期和时间。如果资源尚未删除,此字段将为 CCYY-MM-DDThh:mm:ss±hh:mm
例如, |
deleted |
body |
布尔值 |
一个布尔值,指示此聚合是否已被删除;如果尚未删除,则显示 |
hosts |
body |
数组 |
主机信息的数组。 |
id |
body |
整数 |
主机聚合的 ID。 |
metadata |
body |
对象 |
与聚合关联的元数据键值对。 |
name |
body |
字符串 |
主机聚合的名称。 |
updated_at |
body |
字符串 |
资源更新的日期和时间,如果资源尚未更新,此字段将显示为 CCYY-MM-DDThh:mm:ss±hh:mm
例如, |
uuid |
body |
字符串 |
主机聚合的 UUID。 新功能,版本 2.41 |
示例:移除主机 (v2.41):JSON 响应
{
"aggregate": {
"availability_zone": "london",
"created_at": "2016-12-27T23:47:30.594805",
"deleted": false,
"deleted_at": null,
"hosts": [],
"id": 1,
"metadata": {
"availability_zone": "london"
},
"name": "name",
"updated_at": null,
"uuid": "d1842372-89c5-4fbd-ad5a-5d2e16c85456"
}
}
创建或替换聚合的元数据。
在请求体中指定 set_metadata 操作和元数据信息。
正常响应代码:200
错误响应代码:badRequest(400)、unauthorized(401)、forbidden(403)、itemNotFound(404)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
aggregate_id |
路径 |
整数 |
聚合的 ID。 |
set_metadata |
body |
对象 |
用于为主机聚合设置元数据的 set_metadata 对象。 |
metadata |
body |
对象 |
与聚合关联的元数据键值对。每个元数据键值对的最大大小为 255 字节。 新键将被添加到现有的聚合元数据中。对于现有键,如果值为 警告 您不应更改聚合的可用性区域,因为该聚合中的主机可能包含服务器,这可能会影响这些服务器迁移到另一个主机的能力。 |
示例:创建或更新聚合元数据:JSON 请求
{
"set_metadata":
{
"metadata":
{
"key": "value"
}
}
}
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
聚合 |
body |
对象 |
主机聚合对象。 |
availability_zone |
body |
字符串 |
主机聚合的可用性区域。 |
created_at |
body |
字符串 |
资源被创建的日期和时间。日期和时间戳格式为 ISO 8601。 CCYY-MM-DDThh:mm:ss±hh:mm
例如, |
deleted_at |
body |
字符串 |
资源删除的日期和时间。如果资源尚未删除,此字段将为 CCYY-MM-DDThh:mm:ss±hh:mm
例如, |
deleted |
body |
布尔值 |
一个布尔值,指示此聚合是否已被删除;如果尚未删除,则显示 |
hosts |
body |
数组 |
主机信息的数组。 |
id |
body |
整数 |
主机聚合的 ID。 |
metadata |
body |
对象 |
与聚合关联的元数据键值对。 |
name |
body |
字符串 |
主机聚合的名称。 |
updated_at |
body |
字符串 |
资源更新的日期和时间,如果资源尚未更新,此字段将显示为 CCYY-MM-DDThh:mm:ss±hh:mm
例如, |
uuid |
body |
字符串 |
主机聚合的 UUID。 新功能,版本 2.41 |
示例:创建或更新聚合元数据 (v2.41):JSON 响应
{
"aggregate": {
"availability_zone": "london",
"created_at": "2016-12-27T23:59:18.623100",
"deleted": false,
"deleted_at": null,
"hosts": [],
"id": 1,
"metadata": {
"availability_zone": "london",
"key": "value"
},
"name": "name",
"updated_at": "2016-12-27T23:59:18.723348",
"uuid": "26002bdb-62cc-41bd-813a-0ad22db32625"
}
}
请求将一组镜像预缓存到所引用聚合内的计算节点上。
此 API 从微版本 2.81 开始可用。
正常响应代码:202
错误响应代码:badRequest(400)、unauthorized(401)、forbidden(403)、itemNotFound(404)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
aggregate_id |
路径 |
整数 |
聚合的 ID。 |
cache |
body |
数组 |
要缓存的镜像对象列表。 |
cache.id |
body |
字符串 |
镜像的 ID。 |
示例:请求聚合的镜像预缓存 (v2.81):JSON 请求
{
"cache":
[
{"id": "70a599e0-31e7-49b7-b260-868f441e862b"}
]
}
响应¶
响应体始终为空。
辅助卷快照 (os-assisted-volume-snapshots)¶
通过模拟器/虚拟机监控器创建和删除快照。仅支持 qcow2 文件格式。
此 API 仅由 libvirt 计算驱动程序实现。
缺乏存储(如 NFS)的内部快照可以使用模拟器/虚拟机监控器添加快照功能。这用于通过在这些卷上将数据存储为 qcow2 文件来启用 NFS 等后端的卷快照。
此 API 仅由 Cinder 调用,Cinder 使用它来为扩展 remotefs Cinder 驱动程序的驱动程序创建快照。
创建辅助卷快照。
正常响应代码:200
错误响应代码:badRequest(400),unauthorized(401),forbidden(403)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
snapshot |
body |
对象 |
用于创建快照的快照的局部表示。 |
volume_id |
body |
字符串 |
源卷 ID。 |
create_info |
body |
对象 |
快照创建信息。 |
create_info.snapshot_id |
body |
字符串 |
快照的 UUID。 |
create_info.type |
body |
字符串 |
快照类型。有效值为 |
create_info.new_file |
body |
字符串 |
块存储创建的 qcow2 文件名,它将成为 VM 的活动镜像。 |
create_info.id (可选) |
body |
字符串 |
这是一个任意字符串,会返回给用户。 |
示例:创建辅助卷快照:JSON 请求
{
"snapshot": {
"volume_id": "521752a6-acf6-4b2d-bc7a-119f9148cd8c",
"create_info": {
"snapshot_id": "421752a6-acf6-4b2d-bc7a-119f9148cd8c",
"type": "qcow2",
"new_file": "new_file_name",
"id": "421752a6-acf6-4b2d-bc7a-119f9148cd8c"
}
}
}
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
snapshot |
body |
对象 |
用于创建快照的快照的局部表示。 |
id |
body |
字符串 |
它与请求体中发送的任意字符串相同。 注意 此字符串按原样返回给用户,并且不会在 Nova 内部使用。因此,请使用 |
volumeId |
body |
字符串 |
源卷 ID。 |
示例:创建辅助卷快照:JSON 响应
{
"snapshot": {
"id": "421752a6-acf6-4b2d-bc7a-119f9148cd8c",
"volumeId": "521752a6-acf6-4b2d-bc7a-119f9148cd8c"
}
}
删除辅助卷快照。
要发出此请求,请将 delete_info 查询参数添加到 URI,如下所示:
DELETE /os-assisted-volume-snapshots/421752a6-acf6-4b2d-bc7a-119f9148cd8c?delete_info=’{“volume_id”: “521752a6-acf6-4b2d-bc7a-119f9148cd8c”}’
正常响应代码:204
错误响应代码:badRequest(400)、unauthorized(401)、forbidden(403)、itemNotFound(404)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
snapshot_id |
路径 |
字符串 |
快照的 UUID。 |
delete_info |
查询 |
字符串 |
快照删除信息。包括关联卷的 ID。例如: DELETE /os-assisted-volume-snapshots/421752a6-acf6-4b2d-bc7a-119f9148cd8c?delete_info='{"volume_id": "521752a6-acf6-4b2d-bc7a-119f9148cd8c"}'
|
响应¶
成功的 DELETE 查询没有响应正文内容
可用区 (os-availability-zone)¶
列出并获取详细的可用性区域信息。
可用性区域是通过在主机聚合 API 的 create、update 或 create or update 方法中设置 availability_zone 参数来创建或更新的。有关更多详细信息,请参阅 主机聚合。
列出可用性区域信息。
正常响应代码:200
错误响应代码:未授权(401)、禁止(403)
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
availabilityZoneInfo |
body |
数组 |
可用区信息列表。 |
hosts |
body |
none |
它始终为 |
zoneName |
body |
字符串 |
可用区名称。 |
zoneState |
body |
对象 |
可用区的当前状态。 |
available |
body |
布尔值 |
如果可用性区域可用,则返回 true。 |
示例:获取可用性区域信息
{
"availabilityZoneInfo": [
{
"hosts": null,
"zoneName": "nova",
"zoneState": {
"available": true
}
}
]
}
获取详细的可用性区域信息。策略默认设置仅允许具有管理员角色的用户执行此操作。云提供商可以通过 policy.json 文件更改这些权限。
正常响应代码:200
错误响应代码:未授权(401)、禁止(403)
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
availabilityZoneInfo |
body |
数组 |
可用区信息列表。 |
hosts |
body |
对象 |
包含主机信息列表的对象。主机信息由主机和服务对象组成。服务对象返回三个参数,表示服务的状态: |
zoneName |
body |
字符串 |
可用区名称。 |
zoneState |
body |
对象 |
可用区的当前状态。 |
available |
body |
布尔值 |
如果可用性区域可用,则返回 true。 |
示例:获取详细的可用性区域信息
{
"availabilityZoneInfo": [
{
"hosts": {
"conductor": {
"nova-conductor": {
"active": true,
"available": true,
"updated_at": null
}
},
"scheduler": {
"nova-scheduler": {
"active": true,
"available": true,
"updated_at": null
}
}
},
"zoneName": "internal",
"zoneState": {
"available": true
}
},
{
"hosts": {
"compute": {
"nova-compute": {
"active": true,
"available": true,
"updated_at": null
}
}
},
"zoneName": "nova",
"zoneState": {
"available": true
}
}
]
}
虚拟机监控程序 (os-hypervisors)¶
列出所有虚拟机监控程序,显示所有计算节点上所有虚拟机监控程序的摘要统计信息,显示虚拟机监控程序的详细信息,显示虚拟机监控程序的正常运行时间,根据给定的 hypervisor_hostname_pattern 列出虚拟机监控程序上的所有服务器,或按给定的 hypervisor_hostname_pattern 搜索虚拟机监控程序。
列出虚拟机监控程序。
策略默认仅允许具有管理员角色的用户执行此操作。云提供商可以通过 policy.json 文件更改这些权限。
正常响应代码:200
错误响应代码:badRequest(400),unauthorized(401),forbidden(403)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
limit (可选) |
查询 |
整数 |
请求项目页面大小。返回最多限制值数量的项目。使用 新功能,版本 2.33 |
marker (可选) |
查询 |
整数 |
最后一个已查看项目的 ID。使用 新功能,版本 2.33 在版本 2.52 之前可用。 |
marker (可选) |
查询 |
字符串 |
最后一个看到的项的 UUID。使用 新功能,版本 2.53 |
hypervisor_hostname_pattern (可选) |
查询 |
字符串 |
虚拟机监控程序主机名或其一部分。使用主机名匹配此模式的主机监控程序将被选中。 注意
新功能,版本 2.53 |
with_servers (可选) |
查询 |
布尔值 |
在响应输出中包含属于每个虚拟机监控程序的所有服务器。 新功能,版本 2.53 |
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
hypervisors |
body |
数组 |
虚拟机监控程序信息数组。 |
hypervisor_hostname |
body |
字符串 |
Nova virt 驱动程序提供的虚拟机监控程序主机名。对于 Ironic 驱动程序,它是 Ironic 节点 UUID。 |
id |
body |
整数 |
虚拟机监控程序的 ID。 在版本 2.52 之前可用。 |
id |
body |
字符串 |
虚拟机监控程序的 UUID 格式 ID。 新功能,版本 2.53 |
state |
body |
字符串 |
虚拟机监控程序的 estado。为 |
status |
body |
字符串 |
虚拟机监控程序的 status。为 |
hypervisor_links (可选) |
body |
数组 |
指向虚拟机监控程序资源的链接。有关更多信息,请参阅 API 指南 / 链接和引用。 新功能,版本 2.33 |
servers (可选) |
body |
数组 |
服务器对象的列表。在微版本 2.75 之前,此字段仅在非空时返回。从微版本 2.75 开始,除非提供了 新功能,版本 2.53 |
servers.uuid (可选) |
body |
字符串 |
服务器 ID。 新功能,版本 2.53 |
servers.name (可选) |
body |
字符串 |
服务器名称。 新功能,版本 2.53 |
示例:列出虚拟机监控程序 (v2.33):JSON 响应
{
"hypervisors": [
{
"hypervisor_hostname": "host1",
"id": 2,
"state": "up",
"status": "enabled"
}
],
"hypervisors_links": [
{
"href": "http://openstack.example.com/v2.1/6f70656e737461636b20342065766572/os-hypervisors?limit=1&marker=2",
"rel": "next"
}
]
}
示例:列出带服务器的虚拟机监控程序 (v2.53):JSON 响应
{
"hypervisors": [
{
"hypervisor_hostname": "fake-mini",
"id": "b1e43b5f-eec1-44e0-9f10-7b4945c0226d",
"state": "up",
"status": "enabled",
"servers": [
{
"name": "test_server1",
"uuid": "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa"
},
{
"name": "test_server2",
"uuid": "bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb"
}
]
}
]
}
列出虚拟机监控程序的详细信息。
策略默认仅允许具有管理员角色的用户执行此操作。云提供商可以通过 policy.json 文件更改这些权限。
正常响应代码:200
错误响应代码:badRequest(400),unauthorized(401),forbidden(403)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
limit (可选) |
查询 |
整数 |
请求项目页面大小。返回最多限制值数量的项目。使用 新功能,版本 2.33 |
marker (可选) |
查询 |
整数 |
最后一个已查看项目的 ID。使用 新功能,版本 2.33 在版本 2.52 之前可用。 |
marker (可选) |
查询 |
字符串 |
最后一个看到的项的 UUID。使用 新功能,版本 2.53 |
hypervisor_hostname_pattern (可选) |
查询 |
字符串 |
虚拟机监控程序主机名或其一部分。使用主机名匹配此模式的主机监控程序将被选中。 注意
新功能,版本 2.53 |
with_servers (可选) |
查询 |
布尔值 |
在响应输出中包含属于每个虚拟机监控程序的所有服务器。 新功能,版本 2.53 |
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
hypervisors |
body |
数组 |
虚拟机监控程序信息数组。 |
cpu_info |
body |
对象 |
包含 CPU 信息(如 注意 自 2.28 版本起, 在版本 2.87 之前可用。 |
current_workload |
body |
整数 |
current_workload 是虚拟机监控程序负责的任务数量。这将等于或大于活动 VM 的数量(当 VM 正在删除且虚拟机监控程序仍在清理时,可能会大于)。 在版本 2.87 之前可用。 |
status |
body |
字符串 |
虚拟机监控程序的 status。为 |
state |
body |
字符串 |
虚拟机监控程序的 estado。为 |
disk_available_least |
body |
整数 |
此虚拟机监控程序上实际可用的磁盘空间(以 GiB 为单位)。如果配置了用于超额分配的分配比例,则此值可能为负数。这是故意的,因为它提供了有关磁盘超额分配量的见解。 在版本 2.87 之前可用。 |
host_ip |
body |
字符串 |
虚拟机监控程序主机的 IP 地址。 |
free_disk_gb |
body |
整数 |
此虚拟机监控程序上剩余的可用磁盘空间(以 GiB 为单位)。这不考虑用于超额分配的分配比例,因此此值可能为负数。 在版本 2.87 之前可用。 |
free_ram_mb |
body |
整数 |
此虚拟机监控程序上的可用 RAM(以 MiB 为单位)。这不考虑用于超额分配的分配比例,因此此值可能为负数。 在版本 2.87 之前可用。 |
hypervisor_hostname |
body |
字符串 |
Nova virt 驱动程序提供的虚拟机监控程序主机名。对于 Ironic 驱动程序,它是 Ironic 节点 UUID。 |
hypervisor_type |
body |
字符串 |
虚拟机监控程序的类型。 |
hypervisor_version |
body |
整数 |
虚拟机监控程序的版本。 |
id |
body |
整数 |
虚拟机监控程序的 ID。 在版本 2.52 之前可用。 |
id |
body |
字符串 |
虚拟机监控程序的 UUID 格式 ID。 新功能,版本 2.53 |
local_gb |
body |
整数 |
此虚拟机监控程序上的磁盘(以 GiB 为单位)。这不考虑用于超额分配的分配比例,因此此值与已用计数可能存在差异。 在版本 2.87 之前可用。 |
local_gb_used |
body |
整数 |
此虚拟机监控程序上已使用的磁盘空间(以 GiB 为单位)。 在版本 2.87 之前可用。 |
memory_mb |
body |
整数 |
此虚拟机监控程序的内存(以 MiB 为单位)。这不考虑用于超额分配的分配比例,因此此值与已用计数可能存在差异。 在版本 2.87 之前可用。 |
memory_mb_used |
body |
整数 |
此虚拟机监控程序上已使用的内存(以 MiB 为单位)。 在版本 2.87 之前可用。 |
running_vms |
body |
整数 |
此虚拟机监控程序上正在运行的 VM 数量。 在版本 2.87 之前可用。 |
servers (可选) |
body |
数组 |
服务器对象的列表。在微版本 2.75 之前,此字段仅在非空时返回。从微版本 2.75 开始,除非提供了 新功能,版本 2.53 |
servers.uuid (可选) |
body |
字符串 |
服务器 ID。 新功能,版本 2.53 |
servers.name (可选) |
body |
字符串 |
服务器名称。 新功能,版本 2.53 |
服务 |
body |
对象 |
虚拟机监控程序服务对象。 |
service.host |
body |
字符串 |
主机的名称。 |
service.id |
body |
整数 |
服务的 ID。 在版本 2.52 之前可用。 |
service.id |
body |
字符串 |
服务的 UUID 格式 ID。 新功能,版本 2.53 |
service.disabled_reason |
body |
字符串 |
服务的禁用原因,如果服务已启用或禁用且未提供原因,则为 |
uptime |
body |
字符串 |
此 API 的响应格式取决于所使用的虚拟机监控程序驱动程序。libvirt 驱动程序直接返回 uptime 命令的输出,z/VM 驱动程序返回 ILP 时间。所有其他驱动程序始终返回 新功能,版本 2.88 |
vcpus |
body |
整数 |
此虚拟机监控程序中的 vCPU 数量。这不考虑用于超额分配的分配比例,因此此值与已用计数可能存在差异。 在版本 2.87 之前可用。 |
vcpus_used |
body |
整数 |
此虚拟机监控程序上已使用的 vCPU 数量。 在版本 2.87 之前可用。 |
hypervisor_links (可选) |
body |
数组 |
指向虚拟机监控程序资源的链接。有关更多信息,请参阅 API 指南 / 链接和引用。 新功能,版本 2.33 |
示例:列出虚拟机监控程序的详细信息 (v2.33):JSON 响应
{
"hypervisors": [
{
"cpu_info": {
"arch": "x86_64",
"model": "Nehalem",
"vendor": "Intel",
"features": [
"pge",
"clflush"
],
"topology": {
"cores": 1,
"threads": 1,
"sockets": 4
}
},
"current_workload": 0,
"status": "enabled",
"state": "up",
"disk_available_least": 0,
"host_ip": "1.1.1.1",
"free_disk_gb": 1028,
"free_ram_mb": 7680,
"hypervisor_hostname": "host1",
"hypervisor_type": "fake",
"hypervisor_version": 1000,
"id": 2,
"local_gb": 1028,
"local_gb_used": 0,
"memory_mb": 8192,
"memory_mb_used": 512,
"running_vms": 0,
"service": {
"host": "host1",
"id": 6,
"disabled_reason": null
},
"vcpus": 2,
"vcpus_used": 0
}
],
"hypervisors_links": [
{
"href": "http://openstack.example.com/v2.1/6f70656e737461636b20342065766572/os-hypervisors/detail?limit=1&marker=2",
"rel": "next"
}
]
}
示例:列出带服务器的虚拟机监控程序的详细信息 (v2.53):JSON 响应
{
"hypervisors": [
{
"cpu_info": {
"arch": "x86_64",
"model": "Nehalem",
"vendor": "Intel",
"features": [
"pge",
"clflush"
],
"topology": {
"cores": 1,
"threads": 1,
"sockets": 4
}
},
"current_workload": 0,
"status": "enabled",
"state": "up",
"disk_available_least": 0,
"host_ip": "1.1.1.1",
"free_disk_gb": 1028,
"free_ram_mb": 7680,
"hypervisor_hostname": "host2",
"hypervisor_type": "fake",
"hypervisor_version": 1000,
"id": "1bb62a04-c576-402c-8147-9e89757a09e3",
"local_gb": 1028,
"local_gb_used": 0,
"memory_mb": 8192,
"memory_mb_used": 512,
"running_vms": 0,
"service": {
"host": "host1",
"id": "62f62f6e-a713-4cbe-87d3-3ecf8a1e0f8d",
"disabled_reason": null
},
"vcpus": 2,
"vcpus_used": 0
}
],
"hypervisors_links": [
{
"href": "http://openstack.example.com/v2.1/6f70656e737461636b20342065766572/os-hypervisors/detail?limit=1&marker=1bb62a04-c576-402c-8147-9e89757a09e3",
"rel": "next"
}
]
}
示例:列出虚拟机监控程序的详细信息 (v2.88):JSON 响应
{
"hypervisors": [
{
"host_ip": "192.168.1.135",
"hypervisor_hostname": "host2",
"hypervisor_type": "fake",
"hypervisor_version": 1000,
"id": "f6d28711-9c10-470e-8b31-c03f498b0032",
"service": {
"disabled_reason": null,
"host": "host2",
"id": "21bbb5fb-ec98-48b3-89cf-c94402c55611"
},
"state": "up",
"status": "enabled",
"uptime": null
}
],
"hypervisors_links": [
{
"href": "http://openstack.example.com/v2.1/6f70656e737461636b20342065766572/os-hypervisors/detail?limit=1&marker=f6d28711-9c10-470e-8b31-c03f498b0032",
"rel": "next"
}
]
}
显示所有计算节点上所有已启用虚拟机监控程序的摘要统计信息。
警告
此 API 已弃用,从微版本 2.88 开始将返回 HTTP 404 错误。请使用 placement API 来获取有关跨虚拟机监控程序的资源使用情况的信息。
策略默认仅允许具有管理员角色的用户执行此操作。云提供商可以通过 policy.json 文件更改这些权限。
注意
如前所述,响应中代表总计的某些参数不考虑分配比例。这可能导致总计与使用量之间存在差异。使用 placement API 可以更准确地表示状态。
正常响应代码:200
错误响应代码:unauthorized(401)、forbidden(403)、itemNotFound(404)
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
hypervisor_statistics |
body |
对象 |
虚拟机监控程序统计摘要对象。 |
count |
body |
整数 |
虚拟机监控程序的数量。 |
current_workload |
body |
整数 |
current_workload 是虚拟机监控程序负责的任务数量。这将等于或大于活动 VM 的数量(当 VM 正在删除且虚拟机监控程序仍在清理时,可能会大于)。 |
disk_available_least |
body |
整数 |
所有虚拟机监控程序上实际可用的磁盘空间(以 GiB 为单位)。如果配置了用于超额分配的分配比例,则此值可能为负数。这是故意的,因为它提供了有关磁盘超额分配量的见解。 |
free_disk_gb |
body |
整数 |
所有虚拟机监控程序上剩余的可用磁盘空间(以 GiB 为单位)。这不考虑用于超额分配的分配比例,因此此值可能为负数。 |
free_ram_mb |
body |
整数 |
所有虚拟机监控程序上的可用 RAM(以 MiB 为单位)。这不考虑用于超额分配的分配比例,因此此值可能为负数。 |
local_gb |
body |
整数 |
所有虚拟机监控程序上的磁盘(以 GiB 为单位)。这不考虑用于超额分配的分配比例,因此此值与已用计数可能存在差异。 |
local_gb_used |
body |
整数 |
所有虚拟机监控程序上已使用的磁盘空间(以 GiB 为单位)。 |
memory_mb |
body |
整数 |
所有虚拟机监控程序的内存(以 MiB 为单位)。这不考虑用于超额分配的分配比例,因此此值与已用计数可能存在差异。 |
memory_mb_used |
body |
整数 |
所有虚拟机监控程序上已使用的内存(以 MiB 为单位)。 |
running_vms |
body |
整数 |
所有虚拟机监控程序上正在运行的 VM 的总数。 |
vcpus |
body |
整数 |
所有虚拟机监控程序中的 vCPU 数量。这不考虑用于超额分配的分配比例,因此此值与已用计数可能存在差异。 |
vcpus_used |
body |
整数 |
所有虚拟机监控程序上已使用的 vCPU 数量。 |
示例:显示虚拟机监控程序统计信息:JSON 响应
{
"hypervisor_statistics": {
"count": 1,
"current_workload": 0,
"disk_available_least": 0,
"free_disk_gb": 1028,
"free_ram_mb": 7680,
"local_gb": 1028,
"local_gb_used": 0,
"memory_mb": 8192,
"memory_mb_used": 512,
"running_vms": 0,
"vcpus": 2,
"vcpus_used": 0
}
}
显示给定虚拟机监控程序的详细信息。
策略默认仅允许具有管理员角色的用户执行此操作。云提供商可以通过 policy.json 文件更改这些权限。
注意
如前所述,响应中代表总计的某些参数不考虑分配比例。这可能导致总计与使用量之间存在差异。使用 placement API 可以更准确地表示状态。
正常响应代码:200
错误响应代码:badRequest(400)、unauthorized(401)、forbidden(403)、itemNotFound(404)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
hypervisor_id |
路径 |
整数 |
虚拟机监控程序的 ID。 在版本 2.52 之前可用。 |
hypervisor_id |
路径 |
字符串 |
虚拟机监控程序的 UUID 格式 ID。 新功能,版本 2.53 |
with_servers (可选) |
查询 |
布尔值 |
在响应输出中包含属于每个虚拟机监控程序的所有服务器。 新功能,版本 2.53 |
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
管理程序 |
body |
对象 |
虚拟机监控程序对象。 |
cpu_info |
body |
对象 |
包含 CPU 信息(如 注意 自 2.28 版本起, 在版本 2.87 之前可用。 |
state |
body |
字符串 |
虚拟机监控程序的 estado。为 |
status |
body |
字符串 |
虚拟机监控程序的 status。为 |
current_workload |
body |
整数 |
current_workload 是虚拟机监控程序负责的任务数量。这将等于或大于活动 VM 的数量(当 VM 正在删除且虚拟机监控程序仍在清理时,可能会大于)。 在版本 2.87 之前可用。 |
disk_available_least |
body |
整数 |
此虚拟机监控程序上实际可用的磁盘空间(以 GiB 为单位)。如果配置了用于超额分配的分配比例,则此值可能为负数。这是故意的,因为它提供了有关磁盘超额分配量的见解。 在版本 2.87 之前可用。 |
host_ip |
body |
字符串 |
虚拟机监控程序主机的 IP 地址。 |
free_disk_gb |
body |
整数 |
此虚拟机监控程序上剩余的可用磁盘空间(以 GiB 为单位)。这不考虑用于超额分配的分配比例,因此此值可能为负数。 在版本 2.87 之前可用。 |
free_ram_mb |
body |
整数 |
此虚拟机监控程序上的可用 RAM(以 MiB 为单位)。这不考虑用于超额分配的分配比例,因此此值可能为负数。 在版本 2.87 之前可用。 |
hypervisor_hostname |
body |
字符串 |
Nova virt 驱动程序提供的虚拟机监控程序主机名。对于 Ironic 驱动程序,它是 Ironic 节点 UUID。 |
hypervisor_type |
body |
字符串 |
虚拟机监控程序的类型。 |
hypervisor_version |
body |
整数 |
虚拟机监控程序的版本。 |
id |
body |
整数 |
虚拟机监控程序的 ID。 在版本 2.52 之前可用。 |
id |
body |
字符串 |
虚拟机监控程序的 UUID 格式 ID。 新功能,版本 2.53 |
local_gb |
body |
整数 |
此虚拟机监控程序上的磁盘(以 GiB 为单位)。这不考虑用于超额分配的分配比例,因此此值与已用计数可能存在差异。 在版本 2.87 之前可用。 |
local_gb_used |
body |
整数 |
此虚拟机监控程序上已使用的磁盘空间(以 GiB 为单位)。 在版本 2.87 之前可用。 |
memory_mb |
body |
整数 |
此虚拟机监控程序的内存(以 MiB 为单位)。这不考虑用于超额分配的分配比例,因此此值与已用计数可能存在差异。 在版本 2.87 之前可用。 |
memory_mb_used |
body |
整数 |
此虚拟机监控程序上已使用的内存(以 MiB 为单位)。 在版本 2.87 之前可用。 |
running_vms |
body |
整数 |
此虚拟机监控程序上正在运行的 VM 数量。 在版本 2.87 之前可用。 |
servers (可选) |
body |
数组 |
服务器对象的列表。在微版本 2.75 之前,此字段仅在非空时返回。从微版本 2.75 开始,除非提供了 新功能,版本 2.53 |
servers.uuid (可选) |
body |
字符串 |
服务器 ID。 新功能,版本 2.53 |
servers.name (可选) |
body |
字符串 |
服务器名称。 新功能,版本 2.53 |
服务 |
body |
对象 |
虚拟机监控程序服务对象。 |
service.host |
body |
字符串 |
主机的名称。 |
service.id |
body |
整数 |
服务的 ID。 在版本 2.52 之前可用。 |
service.id |
body |
字符串 |
服务的 UUID 格式 ID。 新功能,版本 2.53 |
service.disabled_reason |
body |
字符串 |
服务的禁用原因,如果服务已启用或禁用且未提供原因,则为 |
uptime |
body |
字符串 |
此 API 的响应格式取决于所使用的虚拟机监控程序驱动程序。libvirt 驱动程序直接返回 uptime 命令的输出,z/VM 驱动程序返回 ILP 时间。所有其他驱动程序始终返回 新功能,版本 2.88 |
vcpus |
body |
整数 |
此虚拟机监控程序中的 vCPU 数量。这不考虑用于超额分配的分配比例,因此此值与已用计数可能存在差异。 在版本 2.87 之前可用。 |
vcpus_used |
body |
整数 |
此虚拟机监控程序上已使用的 vCPU 数量。 在版本 2.87 之前可用。 |
示例:显示虚拟机监控程序详细信息 (v2.28):JSON 响应
{
"hypervisor": {
"cpu_info": {
"arch": "x86_64",
"model": "Nehalem",
"vendor": "Intel",
"features": [
"pge",
"clflush"
],
"topology": {
"cores": 1,
"threads": 1,
"sockets": 4
}
},
"state": "up",
"status": "enabled",
"current_workload": 0,
"disk_available_least": 0,
"host_ip": "1.1.1.1",
"free_disk_gb": 1028,
"free_ram_mb": 7680,
"hypervisor_hostname": "fake-mini",
"hypervisor_type": "fake",
"hypervisor_version": 1000,
"id": 1,
"local_gb": 1028,
"local_gb_used": 0,
"memory_mb": 8192,
"memory_mb_used": 512,
"running_vms": 0,
"service": {
"host": "043b3cacf6f34c90a7245151fc8ebcda",
"id": 2,
"disabled_reason": null
},
"vcpus": 2,
"vcpus_used": 0
}
}
示例:显示带服务器的虚拟机监控程序详细信息 (v2.53):JSON 响应
{
"hypervisor": {
"cpu_info": {
"arch": "x86_64",
"model": "Nehalem",
"vendor": "Intel",
"features": [
"pge",
"clflush"
],
"topology": {
"cores": 1,
"threads": 1,
"sockets": 4
}
},
"state": "up",
"status": "enabled",
"servers": [
{
"name": "test_server1",
"uuid": "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa"
},
{
"name": "test_server2",
"uuid": "bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb"
}
],
"current_workload": 0,
"disk_available_least": 0,
"host_ip": "1.1.1.1",
"free_disk_gb": 1028,
"free_ram_mb": 7680,
"hypervisor_hostname": "fake-mini",
"hypervisor_type": "fake",
"hypervisor_version": 1000,
"id": "b1e43b5f-eec1-44e0-9f10-7b4945c0226d",
"local_gb": 1028,
"local_gb_used": 0,
"memory_mb": 8192,
"memory_mb_used": 512,
"running_vms": 0,
"service": {
"host": "043b3cacf6f34c90a7245151fc8ebcda",
"id": "5d343e1d-938e-4284-b98b-6a2b5406ba76",
"disabled_reason": null
},
"vcpus": 2,
"vcpus_used": 0
}
}
示例:显示虚拟机监控程序的详细信息 (v2.88):JSON 响应
{
"hypervisor": {
"host_ip": "192.168.1.135",
"hypervisor_hostname": "fake-mini",
"hypervisor_type": "fake",
"hypervisor_version": 1000,
"id": "a68a56ab-9c42-47c0-9309-879e4a6dbe86",
"servers": [
{
"name": "test_server1",
"uuid": "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa"
},
{
"name": "test_server2",
"uuid": "bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb"
}
],
"service": {
"disabled_reason": null,
"host": "compute",
"id": "8495059a-a079-4ab4-ad6f-cf45b81c877d"
},
"state": "up",
"status": "enabled",
"uptime": null
}
}
显示给定虚拟机监控程序的正常运行时间。
警告
此 API 已弃用,从微版本 2.88 开始将返回 HTTP 404 错误。使用 2.88 及更高版本的微版本调用 Show Hypervisor Details API 来获取此信息。
策略默认仅允许具有管理员角色的用户执行此操作。云提供商可以通过 policy.json 文件更改这些权限。
正常响应代码:200
错误响应代码:badRequest(400),unauthorized(401),forbidden(403),itemNotFound(404),NotImplemented(501)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
hypervisor_id |
路径 |
整数 |
虚拟机监控程序的 ID。 在版本 2.52 之前可用。 |
hypervisor_id |
路径 |
字符串 |
虚拟机监控程序的 UUID 格式 ID。 新功能,版本 2.53 |
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
管理程序 |
body |
对象 |
虚拟机监控程序对象。 |
hypervisor_hostname |
body |
字符串 |
Nova virt 驱动程序提供的虚拟机监控程序主机名。对于 Ironic 驱动程序,它是 Ironic 节点 UUID。 |
id |
body |
整数 |
虚拟机监控程序的 ID。 在版本 2.52 之前可用。 |
id |
body |
字符串 |
虚拟机监控程序的 UUID 格式 ID。 新功能,版本 2.53 |
state |
body |
字符串 |
虚拟机监控程序的 estado。为 |
status |
body |
字符串 |
虚拟机监控程序的 status。为 |
uptime |
body |
字符串 |
虚拟机监控程序的总正常运行时间和平均负载信息。 |
示例:显示虚拟机监控程序正常运行时间:JSON 响应
{
"hypervisor": {
"hypervisor_hostname": "fake-mini",
"id": 1,
"state": "up",
"status": "enabled",
"uptime": " 08:32:11 up 93 days, 18:25, 12 users, load average: 0.20, 0.12, 0.14"
}
}
示例:显示虚拟机监控程序正常运行时间 (v2.53):JSON 响应
{
"hypervisor": {
"hypervisor_hostname": "fake-mini",
"id": "b1e43b5f-eec1-44e0-9f10-7b4945c0226d",
"state": "up",
"status": "enabled",
"uptime": " 08:32:11 up 93 days, 18:25, 12 users, load average: 0.20, 0.12, 0.14"
}
}
按给定的虚拟机监控程序主机名或其一部分搜索虚拟机监控程序。
警告
此 API 自微版本 2.53 起已弃用。请使用微版本 2.53 及更高版本,并带有 hypervisor_hostname_pattern 查询参数的 List Hypervisors API。
策略默认仅允许具有管理员角色的用户执行此操作。云提供商可以通过 policy.json 文件更改这些权限。
正常响应代码:200
错误响应代码:unauthorized(401)、forbidden(403)、itemNotFound(404)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
hypervisor_hostname_pattern |
路径 |
字符串 |
虚拟机监控程序主机名或其一部分。使用主机名匹配此模式的主机监控程序将被选中。 |
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
hypervisors |
body |
数组 |
虚拟机监控程序信息数组。 |
hypervisor_hostname |
body |
字符串 |
Nova virt 驱动程序提供的虚拟机监控程序主机名。对于 Ironic 驱动程序,它是 Ironic 节点 UUID。 |
id |
body |
整数 |
虚拟机监控程序的 ID。 |
state |
body |
字符串 |
虚拟机监控程序的 estado。为 |
status |
body |
字符串 |
虚拟机监控程序的 status。为 |
示例:搜索虚拟机监控程序:JSON 响应
{
"hypervisors": [
{
"hypervisor_hostname": "fake-mini",
"id": 1,
"state": "up",
"status": "enabled"
}
]
}
列出所有属于主机名与给定虚拟机监控程序主机名或其一部分匹配的虚拟机监控程序的所有服务器。
警告
此 API 自微版本 2.53 起已弃用。请使用微版本 2.53 及更高版本,并带有 hypervisor_hostname_pattern 和 with_servers 查询参数的 List Hypervisors API。
策略默认仅允许具有管理员角色的用户执行此操作。云提供商可以通过 policy.json 文件更改这些权限。
正常响应代码:200
错误响应代码:unauthorized(401)、forbidden(403)、itemNotFound(404)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
hypervisor_hostname_pattern |
路径 |
字符串 |
虚拟机监控程序主机名或其一部分。使用主机名匹配此模式的主机监控程序将被选中。 |
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
hypervisors |
body |
数组 |
虚拟机监控程序信息数组。 |
hypervisor_hostname |
body |
字符串 |
Nova virt 驱动程序提供的虚拟机监控程序主机名。对于 Ironic 驱动程序,它是 Ironic 节点 UUID。 |
id |
body |
整数 |
虚拟机监控程序的 ID。 |
state |
body |
字符串 |
虚拟机监控程序的 estado。为 |
status |
body |
字符串 |
虚拟机监控程序的 status。为 |
servers |
body |
数组 |
服务器对象的列表。 |
servers.uuid |
body |
字符串 |
API 将事件分派到的服务器实例的 UUID。您必须将此实例分配给一个主机。否则,此调用不会将事件分派给实例。 |
servers.name |
body |
字符串 |
服务器名称。 |
示例:列出虚拟机监控程序服务器:JSON 响应
{
"hypervisors": [
{
"hypervisor_hostname": "fake-mini",
"id": 1,
"state": "up",
"status": "enabled",
"servers": [
{
"name": "test_server1",
"uuid": "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa"
},
{
"name": "test_server2",
"uuid": "bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb"
}
]
}
]
}
服务器使用情况审计日志 (os-instance-usage-audit-log)¶
审计云的服务器使用情况。此 API 取决于在所有需要使用情况审计的计算主机上都设置了 instance_usage_audit 配置选项。
策略默认设置仅允许具有管理员角色的用户执行所有 os-instance-usage-audit-log 相关操作。云提供商可以通过 policy.json 文件更改这些权限。
列出所有计算主机上所有服务器的使用情况审计,这些主机配置了使用情况审计。
正常响应代码:200
错误响应代码:未授权(401)、禁止(403)
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
instance_usage_audit_logs |
body |
对象 |
实例使用情况审计日志信息的对象。 |
hosts_not_run |
body |
数组 |
已运行实例审计任务的主机列表。 |
log |
body |
对象 |
实例使用情况审计日志的对象。 |
errors |
body |
整数 |
错误数量。 |
instances |
body |
整数 |
实例数量。 |
message |
body |
字符串 |
实例使用情况审计任务的日志消息。 |
state |
body |
字符串 |
实例使用情况审计任务的状态。为 |
num_hosts |
body |
整数 |
主机数量。 |
num_hosts_done |
body |
整数 |
已完成实例审计任务的主机数量。 |
num_hosts_not_run |
body |
整数 |
未运行实例审计任务的主机数量。 |
num_hosts_running |
body |
整数 |
正在运行实例审计任务的主机数量。 |
overall_status |
body |
字符串 |
实例审计任务的总体状态。 M of N hosts done. K errors.
值 ALL hosts done. K errors.
|
period_beginning |
body |
字符串 |
实例使用情况审计周期的开始时间。例如: |
period_ending |
body |
字符串 |
实例使用情况审计周期的结束时间。例如: |
total_errors |
body |
整数 |
实例审计任务错误的的总数。 |
total_instances |
body |
整数 |
周期内的 VM 实例总数。 |
示例:列出所有服务器的使用情况审计
{
"instance_usage_audit_logs": {
"hosts_not_run": [
"samplehost3"
],
"log": {
"samplehost0": {
"errors": 1,
"instances": 1,
"message": "Instance usage audit ran for host samplehost0, 1 instances in 0.01 seconds.",
"state": "DONE"
},
"samplehost1": {
"errors": 1,
"instances": 2,
"message": "Instance usage audit ran for host samplehost1, 2 instances in 0.01 seconds.",
"state": "DONE"
},
"samplehost2": {
"errors": 1,
"instances": 3,
"message": "Instance usage audit ran for host samplehost2, 3 instances in 0.01 seconds.",
"state": "DONE"
}
},
"num_hosts": 4,
"num_hosts_done": 3,
"num_hosts_not_run": 1,
"num_hosts_running": 0,
"overall_status": "3 of 4 hosts done. 3 errors.",
"period_beginning": "2012-06-01 00:00:00",
"period_ending": "2012-07-01 00:00:00",
"total_errors": 3,
"total_instances": 6
}
}
列出在指定时间之前发生的用法审计。
正常响应代码:200
错误响应代码:badRequest(400),unauthorized(401),forbidden(403)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
before_timestamp |
路径 |
字符串 |
按之前列出用法审计的日期和时间过滤响应。日期和时间戳格式如下: CCYY-MM-DD hh:mm:ss.NNNNNN
例如: |
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
instance_usage_audit_log |
body |
对象 |
实例使用情况审计日志信息的对象。 |
hosts_not_run |
body |
数组 |
已运行实例审计任务的主机列表。 |
log |
body |
对象 |
实例使用情况审计日志的对象。 |
errors |
body |
整数 |
错误数量。 |
instances |
body |
整数 |
实例数量。 |
message |
body |
字符串 |
实例使用情况审计任务的日志消息。 |
state |
body |
字符串 |
实例使用情况审计任务的状态。为 |
num_hosts |
body |
整数 |
主机数量。 |
num_hosts_done |
body |
整数 |
已完成实例审计任务的主机数量。 |
num_hosts_not_run |
body |
整数 |
未运行实例审计任务的主机数量。 |
num_hosts_running |
body |
整数 |
正在运行实例审计任务的主机数量。 |
overall_status |
body |
字符串 |
实例审计任务的总体状态。 M of N hosts done. K errors.
值 ALL hosts done. K errors.
|
period_beginning |
body |
字符串 |
实例使用情况审计周期的开始时间。例如: |
period_ending |
body |
字符串 |
实例使用情况审计周期的结束时间。例如: |
total_errors |
body |
整数 |
实例审计任务错误的的总数。 |
total_instances |
body |
整数 |
周期内的 VM 实例总数。 |
示例:列出指定时间之前的用法审计
{
"instance_usage_audit_log": {
"hosts_not_run": [
"samplehost3"
],
"log": {
"samplehost0": {
"errors": 1,
"instances": 1,
"message": "Instance usage audit ran for host samplehost0, 1 instances in 0.01 seconds.",
"state": "DONE"
},
"samplehost1": {
"errors": 1,
"instances": 2,
"message": "Instance usage audit ran for host samplehost1, 2 instances in 0.01 seconds.",
"state": "DONE"
},
"samplehost2": {
"errors": 1,
"instances": 3,
"message": "Instance usage audit ran for host samplehost2, 3 instances in 0.01 seconds.",
"state": "DONE"
}
},
"num_hosts": 4,
"num_hosts_done": 3,
"num_hosts_not_run": 1,
"num_hosts_running": 0,
"overall_status": "3 of 4 hosts done. 3 errors.",
"period_beginning": "2012-06-01 00:00:00",
"period_ending": "2012-07-01 00:00:00",
"total_errors": 3,
"total_instances": 6
}
}
迁移 (os-migrations)¶
显示迁移数据。
列出迁移。
策略默认仅允许具有管理员角色的用户执行此操作。云提供商可以通过 policy.json 文件更改这些权限。
从微版本 2.59 开始,响应按 created_at 和 id 降序排序。
正常响应代码:200
错误响应代码:badRequest(400),unauthorized(401),forbidden(403)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
hidden (可选) |
查询 |
整数 |
迁移的“隐藏”设置用于过滤。如果值为 1,则设置“隐藏”标志。如果值为 0,则不设置“隐藏”标志。但是,“隐藏”设置的迁移始终为 0,因此此参数对过滤迁移无用。 |
host (可选) |
查询 |
字符串 |
迁移的源/目标计算节点用于过滤。 |
instance_uuid (可选) |
查询 |
字符串 |
迁移操作所基于的实例的 UUID 用于过滤。 |
migration_type (可选) |
查询 |
字符串 |
迁移类型用于过滤。有效值为:
|
source_compute (可选) |
查询 |
字符串 |
源计算节点用于过滤。 |
status (可选) |
查询 |
字符串 |
迁移的状态用于过滤。 |
limit (可选) |
查询 |
整数 |
请求分页的项目。返回的项目数最多为 limit 值。使用 新功能,版本 2.59 |
marker (可选) |
查询 |
字符串 |
最后一个看到的迁移的 UUID。使用 新功能,版本 2.59 |
changes-since(可选) |
查询 |
字符串 |
按迁移最后更改的日期和时间戳过滤响应。返回在指定日期和时间戳之后更改的记录。 日期和时间戳格式为 ISO 8601 CCYY-MM-DDThh:mm:ss±hh:mm
如果包含 新功能,版本 2.59 |
changes-before(可选) |
查询 |
字符串 |
按迁移最后更改的日期和时间戳过滤响应。返回在指定日期和时间戳之前或等于指定日期和时间戳更改的迁移。 日期和时间戳格式为 ISO 8601 CCYY-MM-DDThh:mm:ss±hh:mm
如果包含 版本 2.66 新增 |
user_id (可选) |
查询 |
字符串 |
按给定的用户 ID 过滤迁移。 新功能,版本 2.80 |
project_id (可选) |
查询 |
字符串 |
按给定的项目 ID 过滤迁移。 新功能,版本 2.80 |
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
migrations |
body |
数组 |
服务器迁移对象的列表。 |
created_at |
body |
字符串 |
资源被创建的日期和时间。日期和时间戳格式为 ISO 8601。 CCYY-MM-DDThh:mm:ss±hh:mm
例如, |
dest_compute |
body |
字符串 |
迁移的目标计算节点。 |
dest_host |
body |
字符串 |
迁移的目标主机。 |
dest_node |
body |
字符串 |
迁移的目标节点。 |
id |
body |
整数 |
服务器迁移的 ID。 |
instance_uuid |
body |
字符串 |
服务器的 UUID。 |
new_instance_type_id |
body |
整数 |
在 注意 这是一个内部 ID,不会在任何其他 API 中公开。特别是,这不是在创建配置期间指定的或自动生成的 ID,也不是通过 |
old_instance_type_id |
body |
整数 |
启动迁移时服务器的配置 ID。 注意 这是一个内部 ID,不会在任何其他 API 中公开。特别是,这不是在创建配置期间指定的或自动生成的 ID,也不是通过 |
source_compute |
body |
字符串 |
迁移的源计算节点。 |
source_node |
body |
字符串 |
迁移的源节点。 |
status |
body |
字符串 |
迁移的当前状态。 |
updated_at |
body |
字符串 |
资源被更新的日期和时间。日期和时间戳格式为 ISO 8601。 CCYY-MM-DDThh:mm:ss±hh:mm
例如, |
migration_type |
body |
字符串 |
服务器迁移的类型。这是 新功能,版本 2.23 |
links (可选) |
body |
数组 |
迁移的链接。如果迁移类型为 新功能,版本 2.23 |
uuid |
body |
字符串 |
迁移的 UUID。 新功能,版本 2.59 |
migrations_links (可选) |
body |
数组 |
与迁移相关的链接。当分页且有更多数据可用时,将返回此参数。有关更多信息,请参阅 分页集合。 新功能,版本 2.59 |
user_id |
body |
字符串 |
发起服务器迁移的用户 ID。对于旧的迁移记录,该值可能为 新功能,版本 2.80 |
project_id |
body |
字符串 |
发起服务器迁移的项目 ID。对于旧的迁移记录,该值可能为 新功能,版本 2.80 |
示例:列出迁移:JSON 响应
{
"migrations": [
{
"created_at": "2012-10-29T13:42:02.000000",
"dest_compute": "compute2",
"dest_host": "1.2.3.4",
"dest_node": "node2",
"id": 1234,
"instance_uuid": "8600d31b-d1a1-4632-b2ff-45c2be1a70ff",
"new_instance_type_id": 2,
"old_instance_type_id": 1,
"source_compute": "compute1",
"source_node": "node1",
"status": "done",
"updated_at": "2012-10-29T13:42:02.000000"
},
{
"created_at": "2013-10-22T13:42:02.000000",
"dest_compute": "compute20",
"dest_host": "5.6.7.8",
"dest_node": "node20",
"id": 5678,
"instance_uuid": "9128d044-7b61-403e-b766-7547076ff6c1",
"new_instance_type_id": 6,
"old_instance_type_id": 5,
"source_compute": "compute10",
"source_node": "node10",
"status": "done",
"updated_at": "2013-10-22T13:42:02.000000"
}
]
}
示例:列出迁移 (v2.80)
{
"migrations": [
{
"created_at": "2016-06-23T14:42:02.000000",
"dest_compute": "compute20",
"dest_host": "5.6.7.8",
"dest_node": "node20",
"id": 4,
"instance_uuid": "9128d044-7b61-403e-b766-7547076ff6c1",
"new_instance_type_id": 6,
"old_instance_type_id": 5,
"source_compute": "compute10",
"source_node": "node10",
"status": "migrating",
"migration_type": "resize",
"updated_at": "2016-06-23T14:42:02.000000",
"uuid": "42341d4b-346a-40d0-83c6-5f4f6892b650",
"user_id": "78348f0e-97ee-4d70-ad34-189692673ea2",
"project_id": "9842f0f7-1229-4355-afe7-15ebdbb8c3d8"
},
{
"created_at": "2016-06-23T13:42:02.000000",
"dest_compute": "compute20",
"dest_host": "5.6.7.8",
"dest_node": "node20",
"id": 3,
"instance_uuid": "9128d044-7b61-403e-b766-7547076ff6c1",
"new_instance_type_id": 6,
"old_instance_type_id": 5,
"source_compute": "compute10",
"source_node": "node10",
"status": "error",
"migration_type": "resize",
"updated_at": "2016-06-23T13:42:02.000000",
"uuid": "32341d4b-346a-40d0-83c6-5f4f6892b650",
"user_id": "78348f0e-97ee-4d70-ad34-189692673ea2",
"project_id": "9842f0f7-1229-4355-afe7-15ebdbb8c3d8"
},
{
"created_at": "2016-01-29T12:42:02.000000",
"dest_compute": "compute2",
"dest_host": "1.2.3.4",
"dest_node": "node2",
"id": 2,
"instance_uuid": "8600d31b-d1a1-4632-b2ff-45c2be1a70ff",
"new_instance_type_id": 1,
"old_instance_type_id": 1,
"source_compute": "compute1",
"source_node": "node1",
"status": "error",
"migration_type": "live-migration",
"updated_at": "2016-01-29T12:42:02.000000",
"uuid": "22341d4b-346a-40d0-83c6-5f4f6892b650",
"user_id": "5c48ebaa-193f-4c5d-948a-f559cc92cd5e",
"project_id": "ef92ccff-00f3-46e4-b015-811110e36ee4"
},
{
"created_at": "2016-01-29T11:42:02.000000",
"dest_compute": "compute2",
"dest_host": "1.2.3.4",
"dest_node": "node2",
"id": 1,
"instance_uuid": "8600d31b-d1a1-4632-b2ff-45c2be1a70ff",
"links": [
{
"href": "http://openstack.example.com/v2.1/6f70656e737461636b20342065766572/servers/8600d31b-d1a1-4632-b2ff-45c2be1a70ff/migrations/1",
"rel": "self"
},
{
"href": "http://openstack.example.com/6f70656e737461636b20342065766572/servers/8600d31b-d1a1-4632-b2ff-45c2be1a70ff/migrations/1",
"rel": "bookmark"
}
],
"new_instance_type_id": 1,
"old_instance_type_id": 1,
"source_compute": "compute1",
"source_node": "node1",
"status": "running",
"migration_type": "live-migration",
"updated_at": "2016-01-29T11:42:02.000000",
"uuid": "12341d4b-346a-40d0-83c6-5f4f6892b650",
"user_id": "5c48ebaa-193f-4c5d-948a-f559cc92cd5e",
"project_id": "ef92ccff-00f3-46e4-b015-811110e36ee4"
}
]
}
示例:列出带分页的迁移 (v2.80)
{
"migrations": [
{
"created_at": "2016-06-23T14:42:02.000000",
"dest_compute": "compute20",
"dest_host": "5.6.7.8",
"dest_node": "node20",
"id": 4,
"instance_uuid": "9128d044-7b61-403e-b766-7547076ff6c1",
"new_instance_type_id": 6,
"old_instance_type_id": 5,
"source_compute": "compute10",
"source_node": "node10",
"status": "migrating",
"migration_type": "resize",
"updated_at": "2016-06-23T14:42:02.000000",
"uuid": "42341d4b-346a-40d0-83c6-5f4f6892b650",
"user_id": "78348f0e-97ee-4d70-ad34-189692673ea2",
"project_id": "9842f0f7-1229-4355-afe7-15ebdbb8c3d8"
}
],
"migrations_links": [
{
"href": "http://openstack.example.com/v2.1/6f70656e737461636b20342065766572/os-migrations?limit=1&marker=42341d4b-346a-40d0-83c6-5f4f6892b650",
"rel": "next"
}
]
}
服务器迁移 (servers, migrations)¶
列出、显示、执行服务器迁移操作以及删除服务器迁移。
列出给定服务器的正在进行的实时迁移。
注意
此 API 需要微版本 2.23 或更高版本。
策略默认仅允许具有管理员角色的用户执行此操作。云提供商可以通过 policy.json 文件更改这些权限。
正常响应代码:200
错误响应代码:unauthorized(401)、forbidden(403)、itemNotFound(404)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
server_id |
路径 |
字符串 |
服务器的 UUID。 |
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
migrations |
body |
数组 |
服务器迁移对象的列表。 |
created_at |
body |
字符串 |
资源被创建的日期和时间。日期和时间戳格式为 ISO 8601。 CCYY-MM-DDThh:mm:ss±hh:mm
例如, |
dest_compute |
body |
字符串 |
迁移的目标计算节点。 |
dest_host |
body |
字符串 |
迁移的目标主机。 |
dest_node |
body |
字符串 |
迁移的目标节点。 |
disk_processed_bytes |
body |
整数 |
迁移过程中已处理的磁盘量(以字节为单位)。 |
disk_remaining_bytes |
body |
整数 |
仍需迁移的磁盘量(以字节为单位)。 |
disk_total_bytes |
body |
整数 |
需要迁移的磁盘总量,以字节为单位。 |
id |
body |
整数 |
服务器迁移的 ID。 |
memory_processed_bytes |
body |
整数 |
在迁移过程中已处理的内存量,以字节为单位。 |
memory_remaining_bytes |
body |
整数 |
仍需迁移的内存量,以字节为单位。 |
memory_total_bytes |
body |
整数 |
需要迁移的总内存量,以字节为单位。 |
server_uuid |
body |
字符串 |
服务器的 UUID。 |
source_compute |
body |
字符串 |
迁移的源计算节点。 |
source_node |
body |
字符串 |
迁移的源节点。 |
status |
body |
字符串 |
迁移的当前状态。 |
updated_at |
body |
字符串 |
资源被更新的日期和时间。日期和时间戳格式为 ISO 8601。 CCYY-MM-DDThh:mm:ss±hh:mm
例如, |
uuid |
body |
字符串 |
迁移的 UUID。 新功能,版本 2.59 |
user_id |
body |
字符串 |
发起服务器迁移的用户 ID。对于旧的迁移记录,该值可能为 新功能,版本 2.80 |
project_id |
body |
字符串 |
发起服务器迁移的项目 ID。对于旧的迁移记录,该值可能为 新功能,版本 2.80 |
示例 迁移列表 (2.80)
{
"migrations": [
{
"created_at": "2016-01-29T13:42:02.000000",
"dest_compute": "compute2",
"dest_host": "1.2.3.4",
"dest_node": "node2",
"id": 1,
"server_uuid": "4cfba335-03d8-49b2-8c52-e69043d1e8fe",
"source_compute": "compute1",
"source_node": "node1",
"status": "running",
"memory_total_bytes": 123456,
"memory_processed_bytes": 12345,
"memory_remaining_bytes": 111111,
"disk_total_bytes": 234567,
"disk_processed_bytes": 23456,
"disk_remaining_bytes": 211111,
"updated_at": "2016-01-29T13:42:02.000000",
"uuid": "12341d4b-346a-40d0-83c6-5f4f6892b650",
"user_id": "8dbaa0f0-ab95-4ffe-8cb4-9c89d2ac9d24",
"project_id": "5f705771-3aa9-4f4c-8660-0d9522ffdbea"
}
]
}
显示指定服务器正在进行的实时迁移的详细信息。
注意
此 API 需要微版本 2.23 或更高版本。
策略默认仅允许具有管理员角色的用户执行此操作。云提供商可以通过 policy.json 文件更改这些权限。
正常响应代码:200
错误响应代码:unauthorized(401)、forbidden(403)、itemNotFound(404)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
server_id |
路径 |
字符串 |
服务器的 UUID。 |
migration_id |
路径 |
整数 |
服务器迁移的 ID。 |
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
迁移 |
body |
对象 |
服务器迁移对象。 |
created_at |
body |
字符串 |
资源被创建的日期和时间。日期和时间戳格式为 ISO 8601。 CCYY-MM-DDThh:mm:ss±hh:mm
例如, |
dest_compute |
body |
字符串 |
迁移的目标计算节点。 |
dest_host |
body |
字符串 |
迁移的目标主机。 |
dest_node |
body |
字符串 |
迁移的目标节点。 |
disk_processed_bytes |
body |
整数 |
迁移过程中已处理的磁盘量(以字节为单位)。 |
disk_remaining_bytes |
body |
整数 |
仍需迁移的磁盘量(以字节为单位)。 |
disk_total_bytes |
body |
整数 |
需要迁移的磁盘总量,以字节为单位。 |
id |
body |
整数 |
服务器迁移的 ID。 |
memory_processed_bytes |
body |
整数 |
在迁移过程中已处理的内存量,以字节为单位。 |
memory_remaining_bytes |
body |
整数 |
仍需迁移的内存量,以字节为单位。 |
memory_total_bytes |
body |
整数 |
需要迁移的总内存量,以字节为单位。 |
server_uuid |
body |
字符串 |
服务器的 UUID。 |
source_compute |
body |
字符串 |
迁移的源计算节点。 |
source_node |
body |
字符串 |
迁移的源节点。 |
status |
body |
字符串 |
迁移的当前状态。 |
updated_at |
body |
字符串 |
资源被更新的日期和时间。日期和时间戳格式为 ISO 8601。 CCYY-MM-DDThh:mm:ss±hh:mm
例如, |
uuid |
body |
字符串 |
迁移的 UUID。 新功能,版本 2.59 |
user_id |
body |
字符串 |
发起服务器迁移的用户 ID。对于旧的迁移记录,该值可能为 新功能,版本 2.80 |
project_id |
body |
字符串 |
发起服务器迁移的项目 ID。对于旧的迁移记录,该值可能为 新功能,版本 2.80 |
示例 显示迁移详情 (2.80)
{
"migration": {
"created_at": "2016-01-29T13:42:02.000000",
"dest_compute": "compute2",
"dest_host": "1.2.3.4",
"dest_node": "node2",
"id": 1,
"server_uuid": "4cfba335-03d8-49b2-8c52-e69043d1e8fe",
"source_compute": "compute1",
"source_node": "node1",
"status": "running",
"memory_total_bytes": 123456,
"memory_processed_bytes": 12345,
"memory_remaining_bytes": 111111,
"disk_total_bytes": 234567,
"disk_processed_bytes": 23456,
"disk_remaining_bytes": 211111,
"updated_at": "2016-01-29T13:42:02.000000",
"uuid": "12341d4b-346a-40d0-83c6-5f4f6892b650",
"user_id": "8dbaa0f0-ab95-4ffe-8cb4-9c89d2ac9d24",
"project_id": "5f705771-3aa9-4f4c-8660-0d9522ffdbea"
}
}
强制指定服务器上正在进行的实时迁移完成。
在请求体中指定 `force_complete` 操作。
注意
此 API 需要 Microversion 2.22 或更高版本。
注意
并非所有 计算后端 都支持强制完成正在进行的实时迁移。
策略默认仅允许具有管理员角色的用户执行此操作。云提供商可以通过 policy.json 文件更改这些权限。
先决条件
服务器的 OS-EXT-STS:vm_state 值必须为 `active`,OS-EXT-STS:task_state 值必须为 `migrating`。
如果服务器被锁定,您必须拥有管理员权限才能强制完成服务器迁移。
迁移状态必须为 `running`。
异步后置条件
发出此请求后,您通常需要持续轮询服务器状态以确定请求是否成功。
故障排除
如果服务器状态 `MIGRATING` 持续时间过长,则请求可能已失败。请确保您满足先决条件并重新运行请求。如果请求再次失败,请调查计算后端。更多详细信息请参阅 管理员指南。
正常响应代码:202
错误响应代码:badRequest(400),unauthorized(401),forbidden(403),itemNotFound(404),conflict(409)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
server_id |
路径 |
字符串 |
服务器的 UUID。 |
migration_id |
路径 |
整数 |
服务器迁移的 ID。 |
force_complete |
body |
none |
强制完成正在进行的实时迁移的操作。 |
示例 强制迁移完成 (force_complete 操作)
{
"force_complete": null
}
响应¶
成功 POST 操作的响应没有正文内容。
中止正在进行的实时迁移。
注意
此 API 需要 Microversion 2.24 或更高版本。
注意
对于 microversion 2.65 或更高版本,您还可以中止处于 `queued` 和 `preparing` 状态的实时迁移。
注意
并非所有 计算后端 都支持中止正在进行的实时迁移。
策略默认仅允许具有管理员角色的用户执行此操作。云提供商可以通过 policy.json 文件更改这些权限。
先决条件
服务器的 OS-EXT-STS:task_state 值必须为 `migrating`。
如果服务器被锁定,您必须拥有管理员权限才能强制完成服务器迁移。
对于 microversion 2.24 到 2.64,迁移状态必须为 `running`;对于 microversion 2.65 及更高版本,迁移状态也可以是 `queued` 和 `preparing`。
异步后置条件
发出此请求后,您通常需要持续轮询服务器状态以确定请求是否成功。您也可以通过以下方式监控迁移:
GET /servers/{server_id}/migrations/{migration_id}
故障排除
如果服务器状态 `MIGRATING` 持续时间过长,则请求可能已失败。请确保您满足先决条件并重新运行请求。如果请求再次失败,请调查计算后端。
正常响应代码:202
错误响应代码:badRequest(400),unauthorized(401),forbidden(403),itemNotFound(404),conflict(409)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
server_id |
路径 |
字符串 |
服务器的 UUID。 |
migration_id |
路径 |
整数 |
服务器迁移的 ID。 |
响应¶
成功的 DELETE 操作的响应中没有主体内容。
配额集 (os-quota-sets)¶
允许管理员根据策略设置,查看默认配额、查看配额详细信息、将配额还原为默认值以及更新项目或项目和用户的配额。
显示项目或项目和用户的配额。
正常响应代码:200
错误响应代码:badRequest(400),unauthorized(401),forbidden(403)
400 - BadRequest - 您云中的 tenant_id 无效,可能是因为输入错误。
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
tenant_id |
路径 |
字符串 |
多租户云中的租户 UUID。 |
user_id (可选) |
查询 |
字符串 |
要列出配额的用户 ID。 |
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
quota_set |
body |
对象 |
一个 |
cores |
body |
整数 |
每个租户允许的服务器核心数。 |
id |
body |
字符串 |
列出配额的租户/用户标识符。 |
instances |
body |
整数 |
每个租户允许的服务器数量。 |
key_pairs |
body |
整数 |
每个用户允许的密钥对数量。 |
metadata_items |
body |
整数 |
每个服务器允许的元数据项数。 |
ram |
body |
整数 |
每个租户允许的服务器 RAM 量(以 MiB 为单位)。 |
server_groups |
body |
整数 |
每个租户允许的服务器组数。 |
server_group_members |
body |
整数 |
每个服务器组允许的成员数。 |
fixed_ips |
body |
整数 |
每个租户允许的固定 IP 地址数量。必须等于或大于允许的服务器数量。 在版本 2.35 之前可用。 |
floating_ips |
body |
整数 |
每个租户允许的浮动 IP 地址数。 在版本 2.35 之前可用。 |
网络 (可选) |
body |
整数 |
每个项目可以创建的私有网络数量。 在版本 2.35 之前可用。 |
security_group_rules |
body |
整数 |
每个安全组允许的规则数。 在版本 2.35 之前可用。 |
security_groups |
body |
整数 |
每个租户允许的安全组数。 在版本 2.35 之前可用。 |
injected_file_content_bytes |
body |
整数 |
每个注入文件的允许内容字节数。 在版本 2.56 之前可用 |
injected_file_path_bytes |
body |
整数 |
每个注入文件路径允许的字节数。 在版本 2.56 之前可用 |
injected_files |
body |
整数 |
每个租户允许注入的文件数。 在版本 2.56 之前可用 |
示例 显示配额:JSON 响应
{
"quota_set": {
"cores": 20,
"fixed_ips": -1,
"floating_ips": -1,
"id": "fake_tenant",
"injected_file_content_bytes": 10240,
"injected_file_path_bytes": 255,
"injected_files": 5,
"instances": 10,
"key_pairs": 100,
"metadata_items": 128,
"ram": 51200,
"security_group_rules": -1,
"security_groups": -1,
"server_groups": 10,
"server_group_members": 10
}
}
更新项目或项目和用户的配额。
用户即使配额已被使用且预留配额超过新配额,也可以强制更新。要强制更新,请在请求体中指定 `"force": True` 属性,默认为 `false`。
正常响应代码:200
错误响应代码:badRequest(400),unauthorized(401),forbidden(403)
400 - BadRequest - 您云中的 tenant_id 无效,可能是因为输入错误。
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
tenant_id |
路径 |
字符串 |
多租户云中的租户 UUID。 |
user_id (可选) |
查询 |
字符串 |
要设置配额的用户 ID。 |
quota_set |
body |
对象 |
一个 |
force (可选) |
body |
布尔值 |
即使配额已被使用且预留配额超过新配额,您也可以强制更新。要强制更新,请指定 `"force": "True"`。默认为 `False`。 |
核心 (可选) |
body |
整数 |
每个租户允许的服务器核心数。 |
实例 (可选) |
body |
整数 |
每个租户允许的服务器数量。 |
密钥对 (可选) |
body |
整数 |
每个用户允许的密钥对数量。 |
元数据项 (可选) |
body |
整数 |
每个服务器允许的元数据项数。 |
RAM (可选) |
body |
整数 |
每个租户允许的服务器 RAM 量(以 MiB 为单位)。 |
服务器组 (可选) |
body |
整数 |
每个租户允许的服务器组数。 |
服务器组成员 (可选) |
body |
整数 |
每个服务器组允许的成员数。 |
fixed_ips (可选) |
body |
整数 |
每个租户允许的固定 IP 地址数量。必须等于或大于允许的服务器数量。 在版本 2.35 之前可用。 |
浮动 IP (可选) |
body |
整数 |
每个租户允许的浮动 IP 地址数。 在版本 2.35 之前可用。 |
网络 (可选) |
body |
整数 |
每个项目可以创建的私有网络数量。 在版本 2.35 之前可用。 |
安全组规则 (可选) |
body |
整数 |
每个安全组允许的规则数。 在版本 2.35 之前可用。 |
security_groups (可选) |
body |
整数 |
每个租户允许的安全组数。 在版本 2.35 之前可用。 |
注入文件内容字节数 (可选) |
body |
整数 |
每个注入文件的允许内容字节数。 在版本 2.56 之前可用 |
注入文件路径字节数 (可选) |
body |
整数 |
每个注入文件路径允许的字节数。 在版本 2.56 之前可用 |
注入文件 (可选) |
body |
整数 |
每个租户允许注入的文件数。 在版本 2.56 之前可用 |
示例 更新配额:JSON 请求
{
"quota_set": {
"cores": 45
}
}
示例 更新配额(带可选 `force` 属性):JSON 请求
{
"quota_set": {
"force": "True",
"instances": 45
}
}
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
quota_set |
body |
对象 |
一个 |
cores |
body |
整数 |
每个租户允许的服务器核心数。 |
instances |
body |
整数 |
每个租户允许的服务器数量。 |
key_pairs |
body |
整数 |
每个用户允许的密钥对数量。 |
metadata_items |
body |
整数 |
每个服务器允许的元数据项数。 |
ram |
body |
整数 |
每个租户允许的服务器 RAM 量(以 MiB 为单位)。 |
server_groups |
body |
整数 |
每个租户允许的服务器组数。 |
server_group_members |
body |
整数 |
每个服务器组允许的成员数。 |
fixed_ips |
body |
整数 |
每个租户允许的固定 IP 地址数量。必须等于或大于允许的服务器数量。 在版本 2.35 之前可用。 |
floating_ips |
body |
整数 |
每个租户允许的浮动 IP 地址数。 在版本 2.35 之前可用。 |
网络 (可选) |
body |
整数 |
每个项目可以创建的私有网络数量。 在版本 2.35 之前可用。 |
security_group_rules |
body |
整数 |
每个安全组允许的规则数。 在版本 2.35 之前可用。 |
security_groups |
body |
整数 |
每个租户允许的安全组数。 在版本 2.35 之前可用。 |
injected_file_content_bytes |
body |
整数 |
每个注入文件的允许内容字节数。 在版本 2.56 之前可用 |
injected_file_path_bytes |
body |
整数 |
每个注入文件路径允许的字节数。 在版本 2.56 之前可用 |
injected_files |
body |
整数 |
每个租户允许注入的文件数。 在版本 2.56 之前可用 |
示例 更新配额:JSON 响应
{
"quota_set": {
"cores": 45,
"fixed_ips": -1,
"floating_ips": -1,
"injected_file_content_bytes": 10240,
"injected_file_path_bytes": 255,
"injected_files": 5,
"instances": 10,
"key_pairs": 100,
"metadata_items": 128,
"ram": 51200,
"security_group_rules": -1,
"security_groups": -1,
"server_groups": 10,
"server_group_members": 10
}
}
将项目或项目和用户的配额还原为默认值。
要为项目和用户还原配额,请指定 `user_id` 查询参数。
正常响应代码:202
错误响应代码:未授权(401)、禁止(403)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
tenant_id |
路径 |
字符串 |
多租户云中的租户 UUID。 |
user_id (可选) |
查询 |
字符串 |
要删除配额的用户 ID。 |
响应¶
成功的 DELETE 操作的响应中没有主体内容。
列出项目的默认配额。
正常响应代码:200
错误响应代码:badrequest(400), unauthorized(401), forbidden(403)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
tenant_id |
路径 |
字符串 |
多租户云中的租户 UUID。 |
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
quota_set |
body |
对象 |
一个 |
cores |
body |
整数 |
每个租户允许的服务器核心数。 |
id |
body |
字符串 |
列出配额的租户/用户标识符。 |
instances |
body |
整数 |
每个租户允许的服务器数量。 |
key_pairs |
body |
整数 |
每个用户允许的密钥对数量。 |
metadata_items |
body |
整数 |
每个服务器允许的元数据项数。 |
ram |
body |
整数 |
每个租户允许的服务器 RAM 量(以 MiB 为单位)。 |
server_groups |
body |
整数 |
每个租户允许的服务器组数。 |
server_group_members |
body |
整数 |
每个服务器组允许的成员数。 |
fixed_ips |
body |
整数 |
每个租户允许的固定 IP 地址数量。必须等于或大于允许的服务器数量。 在版本 2.35 之前可用。 |
floating_ips |
body |
整数 |
每个租户允许的浮动 IP 地址数。 在版本 2.35 之前可用。 |
网络 (可选) |
body |
整数 |
每个项目可以创建的私有网络数量。 在版本 2.35 之前可用。 |
security_group_rules |
body |
整数 |
每个安全组允许的规则数。 在版本 2.35 之前可用。 |
security_groups |
body |
整数 |
每个租户允许的安全组数。 在版本 2.35 之前可用。 |
injected_file_content_bytes |
body |
整数 |
每个注入文件的允许内容字节数。 在版本 2.56 之前可用 |
injected_file_path_bytes |
body |
整数 |
每个注入文件路径允许的字节数。 在版本 2.56 之前可用 |
injected_files |
body |
整数 |
每个租户允许注入的文件数。 在版本 2.56 之前可用 |
示例 列出租户的默认配额:JSON 响应
{
"quota_set": {
"cores": 20,
"fixed_ips": -1,
"floating_ips": -1,
"id": "fake_tenant",
"injected_file_content_bytes": 10240,
"injected_file_path_bytes": 255,
"injected_files": 5,
"instances": 10,
"key_pairs": 100,
"metadata_items": 128,
"ram": 51200,
"security_group_rules": -1,
"security_groups": -1,
"server_groups": 10,
"server_group_members": 10
}
}
显示项目或项目和用户的配额详情。
要显示项目和用户的配额,请指定 `user_id` 查询参数。
正常响应代码:200
错误响应代码:badrequest(400), unauthorized(401), forbidden(403)
400 - BadRequest - 您云中的 {tenant_id} 无效,可能是因为输入错误。
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
tenant_id |
路径 |
字符串 |
多租户云中的租户 UUID。 |
user_id (可选) |
查询 |
字符串 |
要列出配额的用户 ID。 |
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
quota_set |
body |
对象 |
一个 |
cores |
body |
对象 |
详细核心配额对象,包括已使用、限制和预留的核心数量。 |
id |
body |
字符串 |
列出配额的租户/用户标识符。 |
instances |
body |
对象 |
详细服务器配额对象,包括已使用、限制和预留的实例数量。 |
key_pairs |
body |
对象 |
详细密钥对配额对象,包括已使用、限制和预留的密钥对数量。 注意 密钥对配额详情的 `in_use` 字段值始终为零。在 Nova 中,`key_pairs` 是用户级别的资源,而不是项目级别的资源,因此出于历史原因,密钥对的已使用信息不被计算。 |
metadata_items |
body |
对象 |
详细元数据项配额对象,包括已使用、限制和预留的元数据项数量。 |
ram |
body |
对象 |
详细 RAM 配额对象,包括已使用、限制和预留的 RAM 数量。 |
server_groups |
body |
对象 |
详细服务器组对象,包括已使用、限制和预留的服务器组数量。 |
server_group_members |
body |
对象 |
详细服务器组成员对象,包括已使用、限制和预留的服务器组成员数量。 |
fixed_ips |
body |
对象 |
详细固定 IP 配额对象,包括已使用、限制和预留的固定 IP 数量。 在版本 2.35 之前可用。 |
floating_ips |
body |
对象 |
详细浮动 IP 配额对象,包括已使用、限制和预留的浮动 IP 数量。 在版本 2.35 之前可用。 |
网络 (可选) |
body |
整数 |
每个项目可以创建的私有网络数量。 在版本 2.35 之前可用。 |
security_group_rules |
body |
对象 |
详细安全组规则配额对象,包括已使用、限制和预留的安全组规则数量。 在版本 2.35 之前可用。 |
security_groups |
body |
对象 |
详细安全组对象,包括已使用、限制和预留的安全组数量。 在版本 2.35 之前可用。 |
injected_file_content_bytes |
body |
对象 |
详细注入文件内容字节数配额对象,包括已使用、限制和预留的注入文件内容字节数。 在版本 2.56 之前可用 |
injected_file_path_bytes |
body |
对象 |
详细注入文件路径字节数配额对象,包括已使用、限制和预留的注入文件路径字节数。 在版本 2.56 之前可用 |
injected_files |
body |
对象 |
详细注入文件配额对象,包括已使用、限制和预留的注入文件数量。 在版本 2.56 之前可用 |
示例 显示配额:JSON 响应
{
"quota_set": {
"cores": {
"in_use": 0,
"limit": 20,
"reserved": 0
},
"fixed_ips": {
"in_use": 0,
"limit": -1,
"reserved": 0
},
"floating_ips": {
"in_use": 0,
"limit": -1,
"reserved": 0
},
"id": "fake_tenant",
"injected_file_content_bytes": {
"in_use": 0,
"limit": 10240,
"reserved": 0
},
"injected_file_path_bytes": {
"in_use": 0,
"limit": 255,
"reserved": 0
},
"injected_files": {
"in_use": 0,
"limit": 5,
"reserved": 0
},
"instances": {
"in_use": 0,
"limit": 10,
"reserved": 0
},
"key_pairs": {
"in_use": 0,
"limit": 100,
"reserved": 0
},
"metadata_items": {
"in_use": 0,
"limit": 128,
"reserved": 0
},
"ram": {
"in_use": 0,
"limit": 51200,
"reserved": 0
},
"security_group_rules": {
"in_use": 0,
"limit": -1,
"reserved": 0
},
"security_groups": {
"in_use": 0,
"limit": -1,
"reserved": 0
},
"server_group_members": {
"in_use": 0,
"limit": 10,
"reserved": 0
},
"server_groups": {
"in_use": 0,
"limit": 10,
"reserved": 0
}
}
}
配额类集 (os-quota-class-sets)¶
显示、创建或更新配额类 (Quota Class) 的配额。Nova 只支持隐式的 'default' 配额类。
注意
一旦通过 API 设置了 `default` 配额类的默认限制,它将优先于配置文件中对该资源限制的任何更改。换句话说,一旦通过 API 更改了内容,您要么需要将它们与配置值同步,要么手动从数据库中删除默认限制,因为没有 REST API 可以从数据库中删除配额类值。
例如:如果您将实例的默认配额更新为 20,但未在 `nova.conf` 中更改 `quota_instances`,那么所有项目的实例默认配额将为 20。如果您随后在 nova.conf 中将 `quota_instances=5`,但未通过 API 更新 `default` 配额类,那么无论 `nova.conf` 设置如何,您仍然拥有 20 的实例默认配额。参考:配额 以获取更多详细信息。
警告
在 v2.1 API(直到 microversion 2.49)和旧版 v2 兼容 API 中存在一个 bug,它们在 GET 和 PUT `os-quota-class-sets` API 响应中不返回 `server_groups` 和 `server_group_members` 配额。然而,v2 API 过去会在 API 响应中返回这些键。在 配额集 (os-quota-sets) 中,可以通过“列出租户的默认配额” API 来获取 `server_groups` 和 `server_group_members` 配额的解决方法,但这适用于项目配额。此问题在 microversion 2.50 中已修复,此后 `server_groups` 和 `server_group_members` 键将在 API 响应体中返回。
显示配额类的配额。
正常响应代码:200
错误响应代码:未授权(401)、禁止(403)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
id |
路径 |
字符串 |
配额类的 ID。Nova 只支持 `default` 配额类。 |
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
quota_class_set |
body |
对象 |
一个 |
cores |
body |
整数 |
配额类允许的服务器核心数量。 |
id |
body |
字符串 |
配额类的 ID。Nova 只支持 `default` 配额类。 |
instances |
body |
整数 |
配额类允许的服务器数量。 |
key_pairs |
body |
整数 |
配额类允许的密钥对数量。 |
metadata_items |
body |
整数 |
每个服务器允许的元数据项数。 |
ram |
body |
整数 |
配额类允许的实例 RAM 量,以 MiB 为单位。 |
fixed_ips |
body |
整数 |
配额类允许的固定 IP 地址数量。必须等于或大于允许的服务器数量。 截至 2.49 版本可用 |
floating_ips |
body |
整数 |
配额类允许的浮动 IP 地址数量。 截至 2.49 版本可用 |
网络 (可选) |
body |
整数 |
每个项目可以创建的私有网络数量。 截至 2.49 版本可用 |
security_group_rules |
body |
整数 |
每个安全组允许的规则数。 截至 2.49 版本可用 |
security_groups |
body |
整数 |
配额类允许的安全组数量。 截至 2.49 版本可用 |
server_groups |
body |
整数 |
配额类允许的服务器组数量。 2.50 版本新增 |
server_group_members |
body |
整数 |
每个服务器组允许的成员数。 2.50 版本新增 |
injected_file_content_bytes |
body |
整数 |
每个注入文件的允许内容字节数。 在版本 2.56 之前可用 |
injected_file_path_bytes |
body |
整数 |
每个注入文件路径允许的字节数。 在版本 2.56 之前可用 |
injected_files |
body |
整数 |
配额类允许的注入文件数量。 在版本 2.56 之前可用 |
示例 显示配额类:JSON 响应 (2.50)
{
"quota_class_set": {
"cores": 20,
"id": "test_class",
"injected_file_content_bytes": 10240,
"injected_file_path_bytes": 255,
"injected_files": 5,
"instances": 10,
"key_pairs": 100,
"metadata_items": 128,
"ram": 51200,
"server_groups": 10,
"server_group_members": 10
}
}
更新配额类的配额。
如果请求的配额类在数据库中未找到,则 API 将会创建它。只有 'default' 配额类是有效的,用于设置默认配额,所有其他配额类都不会在任何地方使用。
正常响应代码:200
错误响应代码:badRequest(400),unauthorized(401),forbidden(403)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
id |
路径 |
字符串 |
配额类的 ID。Nova 只支持 `default` 配额类。 |
quota_class_set |
body |
对象 |
一个 |
核心 (可选) |
body |
整数 |
配额类允许的服务器核心数量。 |
实例 (可选) |
body |
整数 |
配额类允许的服务器数量。 |
密钥对 (可选) |
body |
整数 |
配额类允许的密钥对数量。 |
元数据项 (可选) |
body |
整数 |
每个服务器允许的元数据项数。 |
RAM (可选) |
body |
整数 |
配额类允许的实例 RAM 量,以 MiB 为单位。 |
服务器组 (可选) |
body |
整数 |
配额类允许的服务器组数量。 |
服务器组成员 (可选) |
body |
整数 |
每个服务器组允许的成员数。 |
fixed_ips (可选) |
body |
整数 |
配额类允许的固定 IP 地址数量。必须等于或大于允许的服务器数量。 截至 2.49 版本可用 |
浮动 IP (可选) |
body |
整数 |
配额类允许的浮动 IP 地址数量。 截至 2.49 版本可用 |
网络 (可选) |
body |
整数 |
每个项目可以创建的私有网络数量。 截至 2.49 版本可用 |
安全组规则 (可选) |
body |
整数 |
每个安全组允许的规则数。 截至 2.49 版本可用 |
security_groups (可选) |
body |
整数 |
配额类允许的安全组数量。 截至 2.49 版本可用 |
注入文件内容字节数 (可选) |
body |
整数 |
每个注入文件的允许内容字节数。 在版本 2.56 之前可用 |
注入文件路径字节数 (可选) |
body |
整数 |
每个注入文件路径允许的字节数。 在版本 2.56 之前可用 |
注入文件 (可选) |
body |
整数 |
配额类允许的注入文件数量。 在版本 2.56 之前可用 |
示例 更新配额:JSON 请求 (2.50)
{
"quota_class_set": {
"instances": 50,
"cores": 50,
"ram": 51200,
"metadata_items": 128,
"injected_files": 5,
"injected_file_content_bytes": 10240,
"injected_file_path_bytes": 255,
"key_pairs": 100,
"server_groups": 10,
"server_group_members": 10
}
}
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
quota_class_set |
body |
对象 |
一个 |
cores |
body |
整数 |
配额类允许的服务器核心数量。 |
instances |
body |
整数 |
配额类允许的服务器数量。 |
key_pairs |
body |
整数 |
配额类允许的密钥对数量。 |
metadata_items |
body |
整数 |
每个服务器允许的元数据项数。 |
ram |
body |
整数 |
配额类允许的实例 RAM 量,以 MiB 为单位。 |
fixed_ips |
body |
整数 |
配额类允许的固定 IP 地址数量。必须等于或大于允许的服务器数量。 截至 2.49 版本可用 |
floating_ips |
body |
整数 |
配额类允许的浮动 IP 地址数量。 截至 2.49 版本可用 |
网络 (可选) |
body |
整数 |
每个项目可以创建的私有网络数量。 截至 2.49 版本可用 |
security_group_rules |
body |
整数 |
每个安全组允许的规则数。 截至 2.49 版本可用 |
security_groups |
body |
整数 |
配额类允许的安全组数量。 截至 2.49 版本可用 |
server_groups |
body |
整数 |
配额类允许的服务器组数量。 2.50 版本新增 |
server_group_members |
body |
整数 |
每个服务器组允许的成员数。 2.50 版本新增 |
injected_file_content_bytes |
body |
整数 |
每个注入文件的允许内容字节数。 在版本 2.56 之前可用 |
injected_file_path_bytes |
body |
整数 |
每个注入文件路径允许的字节数。 在版本 2.56 之前可用 |
injected_files |
body |
整数 |
配额类允许的注入文件数量。 在版本 2.56 之前可用 |
示例 更新配额:JSON 响应 (2.50)
{
"quota_class_set": {
"cores": 50,
"injected_file_content_bytes": 10240,
"injected_file_path_bytes": 255,
"injected_files": 5,
"instances": 50,
"key_pairs": 100,
"metadata_items": 128,
"ram": 51200,
"server_groups": 10,
"server_group_members": 10
}
}
服务器组 (os-server-groups)¶
列出、显示服务器组信息、创建和删除服务器组。
列出租户的所有服务器组。
管理员用户可以使用 `all_projects` 查询参数来列出所有项目的服务器组。
正常响应代码:200
错误响应代码:未授权(401)、禁止(403)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
all_projects (可选) |
查询 |
字符串 |
仅管理员。列出所有项目的服务器组。例如
如果使用此查询参数为非管理员用户指定了租户 ID,则调用将列出该租户或项目的服务器组,而不是所有项目的服务器组。此查询参数的值不会被检查,只有其存在性被视为请求所有项目。 |
limit (可选) |
查询 |
整数 |
与 |
offset (可选) |
查询 |
整数 |
与 |
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
server_groups |
body |
数组 |
现有服务器组的列表。 |
id |
body |
字符串 |
服务器组的 UUID。 |
name |
body |
字符串 |
服务器组的名称。 |
策略 |
body |
数组 |
一个策略名称列表,用于关联到服务器组。当前有效的策略名称是
截至 2.63 版本可用 |
members |
body |
数组 |
服务器组成员列表。 |
metadata |
body |
对象 |
元数据键值对。每个元数据键值对的最大大小为 255 字节。它始终为空,仅用于保持兼容性。 截至 2.63 版本可用 |
project_id |
body |
字符串 |
拥有服务器组的项目 ID。 2.13 版本新增 |
user_id |
body |
字符串 |
拥有服务器组的用户 ID。 2.13 版本新增 |
policy |
body |
字符串 |
`policy` 字段表示策略的名称。当前有效的策略名称是
2.64 版本新增 |
rules |
body |
对象 |
`rules` 字段是一个字典,可以应用于策略。目前,只有 `anti-affinity` 策略支持 `max_server_per_host` 规则。`max_server_per_host` 规则允许指定同一反亲和性组中有多少成员可以驻留在同一计算主机上。如果未指定,则同一反亲和性组中只有一个成员可以驻留在给定主机上。 2.64 版本新增 |
示例 列出服务器组 (2.64):JSON 响应
{
"server_groups": [
{
"id": "616fb98f-46ca-475e-917e-2563e5a8cd19",
"name": "test",
"policy": "anti-affinity",
"rules": {"max_server_per_host": 3},
"members": [],
"project_id": "6f70656e737461636b20342065766572",
"user_id": "fake"
}
]
}
创建服务器组。
正常响应代码:200
错误响应代码:badRequest(400),unauthorized(401),forbidden(403),conflict(409)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
server_group |
body |
对象 |
服务器组对象。 |
name |
body |
字符串 |
服务器组的名称。 |
策略 |
body |
数组 |
一个策略名称列表,用于关联到服务器组。当前有效的策略名称是
截至 2.63 版本可用 |
policy |
body |
字符串 |
`policy` 字段表示策略的名称。当前有效的策略名称是
2.64 版本新增 |
rules (可选) |
body |
对象 |
`rules` 字段是一个字典,可以应用于策略。目前,只有 `anti-affinity` 策略支持 `max_server_per_host` 规则。`max_server_per_host` 规则允许指定同一反亲和性组中有多少成员可以驻留在同一计算主机上。如果未指定,则同一反亲和性组中只有一个成员可以驻留在给定主机上。请求除 `anti-affinity` 策略外的任何其他策略的规则将返回 400 错误。 2.64 版本新增 |
示例 创建服务器组 (2.64):JSON 请求
{
"server_group": {
"name": "test",
"policy": "anti-affinity",
"rules": {"max_server_per_host": 3}
}
}
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
server_group |
body |
对象 |
服务器组对象。 |
id |
body |
字符串 |
服务器组的 UUID。 |
name |
body |
字符串 |
服务器组的名称。 |
策略 |
body |
数组 |
一个策略名称列表,用于关联到服务器组。当前有效的策略名称是
截至 2.63 版本可用 |
members |
body |
数组 |
服务器组成员列表。 |
metadata |
body |
对象 |
元数据键值对。每个元数据键值对的最大大小为 255 字节。它始终为空,仅用于保持兼容性。 截至 2.63 版本可用 |
project_id |
body |
字符串 |
拥有服务器组的项目 ID。 2.13 版本新增 |
user_id |
body |
字符串 |
拥有服务器组的用户 ID。 2.13 版本新增 |
policy |
body |
字符串 |
`policy` 字段表示策略的名称。当前有效的策略名称是
2.64 版本新增 |
rules |
body |
对象 |
`rules` 字段是一个字典,可以应用于策略。目前,只有 `anti-affinity` 策略支持 `max_server_per_host` 规则。`max_server_per_host` 规则允许指定同一反亲和性组中有多少成员可以驻留在同一计算主机上。如果未指定,则同一反亲和性组中只有一个成员可以驻留在给定主机上。 2.64 版本新增 |
示例 创建服务器组 (2.64):JSON 响应
{
"server_group": {
"id": "5bbcc3c4-1da2-4437-a48a-66f15b1b13f9",
"name": "test",
"policy": "anti-affinity",
"rules": {"max_server_per_host": 3},
"members": [],
"project_id": "6f70656e737461636b20342065766572",
"user_id": "fake"
}
}
显示服务器组的详细信息。
正常响应代码:200
错误响应代码:unauthorized(401)、forbidden(403)、itemNotFound(404)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
server_group_id |
路径 |
字符串 |
服务器组的 UUID。 |
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
server_group |
body |
对象 |
服务器组对象。 |
id |
body |
字符串 |
服务器组的 UUID。 |
name |
body |
字符串 |
服务器组的名称。 |
策略 |
body |
数组 |
一个策略名称列表,用于关联到服务器组。当前有效的策略名称是
截至 2.63 版本可用 |
members |
body |
数组 |
服务器组成员列表。 |
metadata |
body |
对象 |
元数据键值对。每个元数据键值对的最大大小为 255 字节。它始终为空,仅用于保持兼容性。 截至 2.63 版本可用 |
project_id |
body |
字符串 |
拥有服务器组的项目 ID。 2.13 版本新增 |
user_id |
body |
字符串 |
拥有服务器组的用户 ID。 2.13 版本新增 |
policy |
body |
字符串 |
`policy` 字段表示策略的名称。当前有效的策略名称是
2.64 版本新增 |
rules |
body |
对象 |
`rules` 字段是一个字典,可以应用于策略。目前,只有 `anti-affinity` 策略支持 `max_server_per_host` 规则。`max_server_per_host` 规则允许指定同一反亲和性组中有多少成员可以驻留在同一计算主机上。如果未指定,则同一反亲和性组中只有一个成员可以驻留在给定主机上。 2.64 版本新增 |
示例 显示服务器组详情 (2.64):JSON 响应
{
"server_group": {
"id": "5bbcc3c4-1da2-4437-a48a-66f15b1b13f9",
"name": "test",
"policy": "anti-affinity",
"rules": {"max_server_per_host": 3},
"members": [],
"project_id": "6f70656e737461636b20342065766572",
"user_id": "fake"
}
}
删除服务器组。
正常响应代码:204
错误响应代码:unauthorized(401)、forbidden(403)、itemNotFound(404)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
server_group_id |
路径 |
字符串 |
服务器组的 UUID。 |
响应¶
成功的 DELETE 操作的响应体为空。
计算服务 (os-services)¶
列出区域中所有正在运行的计算服务,启用或禁用计算服务的调度,以及删除计算服务。
有关计算服务的概述,请参阅 OpenStack 计算。
列出所有正在运行的计算服务。
提供服务被禁用原因的详细信息。
注意
从 microversion 2.69 开始,如果由于部署中的临时情况(如基础设施故障)导致服务详细信息无法加载,则那些不可用的计算服务(在故障单元中)的响应体将缺少键。有关部分结构中可能返回的键的更多信息,请参阅计算 API 指南中的 处理故障单元 部分。
正常响应代码:200
错误响应代码:未授权(401)、禁止(403)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
binary (可选) |
查询 |
字符串 |
按服务的二进制名称过滤服务列表结果。 |
host (可选) |
查询 |
字符串 |
按主机名过滤服务列表结果。 |
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
services |
body |
数组 |
服务对象列表。 |
id |
body |
整数 |
服务的 ID。 在版本 2.52 之前可用。 |
id |
body |
字符串 |
服务的 UUID 格式 ID。 新功能,版本 2.53 |
binary |
body |
字符串 |
服务的二进制名称。 |
disabled_reason |
body |
字符串 |
禁用服务的理由。 |
host |
body |
字符串 |
主机的名称。 |
state |
body |
字符串 |
服务的状态。为 |
status |
body |
字符串 |
服务状态。为 |
updated_at |
body |
字符串 |
资源被更新的日期和时间。日期和时间戳格式为 ISO 8601。 CCYY-MM-DDThh:mm:ss±hh:mm
例如, |
zone |
body |
字符串 |
可用区名称。 |
forced_down |
body |
布尔值 |
此服务是否被管理员手动强制设置为关闭状态(在服务被隔离后)。此值对于了解第三方已确认服务应被标记为关闭状态很有用。 版本 2.11 中新增 |
示例 列出计算服务 (v2.11)
{
"services": [
{
"id": 1,
"binary": "nova-scheduler",
"disabled_reason": "test1",
"host": "host1",
"state": "up",
"status": "disabled",
"updated_at": "2012-10-29T13:42:02.000000",
"forced_down": false,
"zone": "internal"
},
{
"id": 2,
"binary": "nova-compute",
"disabled_reason": "test2",
"host": "host1",
"state": "up",
"status": "disabled",
"updated_at": "2012-10-29T13:42:05.000000",
"forced_down": false,
"zone": "nova"
},
{
"id": 3,
"binary": "nova-scheduler",
"disabled_reason": null,
"host": "host2",
"state": "down",
"status": "enabled",
"updated_at": "2012-09-19T06:55:34.000000",
"forced_down": false,
"zone": "internal"
},
{
"id": 4,
"binary": "nova-compute",
"disabled_reason": "test4",
"host": "host2",
"state": "down",
"status": "disabled",
"updated_at": "2012-09-18T08:03:38.000000",
"forced_down": false,
"zone": "nova"
}
]
}
示例 列出计算服务 (v2.69)
这是来自部署中不可响应部分的服务示例响应。可用服务记录的响应将正常,没有任何缺失的键。
{
"services": [
{
"binary": "nova-compute",
"host": "host1",
"status": "UNKNOWN"
},
{
"binary": "nova-compute",
"host": "host2",
"status": "UNKNOWN"
}
]
}
禁用计算服务的调度。
通过主机名和二进制名称指定服务。
注意
从 microversion 2.53 开始,此 API 已被 `PUT /os-services/{service_id}` 超越。
正常响应代码:200
错误响应代码:badRequest(400)、unauthorized(401)、forbidden(403)、itemNotFound(404)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
host |
body |
字符串 |
主机的名称。 |
binary |
body |
字符串 |
服务的二进制名称。 |
示例 禁用计算服务的调度
{
"host": "host1",
"binary": "nova-compute"
}
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
服务 |
body |
对象 |
表示计算服务的对象。 |
binary |
body |
字符串 |
服务的二进制名称。 |
host |
body |
字符串 |
主机的名称。 |
status |
body |
字符串 |
服务状态。为 |
示例 禁用计算服务的调度
{
"service": {
"binary": "nova-compute",
"host": "host1",
"status": "disabled"
}
}
禁用计算服务的调度,并将信息记录到计算服务表中,说明计算服务被禁用的原因。
通过主机名和二进制名称指定服务。
注意
从 microversion 2.53 开始,此 API 已被 `PUT /os-services/{service_id}` 超越。
正常响应代码:200
错误响应代码:badRequest(400)、unauthorized(401)、forbidden(403)、itemNotFound(404)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
host |
body |
字符串 |
主机的名称。 |
binary |
body |
字符串 |
服务的二进制名称。 |
disabled_reason |
body |
字符串 |
禁用服务的理由。 |
示例 禁用计算服务的调度并记录禁用原因
{
"host": "host1",
"binary": "nova-compute",
"disabled_reason": "test2"
}
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
服务 |
body |
对象 |
表示计算服务的对象。 |
binary |
body |
字符串 |
服务的二进制名称。 |
disabled_reason |
body |
字符串 |
禁用服务的理由。 |
host |
body |
字符串 |
主机的名称。 |
status |
body |
字符串 |
服务状态。为 |
示例 禁用计算服务的调度并记录禁用原因
{
"service": {
"binary": "nova-compute",
"disabled_reason": "test2",
"host": "host1",
"status": "disabled"
}
}
启用计算服务的调度。
通过主机名和二进制名称指定服务。
注意
从 microversion 2.53 开始,此 API 已被 `PUT /os-services/{service_id}` 超越。
正常响应代码:200
错误响应代码:badRequest(400)、unauthorized(401)、forbidden(403)、itemNotFound(404)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
host |
body |
字符串 |
主机的名称。 |
binary |
body |
字符串 |
服务的二进制名称。 |
示例 启用计算服务的调度
{
"host": "host1",
"binary": "nova-compute"
}
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
服务 |
body |
对象 |
表示计算服务的对象。 |
binary |
body |
字符串 |
服务的二进制名称。 |
host |
body |
字符串 |
主机的名称。 |
status |
body |
字符串 |
服务状态。为 |
示例 启用计算服务的调度
{
"service": {
"binary": "nova-compute",
"host": "host1",
"status": "enabled"
}
}
设置或取消设置服务的 `forced_down` 标志。`forced_down` 是一个手动覆盖,用于告知 nova 该服务已由运维团队手动隔离(硬关机或断开网络连接)。这表明可以继续执行 `evacuate` 或 nova 为防止主机启动而设置的安全检查的其他操作。
警告
在完全隔离服务的情况下设置 `forced_down` 标志,可能会导致该主机上的 VM 数据损坏。
操作 `force-down` 在 microversion 2.11 时可用。
通过主机名和二进制名称指定服务。
注意
从 microversion 2.53 开始,此 API 已被 `PUT /os-services/{service_id}` 超越。
正常响应代码:200
错误响应代码:badRequest(400)、unauthorized(401)、forbidden(403)、itemNotFound(404)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
host |
body |
字符串 |
主机的名称。 |
binary |
body |
字符串 |
服务的二进制名称。 |
forced_down |
body |
布尔值 |
此服务是否被管理员手动强制设置为关闭状态(在服务被隔离后)。此值对于了解第三方已确认服务应被标记为关闭状态很有用。 版本 2.11 中新增 |
示例 更新 Forced Down
{
"host": "host1",
"binary": "nova-compute",
"forced_down": true
}
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
服务 |
body |
对象 |
表示计算服务的对象。 |
binary |
body |
字符串 |
服务的二进制名称。 |
host |
body |
字符串 |
主机的名称。 |
forced_down |
body |
布尔值 |
此服务是否被管理员手动强制设置为关闭状态(在服务被隔离后)。此值对于了解第三方已确认服务应被标记为关闭状态很有用。 版本 2.11 中新增 |
示例 更新 Forced Down
{
"service": {
"binary": "nova-compute",
"host": "host1",
"forced_down": true
}
}
更新计算服务以启用或禁用调度,包括记录禁用计算服务的原因。设置或取消设置服务的 `forced_down` 标志。此操作仅允许用于 `binary` 为 `nova-compute` 的服务。
此 API 从 microversion 2.53 开始可用。
正常响应代码:200
错误响应代码:badRequest(400)、unauthorized(401)、forbidden(403)、itemNotFound(404)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
service_id |
路径 |
字符串 |
作为 UUID 的服务 ID。这在多单元部署中唯一标识服务。 |
status (可选) |
body |
字符串 |
服务状态。为 |
disabled_reason (可选) |
body |
字符串 |
禁用服务的理由。最小长度为 1,最大长度为 255。仅当 `status=disabled` 时才能请求此参数。 |
forced_down (可选) |
body |
布尔值 |
`forced_down` 是一个手动覆盖,用于告知 nova 该服务已由运维团队手动隔离(硬关机或断开网络连接)。这表明可以继续执行 `evacuate` 或 nova 为防止主机启动而设置的安全检查的其他操作。 警告 在完全隔离服务的情况下设置 `forced_down` 标志,可能会导致该主机上的 VM 数据损坏。 |
示例 禁用计算服务的调度 (v2.53)
{
"status": "disabled",
"disabled_reason": "maintenance"
}
示例 启用计算服务的调度 (v2.53)
{
"status": "enabled"
}
示例 更新 Forced Down (v2.53)
{
"forced_down": true
}
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
服务 |
body |
对象 |
表示计算服务的对象。 |
id |
body |
字符串 |
服务的 UUID 格式 ID。 |
binary |
body |
字符串 |
服务的二进制名称。 |
disabled_reason |
body |
字符串 |
禁用服务的理由。 |
host |
body |
字符串 |
主机的名称。 |
state |
body |
字符串 |
服务的状态。为 |
status |
body |
字符串 |
服务状态。为 |
updated_at |
body |
字符串 |
资源被更新的日期和时间。日期和时间戳格式为 ISO 8601。 CCYY-MM-DDThh:mm:ss±hh:mm
例如, |
zone |
body |
字符串 |
可用区名称。 |
forced_down |
body |
布尔值 |
此服务是否被管理员手动强制设置为关闭状态(在服务被隔离后)。此值对于了解第三方已确认服务应被标记为关闭状态很有用。 |
示例 禁用计算服务的调度 (v2.53)
{
"service": {
"id": "e81d66a4-ddd3-4aba-8a84-171d1cb4d339",
"binary": "nova-compute",
"disabled_reason": "maintenance",
"host": "host1",
"state": "up",
"status": "disabled",
"updated_at": "2012-10-29T13:42:05.000000",
"forced_down": false,
"zone": "nova"
}
}
示例 启用计算服务的调度 (v2.53)
{
"service": {
"id": "e81d66a4-ddd3-4aba-8a84-171d1cb4d339",
"binary": "nova-compute",
"disabled_reason": null,
"host": "host1",
"state": "up",
"status": "enabled",
"updated_at": "2012-10-29T13:42:05.000000",
"forced_down": false,
"zone": "nova"
}
}
示例 更新 Forced Down (v2.53)
{
"service": {
"id": "e81d66a4-ddd3-4aba-8a84-171d1cb4d339",
"binary": "nova-compute",
"disabled_reason": "test2",
"host": "host1",
"state": "down",
"status": "disabled",
"updated_at": "2012-10-29T13:42:05.000000",
"forced_down": true,
"zone": "nova"
}
}
删除服务。如果服务是 `nova-compute` 服务,则相应的宿主机也将从所有宿主机聚合中移除。
尝试删除仍托管实例的 `nova-compute` 服务将导致 409 HTTPConflict 响应。实例需要迁移或删除,然后才能删除计算服务。
同样,尝试删除正在进行迁移的 `nova-compute` 服务将导致 409 HTTPConflict 响应。迁移需要完成,例如确认或回滚调整大小,或者实例需要删除,然后才能删除计算服务。
重要提示
在删除此 API 对应的服务之前,请务必停止物理宿主机上的实际 `nova-compute` 进程。否则,正在运行的服务可能会重新创建孤立的 **compute_nodes** 表记录。
正常响应代码:204
错误响应代码:badRequest(400),unauthorized(401),forbidden(403),itemNotFound(404),conflict(409)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
service_id |
路径 |
整数 |
服务的 ID。 注意 这可能无法在多单元部署中唯一标识服务。 在版本 2.52 之前可用。 |
service_id |
路径 |
字符串 |
作为 UUID 的服务 ID。这在多单元部署中唯一标识服务。 新功能,版本 2.53 |
响应¶
如果成功,此方法不会在响应正文中返回内容。
使用情况报告 (os-simple-tenant-usage)¶
定期报告单个租户或所有租户的计算和存储资源使用情况统计信息。使用情况统计信息将包括在特定期间内所有实例的 CPU、内存和本地磁盘。
警告
`os-simple-tenant-usage` 将根据虚拟机 (VM) 中配置的最新实例类型报告使用情况统计信息,并忽略 VM 可能发生的停止、暂停和其他事件。因此,它使用 VM 在云环境中存在的时间来执行使用情况核算。
更多信息可在 http://eavesdrop.openstack.org/meetings/nova/2020/nova.2020-12-03-16.00.log.txt 和 https://review.opendev.org/c/openstack/nova/+/711113 中找到。
Microversion 2.40 通过可选的 `limit` 和 `marker` 查询参数增加了使用情况统计信息的(分页和 `next` 链接)。如果未提供 `limit`,则将使用可配置的 `max_limit`,其当前默认值为 1000。较旧的 microversions 将不接受这些新的分页查询参数,但它们将开始默默地限制为 `max_limit`。
/os-simple-tenant-usage?limit={limit}&marker={instance_uuid}
/os-simple-tenant-usage/{tenant_id}?limit={limit}&marker={instance_uuid}
注意
当实例数量超过 `limit` 时,租户的使用情况统计信息可能会跨越多个页面,API 消费者如果仍想获取特定时间窗口内所有实例的总数,按租户分组,则需要将聚合结果拼接起来。
列出所有租户的使用情况统计信息。
正常响应代码:200
错误响应代码:badRequest(400),unauthorized(401),forbidden(403)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
detailed (可选) |
查询 |
整数 |
指定 `detailed=1` 查询参数以获取详细信息(“server_usages”信息)。 |
end (可选) |
查询 |
字符串 |
计算和存储资源的使用情况统计数据的结束时间。日期和时间戳格式可以是以下任何一种: CCYY-MM-DDThh:mm:ss
例如,`2015-08-27T09:49:58`。 CCYY-MM-DDThh:mm:ss.NNNNNN
例如,`2015-08-27T09:49:58.123456`。 CCYY-MM-DD hh:mm:ss.NNNNNN
例如,`2015-08-27 09:49:58.123456`。如果省略此参数,则使用当前时间。 |
start (可选) |
查询 |
字符串 |
计算和存储资源的使用情况统计数据的开始时间。日期和时间戳格式可以是以下任何一种: CCYY-MM-DDThh:mm:ss
例如,`2015-08-27T09:49:58`。 CCYY-MM-DDThh:mm:ss.NNNNNN
例如,`2015-08-27T09:49:58.123456`。 CCYY-MM-DD hh:mm:ss.NNNNNN
例如,`2015-08-27 09:49:58.123456`。如果省略此参数,则使用当前时间。 |
limit (可选) |
查询 |
整数 |
请求项目数的分页大小。计算有限数量实例的使用情况。使用 `limit` 参数发出初始有限请求,并使用响应中的最后一次查看的实例 UUID 作为后续有限请求的 `marker` 参数值。 2.40 版本新增 |
marker (可选) |
查询 |
字符串 |
最后一次看到的项。使用 `limit` 参数发出初始有限请求,并使用响应中的最后一次查看的实例 UUID 作为后续有限请求的 `marker` 参数值。 2.40 版本新增 |
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
tenant_usages |
body |
数组 |
租户使用情况对象的列表。 |
start |
body |
字符串 |
计算和存储资源的使用情况统计数据的开始时间。日期和时间戳格式如下: CCYY-MM-DDThh:mm:ss.NNNNNN
例如,`2015-08-27T09:49:58.123456`。 |
停止 |
body |
字符串 |
计算和存储资源的使用情况统计数据的结束时间。日期和时间戳格式如下: CCYY-MM-DDThh:mm:ss.NNNNNN
例如,`2015-08-27T09:49:58.123456`。 |
tenant_id |
body |
字符串 |
多租户云中的租户 UUID。 |
total_hours |
body |
float |
服务器存在的总时长(小时)。 |
total_local_gb_usage |
body |
float |
将服务器磁盘大小(GiB)乘以服务器存在的时长,然后将每个服务器的这些值相加。 |
total_memory_mb_usage |
body |
float |
将服务器内存大小(MiB)乘以服务器存在的时长,然后将每个服务器的这些值相加。 |
total_vcpus_usage |
body |
float |
将服务器的虚拟 CPU 数量乘以服务器存在的时长,然后将每个服务器的这些值相加。 |
server_usages (可选) |
body |
数组 |
服务器使用情况对象的列表。 |
server_usages.ended_at (可选) |
body |
字符串 |
服务器删除的日期和时间。 日期和时间戳格式如下: CCYY-MM-DDThh:mm:ss.NNNNNN
例如,`2015-08-27T09:49:58.123456`。如果服务器尚未被删除,则其值为 `null`。 |
server_usages.flavor (可选) |
body |
字符串 |
风类的显示名称。 |
server_usages.hours (可选) |
body |
float |
服务器存在的时长(小时)。 |
server_usages.instance_id (可选) |
body |
字符串 |
服务器的 UUID。 |
server_usages.local_gb (可选) |
body |
整数 |
服务器的根磁盘大小与其临时磁盘大小的总和(GiB)。 |
server_usages.memory_mb (可选) |
body |
整数 |
服务器的内存大小(MiB)。 |
server_usages.name (可选) |
body |
字符串 |
服务器名称。 |
server_usages.started_at (可选) |
body |
字符串 |
服务器启动的日期和时间。 日期和时间戳格式如下: CCYY-MM-DDThh:mm:ss.NNNNNN
例如,`2015-08-27T09:49:58.123456`。 |
server_usages.state (可选) |
body |
字符串 |
VM 状态。 |
server_usages.tenant_id (可选) |
body |
字符串 |
多租户云中的租户 UUID。 |
server_usages.uptime (可选) |
body |
整数 |
服务器的正常运行时间。 |
server_usages.vcpus (可选) |
body |
整数 |
服务器使用的虚拟 CPU 数量。 |
tenant_usages_links (可选) |
body |
数组 |
与使用情况相关的链接。有关更多信息,请参阅 API 指南 / 链接和引用。 2.40 版本新增 |
示例 列出所有租户的使用情况 (v2.40):JSON 响应
如果未指定 `detailed` 查询参数或其设置为 1 以外的值(例如 `detailed=0`),则响应如下:
{
"tenant_usages": [
{
"start": "2012-10-08T21:10:44.587336",
"stop": "2012-10-08T22:10:44.587336",
"tenant_id": "6f70656e737461636b20342065766572",
"total_hours": 1.0,
"total_local_gb_usage": 1.0,
"total_memory_mb_usage": 512.0,
"total_vcpus_usage": 1.0
}
],
"tenant_usages_links": [
{
"href": "http://openstack.example.com/v2.1/6f70656e737461636b20342065766572/os-simple-tenant-usage?end=2016-10-12+18%3A22%3A04.868106&limit=1&marker=1f1deceb-17b5-4c04-84c7-e0d4499c8fe0&start=2016-10-12+18%3A22%3A04.868106",
"rel": "next"
}
]
}
如果 `detailed` 查询参数设置为 1(`detailed=1`),则响应包括每个租户的 `server_usages` 信息。响应如下:
{
"tenant_usages": [
{
"start": "2012-10-08T20:10:44.587336",
"stop": "2012-10-08T21:10:44.587336",
"tenant_id": "6f70656e737461636b20342065766572",
"total_hours": 1.0,
"total_local_gb_usage": 1.0,
"total_memory_mb_usage": 512.0,
"total_vcpus_usage": 1.0,
"server_usages": [
{
"ended_at": null,
"flavor": "m1.tiny",
"hours": 1.0,
"instance_id": "1f1deceb-17b5-4c04-84c7-e0d4499c8fe0",
"local_gb": 1,
"memory_mb": 512,
"name": "instance-2",
"started_at": "2012-10-08T20:10:44.541277",
"state": "active",
"tenant_id": "6f70656e737461636b20342065766572",
"uptime": 3600,
"vcpus": 1
}
]
}
],
"tenant_usages_links": [
{
"href": "http://openstack.example.com/v2.1/6f70656e737461636b20342065766572/os-simple-tenant-usage?detailed=1&end=2016-10-12+18%3A22%3A04.868106&limit=1&marker=1f1deceb-17b5-4c04-84c7-e0d4499c8fe0&start=2016-10-12+18%3A22%3A04.868106",
"rel": "next"
}
]
}
显示租户的使用情况统计信息。
正常响应代码:200
错误响应代码:badRequest(400),unauthorized(401),forbidden(403)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
tenant_id |
路径 |
字符串 |
多租户云中的租户 UUID。 |
end (可选) |
查询 |
字符串 |
计算和存储资源的使用情况统计数据的结束时间。日期和时间戳格式可以是以下任何一种: CCYY-MM-DDThh:mm:ss
例如,`2015-08-27T09:49:58`。 CCYY-MM-DDThh:mm:ss.NNNNNN
例如,`2015-08-27T09:49:58.123456`。 CCYY-MM-DD hh:mm:ss.NNNNNN
例如,`2015-08-27 09:49:58.123456`。如果省略此参数,则使用当前时间。 |
start (可选) |
查询 |
字符串 |
计算和存储资源的使用情况统计数据的开始时间。日期和时间戳格式可以是以下任何一种: CCYY-MM-DDThh:mm:ss
例如,`2015-08-27T09:49:58`。 CCYY-MM-DDThh:mm:ss.NNNNNN
例如,`2015-08-27T09:49:58.123456`。 CCYY-MM-DD hh:mm:ss.NNNNNN
例如,`2015-08-27 09:49:58.123456`。如果省略此参数,则使用当前时间。 |
limit (可选) |
查询 |
整数 |
请求项目数的分页大小。计算有限数量实例的使用情况。使用 `limit` 参数发出初始有限请求,并使用响应中的最后一次查看的实例 UUID 作为后续有限请求的 `marker` 参数值。 2.40 版本新增 |
marker (可选) |
查询 |
字符串 |
最后一次看到的项。使用 `limit` 参数发出初始有限请求,并使用响应中的最后一次查看的实例 UUID 作为后续有限请求的 `marker` 参数值。 2.40 版本新增 |
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
tenant_usage |
body |
对象 |
租户使用情况对象。 |
server_usages |
body |
数组 |
服务器使用情况对象的列表。 |
server_usages.ended_at |
body |
字符串 |
服务器删除的日期和时间。 日期和时间戳格式如下: CCYY-MM-DDThh:mm:ss.NNNNNN
例如,`2015-08-27T09:49:58.123456`。如果服务器尚未被删除,则其值为 `null`。 |
server_usages.flavor |
body |
字符串 |
风类的显示名称。 |
server_usages.hours |
body |
float |
服务器存在的时长(小时)。 |
server_usages.instance_id |
body |
字符串 |
服务器的 UUID。 |
server_usages.local_gb |
body |
整数 |
服务器的根磁盘大小与其临时磁盘大小的总和(GiB)。 |
server_usages.memory_mb |
body |
整数 |
服务器的内存大小(MiB)。 |
server_usages.name |
body |
字符串 |
服务器名称。 |
server_usages.started_at |
body |
字符串 |
服务器启动的日期和时间。 日期和时间戳格式如下: CCYY-MM-DDThh:mm:ss.NNNNNN
例如,`2015-08-27T09:49:58.123456`。 |
server_usages.state |
body |
字符串 |
VM 状态。 |
server_usages.tenant_id |
body |
字符串 |
多租户云中的租户 UUID。 |
server_usages.uptime |
body |
整数 |
服务器的正常运行时间。 |
server_usages.vcpus |
body |
整数 |
服务器使用的虚拟 CPU 数量。 |
start |
body |
字符串 |
计算和存储资源的使用情况统计数据的开始时间。日期和时间戳格式如下: CCYY-MM-DDThh:mm:ss.NNNNNN
例如,`2015-08-27T09:49:58.123456`。 |
停止 |
body |
字符串 |
计算和存储资源的使用情况统计数据的结束时间。日期和时间戳格式如下: CCYY-MM-DDThh:mm:ss.NNNNNN
例如,`2015-08-27T09:49:58.123456`。 |
tenant_id |
body |
字符串 |
多租户云中的租户 UUID。 |
total_hours |
body |
float |
服务器存在的总时长(小时)。 |
total_local_gb_usage |
body |
float |
将服务器磁盘大小(GiB)乘以服务器存在的时长,然后将每个服务器的这些值相加。 |
total_memory_mb_usage |
body |
float |
将服务器内存大小(MiB)乘以服务器存在的时长,然后将每个服务器的这些值相加。 |
total_vcpus_usage |
body |
float |
将服务器的虚拟 CPU 数量乘以服务器存在的时长,然后将每个服务器的这些值相加。 |
tenant_usage_links (可选) |
body |
数组 |
与使用情况相关的链接。有关更多信息,请参阅 API 指南 / 链接和引用。 2.40 版本新增 |
示例 显示租户的使用情况详情 (v2.40):JSON 响应
{
"tenant_usage": {
"server_usages": [
{
"ended_at": null,
"flavor": "m1.tiny",
"hours": 1.0,
"instance_id": "1f1deceb-17b5-4c04-84c7-e0d4499c8fe0",
"local_gb": 1,
"memory_mb": 512,
"name": "instance-2",
"started_at": "2012-10-08T20:10:44.541277",
"state": "active",
"tenant_id": "6f70656e737461636b20342065766572",
"uptime": 3600,
"vcpus": 1
}
],
"start": "2012-10-08T20:10:44.587336",
"stop": "2012-10-08T21:10:44.587336",
"tenant_id": "6f70656e737461636b20342065766572",
"total_hours": 1.0,
"total_local_gb_usage": 1.0,
"total_memory_mb_usage": 512.0,
"total_vcpus_usage": 1.0
},
"tenant_usage_links": [
{
"href": "http://openstack.example.com/v2.1/6f70656e737461636b20342065766572/os-simple-tenant-usage/6f70656e737461636b20342065766572?end=2016-10-12+18%3A22%3A04.868106&limit=1&marker=1f1deceb-17b5-4c04-84c7-e0d4499c8fe0&start=2016-10-12+18%3A22%3A04.868106",
"rel": "next"
}
]
}
创建外部事件 (os-server-external-events)¶
警告
这是一个仅限 `admin` 级别的服务 API,专门供其他 OpenStack 服务使用。此 API 的目的是协调 Nova 与 Neutron、Nova 与 Cinder、Nova 与 Ironic(以及未来可能的其他服务)之间需要双方参与的活动,例如网络热插拔。
除非您正在编写 Neutron、Cinder 或 Ironic 代码,否则**不应**使用此 API。
创建一项或多项外部事件。API 将每个事件分派给服务器实例。
创建一项或多项外部事件,API 将这些事件分派给服务器分配到的主机。如果服务器当前未分配给任何主机,则事件将不会被传递。
您将收到提交的事件列表,其中包含更新的 `code` 和 `status`,指示它们的成功级别。
正常响应代码:200, 207
如果所有事件都成功,将返回 200;如果有任何事件未能处理,将返回 207。事件的 `code` 属性将进一步解释出了什么问题。
错误响应代码:badRequest(400),unauthorized(401),forbidden(403)
注意
在修复 bug 1855752 之前,当所有事件都失败时,可能会错误地返回 404 错误响应代码。
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
events |
body |
数组 |
要处理的外部事件列表。 |
name |
body |
字符串 |
事件名称。有效值为:
|
server_uuid |
body |
字符串 |
API 将事件分派到的服务器实例的 UUID。您必须将此实例分配给一个主机。否则,此调用不会将事件分派给实例。 |
status (可选) |
body |
字符串 |
事件状态。有效值为 `failed`、`completed` 或 `in-progress`。默认为 `completed`。 |
tag (可选) |
body |
字符串 |
用于标识事件的字符串值。某些类型的事件需要特定的标签:
|
示例 运行事件
{
"events": [
{
"name": "test-event",
"tag": "foo",
"status": "completed",
"server_uuid": "3df201cf-2451-44f2-8d25-a4ca826fc1f3"
}
]
}
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
events |
body |
数组 |
要处理的外部事件列表。 |
code |
body |
字符串 |
事件的 HTTP 响应代码。当前使用的代码包括:
|
name |
body |
字符串 |
事件名称。有效值为:
|
server_uuid |
body |
字符串 |
API 将事件分派到的服务器实例的 UUID。您必须将此实例分配给一个主机。否则,此调用不会将事件分派给实例。 |
status (可选) |
body |
字符串 |
事件状态。有效值为 `failed`、`completed` 或 `in-progress`。默认为 `completed`。 |
tag (可选) |
body |
字符串 |
用于标识事件的字符串值。某些类型的事件需要特定的标签:
|
示例 运行事件
{
"events": [
{
"code": 200,
"name": "network-changed",
"server_uuid": "ff1df7b2-6772-45fd-9326-c0a3b05591c2",
"status": "completed",
"tag": "foo"
}
]
}
服务器拓扑 (servers, topology)¶
显示服务器的 NUMA 拓扑信息。
版本 2.78 中添加。
显示服务器的 NUMA 拓扑信息。
策略默认允许只有管理员角色的用户或服务器所有者执行此操作。云提供商可以通过 `policy.json` 文件更改这些权限。
正常响应代码:200
错误响应代码:unauthorized(401), notfound(404), forbidden(403)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
server_id |
路径 |
字符串 |
服务器的 UUID。 |
响应¶
下面列出了所有响应字段。如果某些信息不可用或策略不允许,则响应中将不存在相应的键值。
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
nodes |
body |
数组 |
服务器的 NUMA 节点信息。 |
nodes.cpu_pinning (可选) |
body |
dict |
服务器核心到宿主机物理 CPU 的映射。例如: cpu_pinning: { 0: 0, 1: 5}
这意味着 vcpu 0 映射到物理 CPU 0,vcpu 1 映射到物理 CPU 5。 默认情况下,`cpu_pinning` 字段仅对管理员角色的用户可见。您可以通过策略规则更改默认行为: compute:server:topology:host:index
|
nodes.vcpu_set |
body |
列表 |
分配给此 NUMA 节点的虚拟 CPU 的 ID 列表。 |
nodes.siblings |
body |
列表 |
宿主机 CPU 线程同位体的映射。例如: siblings: [[0,1],[2,3]]
这意味着 vcpu 0 和 vcpu 1 属于同一个 CPU 核心,vcpu 2、vcpu 3 属于另一个 CPU 核心。 默认情况下,`siblings` 字段仅对管理员角色的用户可见。您可以通过策略规则更改默认行为: compute:server:topology:host:index
|
nodes.memory_mb |
body |
整数 |
分配给此 NUMA 节点的内存量,单位为 MB。 |
pagesize_kb |
body |
整数 |
服务器的页大小(KB)。如果页大小信息不可用,则此字段为 `null`。 默认情况下,`host_node` 字段仅对管理员角色的用户可见。您可以通过策略规则更改默认行为: compute:server:topology:host:index
|
pagesize_kb |
body |
整数 |
服务器的页大小(KB)。此字段为 `null`,如果页大小信息不可用。 |
示例 服务器拓扑 (2.xx)
{
"nodes": [
{
"cpu_pinning": {
"0": 0,
"1": 5
},
"host_node": 0,
"memory_mb": 1024,
"siblings": [
[
0,
1
]
],
"vcpu_set": [
0,
1
]
},
{
"cpu_pinning": {
"2": 1,
"3": 8
},
"host_node": 1,
"memory_mb": 2048,
"siblings": [
[
2,
3
]
],
"vcpu_set": [
2,
3
]
}
],
"pagesize_kb": 4
}
内部服务 API¶
警告
下面的 Nova API 用于与 OpenStack 服务通信。这些 API 不应由任何用户使用,因为它们可能导致部署或资源处于非预期状态。
辅助卷快照 (os-assisted-volume-snapshots)¶
通过模拟器/虚拟机监控器创建和删除快照。仅支持 qcow2 文件格式。
此 API 仅由 libvirt 计算驱动程序实现。
缺乏存储(如 NFS)的内部快照可以使用模拟器/虚拟机监控器添加快照功能。这用于通过在这些卷上将数据存储为 qcow2 文件来启用 NFS 等后端的卷快照。
此 API 仅由 Cinder 调用,Cinder 使用它来为扩展 remotefs Cinder 驱动程序的驱动程序创建快照。
创建辅助卷快照。
正常响应代码:200
错误响应代码:badRequest(400),unauthorized(401),forbidden(403)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
snapshot |
body |
对象 |
用于创建快照的快照的局部表示。 |
volume_id |
body |
字符串 |
源卷 ID。 |
create_info |
body |
对象 |
快照创建信息。 |
create_info.snapshot_id |
body |
字符串 |
快照的 UUID。 |
create_info.type |
body |
字符串 |
快照类型。有效值为 |
create_info.new_file |
body |
字符串 |
块存储创建的 qcow2 文件名,它将成为 VM 的活动镜像。 |
create_info.id (可选) |
body |
字符串 |
这是一个任意字符串,会返回给用户。 |
示例:创建辅助卷快照:JSON 请求
{
"snapshot": {
"volume_id": "521752a6-acf6-4b2d-bc7a-119f9148cd8c",
"create_info": {
"snapshot_id": "421752a6-acf6-4b2d-bc7a-119f9148cd8c",
"type": "qcow2",
"new_file": "new_file_name",
"id": "421752a6-acf6-4b2d-bc7a-119f9148cd8c"
}
}
}
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
snapshot |
body |
对象 |
用于创建快照的快照的局部表示。 |
id |
body |
字符串 |
它与请求体中发送的任意字符串相同。 注意 此字符串按原样返回给用户,并且不会在 Nova 内部使用。因此,请使用 |
volumeId |
body |
字符串 |
源卷 ID。 |
示例:创建辅助卷快照:JSON 响应
{
"snapshot": {
"id": "421752a6-acf6-4b2d-bc7a-119f9148cd8c",
"volumeId": "521752a6-acf6-4b2d-bc7a-119f9148cd8c"
}
}
删除辅助卷快照。
要发出此请求,请将 delete_info 查询参数添加到 URI,如下所示:
DELETE /os-assisted-volume-snapshots/421752a6-acf6-4b2d-bc7a-119f9148cd8c?delete_info=’{“volume_id”: “521752a6-acf6-4b2d-bc7a-119f9148cd8c”}’
正常响应代码:204
错误响应代码:badRequest(400)、unauthorized(401)、forbidden(403)、itemNotFound(404)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
snapshot_id |
路径 |
字符串 |
快照的 UUID。 |
delete_info |
查询 |
字符串 |
快照删除信息。包括关联卷的 ID。例如: DELETE /os-assisted-volume-snapshots/421752a6-acf6-4b2d-bc7a-119f9148cd8c?delete_info='{"volume_id": "521752a6-acf6-4b2d-bc7a-119f9148cd8c"}'
|
响应¶
成功的 DELETE 查询没有响应正文内容
更新(“交换”)服务器卷附件 (servers, os-volume_attachments)¶
更新(“交换”)服务器卷附件,这意味着交换附加到服务器的卷。
更新卷附件。
注意
此操作仅在服务器处于 ACTIVE、PAUSED 和 RESIZED 状态时有效,否则将返回冲突(409)错误。
重要提示
更新 `volumeId` 时,此 API **必须**仅作为块存储服务通过 `os-retype` 或 `os-migrate_volume` 操作发起的更大范围的卷迁移操作的一部分。Nova 不支持直接使用此 API,并将阻止它并返回 409 冲突。此外,只有 特定的计算驱动程序 才实现了通过此 API 更新 `volumeId`。
不支持使用具有多个读/写附件的卷来更新(通常称为“交换”)卷附件。
正常响应代码:202
错误响应代码:badRequest(400),unauthorized(401),forbidden(403),itemNotFound(404),conflict(409)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
server_id |
路径 |
字符串 |
服务器的 UUID。 |
volume_id |
路径 |
字符串 |
要替换的卷的 UUID。 |
volumeAttachment |
body |
对象 |
卷附件的字典表示,包含 |
volumeId |
body |
字符串 |
要附加的卷的 UUID,以替换已附加的卷。 |
示例 更新卷附件:JSON 请求
{
"volumeAttachment": {
"volumeId": "227cc671-f30b-4488-96fd-7d0bf13648d8"
}
}
响应¶
成功请求时没有返回正文。
创建外部事件 (os-server-external-events)¶
警告
这是一个仅限 `admin` 级别的服务 API,专门供其他 OpenStack 服务使用。此 API 的目的是协调 Nova 与 Neutron、Nova 与 Cinder、Nova 与 Ironic(以及未来可能的其他服务)之间需要双方参与的活动,例如网络热插拔。
除非您正在编写 Neutron、Cinder 或 Ironic 代码,否则**不应**使用此 API。
创建一项或多项外部事件。API 将每个事件分派给服务器实例。
创建一项或多项外部事件,API 将这些事件分派给服务器分配到的主机。如果服务器当前未分配给任何主机,则事件将不会被传递。
您将收到提交的事件列表,其中包含更新的 `code` 和 `status`,指示它们的成功级别。
正常响应代码:200, 207
如果所有事件都成功,将返回 200;如果有任何事件未能处理,将返回 207。事件的 `code` 属性将进一步解释出了什么问题。
错误响应代码:badRequest(400),unauthorized(401),forbidden(403)
注意
在修复 bug 1855752 之前,当所有事件都失败时,可能会错误地返回 404 错误响应代码。
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
events |
body |
数组 |
要处理的外部事件列表。 |
name |
body |
字符串 |
事件名称。有效值为:
|
server_uuid |
body |
字符串 |
API 将事件分派到的服务器实例的 UUID。您必须将此实例分配给一个主机。否则,此调用不会将事件分派给实例。 |
status (可选) |
body |
字符串 |
事件状态。有效值为 `failed`、`completed` 或 `in-progress`。默认为 `completed`。 |
tag (可选) |
body |
字符串 |
用于标识事件的字符串值。某些类型的事件需要特定的标签:
|
示例 运行事件
{
"events": [
{
"name": "test-event",
"tag": "foo",
"status": "completed",
"server_uuid": "3df201cf-2451-44f2-8d25-a4ca826fc1f3"
}
]
}
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
events |
body |
数组 |
要处理的外部事件列表。 |
code |
body |
字符串 |
事件的 HTTP 响应代码。当前使用的代码包括:
|
name |
body |
字符串 |
事件名称。有效值为:
|
server_uuid |
body |
字符串 |
API 将事件分派到的服务器实例的 UUID。您必须将此实例分配给一个主机。否则,此调用不会将事件分派给实例。 |
status (可选) |
body |
字符串 |
事件状态。有效值为 `failed`、`completed` 或 `in-progress`。默认为 `completed`。 |
tag (可选) |
body |
字符串 |
用于标识事件的字符串值。某些类型的事件需要特定的标签:
|
示例 运行事件
{
"events": [
{
"code": 200,
"name": "network-changed",
"server_uuid": "ff1df7b2-6772-45fd-9326-c0a3b05591c2",
"status": "completed",
"tag": "foo"
}
]
}
已弃用 API¶
本节包含已弃用且通常仅限于某些最大 microversion 的 API 的参考。
扩展 (extensions) (已弃用)¶
列出可用扩展,并通过别名显示扩展信息。
Nova 最初支持 API 扩展的概念,它允许 Nova 的实现通过扩展来更改 API(添加新资源或向现有资源对象添加属性)。为了向用户展示特定云支持的内容,extensions 资源提供了扩展列表和每个扩展的详细信息。最终结果是 API 的不必要差异化,这要求所有 OpenStack 云的用户编写特定代码才能与每个云进行交互。
因此,整个扩展概念已被弃用,并将在不久的将来删除。
列出 API 的所有扩展。
正常响应代码:200
错误响应代码:unauthorized(401)
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
extensions |
body |
数组 |
`extension` 对象的列表。 |
name |
body |
字符串 |
扩展的名称。 |
alias |
body |
字符串 |
此扩展也称为其简称。 |
links |
body |
数组 |
与此扩展相关的链接。这是一个字典列表,每个字典包含 `href` 和 `rel` 键。 |
namespace |
body |
字符串 |
指向此扩展命名空间的 URL。 |
description |
body |
字符串 |
描述此扩展用途的文本。 |
updated |
body |
字符串 |
资源被更新的日期和时间。日期和时间戳格式为 ISO 8601。 CCYY-MM-DDThh:mm:ss±hh:mm
例如, |
示例 列出扩展
列出 API 的所有扩展。
{
"extensions": [
{
"alias": "NMN",
"description": "Multiple network support.",
"links": [],
"name": "Multinic",
"namespace": "https://docs.openstack.org/compute/ext/fake_xml",
"updated": "2014-12-03T00:00:00Z"
},
{
"alias": "OS-DCF",
"description": "Disk Management Extension.",
"links": [],
"name": "DiskConfig",
"namespace": "https://docs.openstack.org/compute/ext/fake_xml",
"updated": "2014-12-03T00:00:00Z"
},
{
"alias": "OS-EXT-AZ",
"description": "Extended Availability Zone support.",
"links": [],
"name": "ExtendedAvailabilityZone",
"namespace": "https://docs.openstack.org/compute/ext/fake_xml",
"updated": "2014-12-03T00:00:00Z"
},
{
"alias": "OS-EXT-IMG-SIZE",
"description": "Adds image size to image listings.",
"links": [],
"name": "ImageSize",
"namespace": "https://docs.openstack.org/compute/ext/fake_xml",
"updated": "2014-12-03T00:00:00Z"
},
{
"alias": "OS-EXT-IPS",
"description": "Adds type parameter to the ip list.",
"links": [],
"name": "ExtendedIps",
"namespace": "https://docs.openstack.org/compute/ext/fake_xml",
"updated": "2014-12-03T00:00:00Z"
},
{
"alias": "OS-EXT-IPS-MAC",
"description": "Adds mac address parameter to the ip list.",
"links": [],
"name": "ExtendedIpsMac",
"namespace": "https://docs.openstack.org/compute/ext/fake_xml",
"updated": "2014-12-03T00:00:00Z"
},
{
"alias": "OS-EXT-SRV-ATTR",
"description": "Extended Server Attributes support.",
"links": [],
"name": "ExtendedServerAttributes",
"namespace": "https://docs.openstack.org/compute/ext/fake_xml",
"updated": "2014-12-03T00:00:00Z"
},
{
"alias": "OS-EXT-STS",
"description": "Extended Status support.",
"links": [],
"name": "ExtendedStatus",
"namespace": "https://docs.openstack.org/compute/ext/fake_xml",
"updated": "2014-12-03T00:00:00Z"
},
{
"alias": "OS-FLV-DISABLED",
"description": "Support to show the disabled status of a flavor.",
"links": [],
"name": "FlavorDisabled",
"namespace": "https://docs.openstack.org/compute/ext/fake_xml",
"updated": "2014-12-03T00:00:00Z"
},
{
"alias": "OS-FLV-EXT-DATA",
"description": "Provide additional data for flavors.",
"links": [],
"name": "FlavorExtraData",
"namespace": "https://docs.openstack.org/compute/ext/fake_xml",
"updated": "2014-12-03T00:00:00Z"
},
{
"alias": "OS-SCH-HNT",
"description": "Pass arbitrary key/value pairs to the scheduler.",
"links": [],
"name": "SchedulerHints",
"namespace": "https://docs.openstack.org/compute/ext/fake_xml",
"updated": "2014-12-03T00:00:00Z"
},
{
"alias": "OS-SRV-USG",
"description": "Adds launched_at and terminated_at on Servers.",
"links": [],
"name": "ServerUsage",
"namespace": "https://docs.openstack.org/compute/ext/fake_xml",
"updated": "2014-12-03T00:00:00Z"
},
{
"alias": "os-access-ips",
"description": "Access IPs support.",
"links": [],
"name": "AccessIPs",
"namespace": "https://docs.openstack.org/compute/ext/fake_xml",
"updated": "2014-12-03T00:00:00Z"
},
{
"alias": "os-admin-actions",
"description": "Enable admin-only server actions\n\n Actions include: resetNetwork, injectNetworkInfo, os-resetState\n ",
"links": [],
"name": "AdminActions",
"namespace": "https://docs.openstack.org/compute/ext/fake_xml",
"updated": "2014-12-03T00:00:00Z"
},
{
"alias": "os-admin-password",
"description": "Admin password management support.",
"links": [],
"name": "AdminPassword",
"namespace": "https://docs.openstack.org/compute/ext/fake_xml",
"updated": "2014-12-03T00:00:00Z"
},
{
"alias": "os-agents",
"description": "Agents support.",
"links": [],
"name": "Agents",
"namespace": "https://docs.openstack.org/compute/ext/fake_xml",
"updated": "2014-12-03T00:00:00Z"
},
{
"alias": "os-aggregates",
"description": "Admin-only aggregate administration.",
"links": [],
"name": "Aggregates",
"namespace": "https://docs.openstack.org/compute/ext/fake_xml",
"updated": "2014-12-03T00:00:00Z"
},
{
"alias": "os-assisted-volume-snapshots",
"description": "Assisted volume snapshots.",
"links": [],
"name": "AssistedVolumeSnapshots",
"namespace": "https://docs.openstack.org/compute/ext/fake_xml",
"updated": "2014-12-03T00:00:00Z"
},
{
"alias": "os-attach-interfaces",
"description": "Attach interface support.",
"links": [],
"name": "AttachInterfaces",
"namespace": "https://docs.openstack.org/compute/ext/fake_xml",
"updated": "2014-12-03T00:00:00Z"
},
{
"alias": "os-availability-zone",
"description": "1. Add availability_zone to the Create Server API.\n 2. Add availability zones describing.\n ",
"links": [],
"name": "AvailabilityZone",
"namespace": "https://docs.openstack.org/compute/ext/fake_xml",
"updated": "2014-12-03T00:00:00Z"
},
{
"alias": "os-baremetal-ext-status",
"description": "Add extended status in Baremetal Nodes v2 API.",
"links": [],
"name": "BareMetalExtStatus",
"namespace": "https://docs.openstack.org/compute/ext/fake_xml",
"updated": "2014-12-03T00:00:00Z"
},
{
"alias": "os-baremetal-nodes",
"description": "Admin-only bare-metal node administration.",
"links": [],
"name": "BareMetalNodes",
"namespace": "https://docs.openstack.org/compute/ext/fake_xml",
"updated": "2014-12-03T00:00:00Z"
},
{
"alias": "os-block-device-mapping",
"description": "Block device mapping boot support.",
"links": [],
"name": "BlockDeviceMapping",
"namespace": "https://docs.openstack.org/compute/ext/fake_xml",
"updated": "2014-12-03T00:00:00Z"
},
{
"alias": "os-block-device-mapping-v2-boot",
"description": "Allow boot with the new BDM data format.",
"links": [],
"name": "BlockDeviceMappingV2Boot",
"namespace": "https://docs.openstack.org/compute/ext/fake_xml",
"updated": "2014-12-03T00:00:00Z"
},
{
"alias": "os-cell-capacities",
"description": "Adding functionality to get cell capacities.",
"links": [],
"name": "CellCapacities",
"namespace": "https://docs.openstack.org/compute/ext/fake_xml",
"updated": "2014-12-03T00:00:00Z"
},
{
"alias": "os-cells",
"description": "Enables cells-related functionality such as adding neighbor cells,\n listing neighbor cells, and getting the capabilities of the local cell.\n ",
"links": [],
"name": "Cells",
"namespace": "https://docs.openstack.org/compute/ext/fake_xml",
"updated": "2014-12-03T00:00:00Z"
},
{
"alias": "os-certificates",
"description": "Certificates support.",
"links": [],
"name": "Certificates",
"namespace": "https://docs.openstack.org/compute/ext/fake_xml",
"updated": "2014-12-03T00:00:00Z"
},
{
"alias": "os-cloudpipe",
"description": "Adds actions to create cloudpipe instances.\n\n When running with the Vlan network mode, you need a mechanism to route\n from the public Internet to your vlans. This mechanism is known as a\n cloudpipe.\n\n At the time of creating this class, only OpenVPN is supported. Support for\n a SSH Bastion host is forthcoming.\n ",
"links": [],
"name": "Cloudpipe",
"namespace": "https://docs.openstack.org/compute/ext/fake_xml",
"updated": "2014-12-03T00:00:00Z"
},
{
"alias": "os-cloudpipe-update",
"description": "Adds the ability to set the vpn ip/port for cloudpipe instances.",
"links": [],
"name": "CloudpipeUpdate",
"namespace": "https://docs.openstack.org/compute/ext/fake_xml",
"updated": "2014-12-03T00:00:00Z"
},
{
"alias": "os-config-drive",
"description": "Config Drive Extension.",
"links": [],
"name": "ConfigDrive",
"namespace": "https://docs.openstack.org/compute/ext/fake_xml",
"updated": "2014-12-03T00:00:00Z"
},
{
"alias": "os-console-auth-tokens",
"description": "Console token authentication support.",
"links": [],
"name": "ConsoleAuthTokens",
"namespace": "https://docs.openstack.org/compute/ext/fake_xml",
"updated": "2014-12-03T00:00:00Z"
},
{
"alias": "os-console-output",
"description": "Console log output support, with tailing ability.",
"links": [],
"name": "ConsoleOutput",
"namespace": "https://docs.openstack.org/compute/ext/fake_xml",
"updated": "2014-12-03T00:00:00Z"
},
{
"alias": "os-consoles",
"description": "Interactive Console support.",
"links": [],
"name": "Consoles",
"namespace": "https://docs.openstack.org/compute/ext/fake_xml",
"updated": "2014-12-03T00:00:00Z"
},
{
"alias": "os-create-backup",
"description": "Create a backup of a server.",
"links": [],
"name": "CreateBackup",
"namespace": "https://docs.openstack.org/compute/ext/fake_xml",
"updated": "2014-12-03T00:00:00Z"
},
{
"alias": "os-create-server-ext",
"description": "Extended support to the Create Server v1.1 API.",
"links": [],
"name": "Createserverext",
"namespace": "https://docs.openstack.org/compute/ext/fake_xml",
"updated": "2014-12-03T00:00:00Z"
},
{
"alias": "os-deferred-delete",
"description": "Instance deferred delete.",
"links": [],
"name": "DeferredDelete",
"namespace": "https://docs.openstack.org/compute/ext/fake_xml",
"updated": "2014-12-03T00:00:00Z"
},
{
"alias": "os-evacuate",
"description": "Enables server evacuation.",
"links": [],
"name": "Evacuate",
"namespace": "https://docs.openstack.org/compute/ext/fake_xml",
"updated": "2014-12-03T00:00:00Z"
},
{
"alias": "os-extended-evacuate-find-host",
"description": "Enables server evacuation without target host. Scheduler will select one to target.",
"links": [],
"name": "ExtendedEvacuateFindHost",
"namespace": "https://docs.openstack.org/compute/ext/fake_xml",
"updated": "2014-12-03T00:00:00Z"
},
{
"alias": "os-extended-floating-ips",
"description": "Adds optional fixed_address to the add floating IP command.",
"links": [],
"name": "ExtendedFloatingIps",
"namespace": "https://docs.openstack.org/compute/ext/fake_xml",
"updated": "2014-12-03T00:00:00Z"
},
{
"alias": "os-extended-hypervisors",
"description": "Extended hypervisors support.",
"links": [],
"name": "ExtendedHypervisors",
"namespace": "https://docs.openstack.org/compute/ext/fake_xml",
"updated": "2014-12-03T00:00:00Z"
},
{
"alias": "os-extended-networks",
"description": "Adds additional fields to networks.",
"links": [],
"name": "ExtendedNetworks",
"namespace": "https://docs.openstack.org/compute/ext/fake_xml",
"updated": "2014-12-03T00:00:00Z"
},
{
"alias": "os-extended-quotas",
"description": "Adds ability for admins to delete quota and optionally force the update Quota command.",
"links": [],
"name": "ExtendedQuotas",
"namespace": "https://docs.openstack.org/compute/ext/fake_xml",
"updated": "2014-12-03T00:00:00Z"
},
{
"alias": "os-extended-rescue-with-image",
"description": "Allow the user to specify the image to use for rescue.",
"links": [],
"name": "ExtendedRescueWithImage",
"namespace": "https://docs.openstack.org/compute/ext/fake_xml",
"updated": "2014-12-03T00:00:00Z"
},
{
"alias": "os-extended-services",
"description": "Extended services support.",
"links": [],
"name": "ExtendedServices",
"namespace": "https://docs.openstack.org/compute/ext/fake_xml",
"updated": "2014-12-03T00:00:00Z"
},
{
"alias": "os-extended-services-delete",
"description": "Extended services deletion support.",
"links": [],
"name": "ExtendedServicesDelete",
"namespace": "https://docs.openstack.org/compute/ext/fake_xml",
"updated": "2014-12-03T00:00:00Z"
},
{
"alias": "os-extended-status",
"description": "Extended Status support.",
"links": [],
"name": "ExtendedStatus",
"namespace": "https://docs.openstack.org/compute/ext/fake_xml",
"updated": "2014-12-03T00:00:00Z"
},
{
"alias": "os-extended-volumes",
"description": "Extended Volumes support.",
"links": [],
"name": "ExtendedVolumes",
"namespace": "https://docs.openstack.org/compute/ext/fake_xml",
"updated": "2014-12-03T00:00:00Z"
},
{
"alias": "os-fixed-ips",
"description": "Fixed IPs support.",
"links": [],
"name": "FixedIPs",
"namespace": "https://docs.openstack.org/compute/ext/fake_xml",
"updated": "2014-12-03T00:00:00Z"
},
{
"alias": "os-flavor-access",
"description": "Flavor access support.",
"links": [],
"name": "FlavorAccess",
"namespace": "https://docs.openstack.org/compute/ext/fake_xml",
"updated": "2014-12-03T00:00:00Z"
},
{
"alias": "os-flavor-extra-specs",
"description": "Flavors extra specs support.",
"links": [],
"name": "FlavorExtraSpecs",
"namespace": "https://docs.openstack.org/compute/ext/fake_xml",
"updated": "2014-12-03T00:00:00Z"
},
{
"alias": "os-flavor-manage",
"description": "Flavor create/delete API support.",
"links": [],
"name": "FlavorManage",
"namespace": "https://docs.openstack.org/compute/ext/fake_xml",
"updated": "2014-12-03T00:00:00Z"
},
{
"alias": "os-flavor-rxtx",
"description": "Support to show the rxtx status of a flavor.",
"links": [],
"name": "FlavorRxtx",
"namespace": "https://docs.openstack.org/compute/ext/fake_xml",
"updated": "2014-12-03T00:00:00Z"
},
{
"alias": "os-flavor-swap",
"description": "Support to show the swap status of a flavor.",
"links": [],
"name": "FlavorSwap",
"namespace": "https://docs.openstack.org/compute/ext/fake_xml",
"updated": "2014-12-03T00:00:00Z"
},
{
"alias": "os-floating-ip-dns",
"description": "Floating IP DNS support.",
"links": [],
"name": "FloatingIpDns",
"namespace": "https://docs.openstack.org/compute/ext/fake_xml",
"updated": "2014-12-03T00:00:00Z"
},
{
"alias": "os-floating-ip-pools",
"description": "Floating IPs support.",
"links": [],
"name": "FloatingIpPools",
"namespace": "https://docs.openstack.org/compute/ext/fake_xml",
"updated": "2014-12-03T00:00:00Z"
},
{
"alias": "os-floating-ips",
"description": "Floating IPs support.",
"links": [],
"name": "FloatingIps",
"namespace": "https://docs.openstack.org/compute/ext/fake_xml",
"updated": "2014-12-03T00:00:00Z"
},
{
"alias": "os-floating-ips-bulk",
"description": "Bulk handling of Floating IPs.",
"links": [],
"name": "FloatingIpsBulk",
"namespace": "https://docs.openstack.org/compute/ext/fake_xml",
"updated": "2014-12-03T00:00:00Z"
},
{
"alias": "os-fping",
"description": "Fping Management Extension.",
"links": [],
"name": "Fping",
"namespace": "https://docs.openstack.org/compute/ext/fake_xml",
"updated": "2014-12-03T00:00:00Z"
},
{
"alias": "os-hide-server-addresses",
"description": "Support hiding server addresses in certain states.",
"links": [],
"name": "HideServerAddresses",
"namespace": "https://docs.openstack.org/compute/ext/fake_xml",
"updated": "2014-12-03T00:00:00Z"
},
{
"alias": "os-hosts",
"description": "Admin-only host administration.",
"links": [],
"name": "Hosts",
"namespace": "https://docs.openstack.org/compute/ext/fake_xml",
"updated": "2014-12-03T00:00:00Z"
},
{
"alias": "os-hypervisor-status",
"description": "Show hypervisor status.",
"links": [],
"name": "HypervisorStatus",
"namespace": "https://docs.openstack.org/compute/ext/fake_xml",
"updated": "2014-12-03T00:00:00Z"
},
{
"alias": "os-hypervisors",
"description": "Admin-only hypervisor administration.",
"links": [],
"name": "Hypervisors",
"namespace": "https://docs.openstack.org/compute/ext/fake_xml",
"updated": "2014-12-03T00:00:00Z"
},
{
"alias": "os-instance-actions",
"description": "View a log of actions and events taken on an instance.",
"links": [],
"name": "InstanceActions",
"namespace": "https://docs.openstack.org/compute/ext/fake_xml",
"updated": "2014-12-03T00:00:00Z"
},
{
"alias": "os-instance_usage_audit_log",
"description": "Admin-only Task Log Monitoring.",
"links": [],
"name": "OSInstanceUsageAuditLog",
"namespace": "https://docs.openstack.org/compute/ext/fake_xml",
"updated": "2014-12-03T00:00:00Z"
},
{
"alias": "os-keypairs",
"description": "Keypair Support.",
"links": [],
"name": "Keypairs",
"namespace": "https://docs.openstack.org/compute/ext/fake_xml",
"updated": "2014-12-03T00:00:00Z"
},
{
"alias": "os-lock-server",
"description": "Enable lock/unlock server actions.",
"links": [],
"name": "LockServer",
"namespace": "https://docs.openstack.org/compute/ext/fake_xml",
"updated": "2014-12-03T00:00:00Z"
},
{
"alias": "os-migrate-server",
"description": "Enable migrate and live-migrate server actions.",
"links": [],
"name": "MigrateServer",
"namespace": "https://docs.openstack.org/compute/ext/fake_xml",
"updated": "2014-12-03T00:00:00Z"
},
{
"alias": "os-migrations",
"description": "Provide data on migrations.",
"links": [],
"name": "Migrations",
"namespace": "https://docs.openstack.org/compute/ext/fake_xml",
"updated": "2014-12-03T00:00:00Z"
},
{
"alias": "os-multiple-create",
"description": "Allow multiple create in the Create Server v2.1 API.",
"links": [],
"name": "MultipleCreate",
"namespace": "https://docs.openstack.org/compute/ext/fake_xml",
"updated": "2014-12-03T00:00:00Z"
},
{
"alias": "os-networks",
"description": "Admin-only Network Management Extension.",
"links": [],
"name": "Networks",
"namespace": "https://docs.openstack.org/compute/ext/fake_xml",
"updated": "2014-12-03T00:00:00Z"
},
{
"alias": "os-networks-associate",
"description": "Network association support.",
"links": [],
"name": "NetworkAssociationSupport",
"namespace": "https://docs.openstack.org/compute/ext/fake_xml",
"updated": "2014-12-03T00:00:00Z"
},
{
"alias": "os-pause-server",
"description": "Enable pause/unpause server actions.",
"links": [],
"name": "PauseServer",
"namespace": "https://docs.openstack.org/compute/ext/fake_xml",
"updated": "2014-12-03T00:00:00Z"
},
{
"alias": "os-personality",
"description": "Personality support.",
"links": [],
"name": "Personality",
"namespace": "https://docs.openstack.org/compute/ext/fake_xml",
"updated": "2014-12-03T00:00:00Z"
},
{
"alias": "os-preserve-ephemeral-rebuild",
"description": "Allow preservation of the ephemeral partition on rebuild.",
"links": [],
"name": "PreserveEphemeralOnRebuild",
"namespace": "https://docs.openstack.org/compute/ext/fake_xml",
"updated": "2014-12-03T00:00:00Z"
},
{
"alias": "os-quota-class-sets",
"description": "Quota classes management support.",
"links": [],
"name": "QuotaClasses",
"namespace": "https://docs.openstack.org/compute/ext/fake_xml",
"updated": "2014-12-03T00:00:00Z"
},
{
"alias": "os-quota-sets",
"description": "Quotas management support.",
"links": [],
"name": "Quotas",
"namespace": "https://docs.openstack.org/compute/ext/fake_xml",
"updated": "2014-12-03T00:00:00Z"
},
{
"alias": "os-rescue",
"description": "Instance rescue mode.",
"links": [],
"name": "Rescue",
"namespace": "https://docs.openstack.org/compute/ext/fake_xml",
"updated": "2014-12-03T00:00:00Z"
},
{
"alias": "os-security-group-default-rules",
"description": "Default rules for security group support.",
"links": [],
"name": "SecurityGroupDefaultRules",
"namespace": "https://docs.openstack.org/compute/ext/fake_xml",
"updated": "2014-12-03T00:00:00Z"
},
{
"alias": "os-security-groups",
"description": "Security group support.",
"links": [],
"name": "SecurityGroups",
"namespace": "https://docs.openstack.org/compute/ext/fake_xml",
"updated": "2014-12-03T00:00:00Z"
},
{
"alias": "os-server-diagnostics",
"description": "Allow Admins to view server diagnostics through server action.",
"links": [],
"name": "ServerDiagnostics",
"namespace": "https://docs.openstack.org/compute/ext/fake_xml",
"updated": "2014-12-03T00:00:00Z"
},
{
"alias": "os-server-external-events",
"description": "Server External Event Triggers.",
"links": [],
"name": "ServerExternalEvents",
"namespace": "https://docs.openstack.org/compute/ext/fake_xml",
"updated": "2014-12-03T00:00:00Z"
},
{
"alias": "os-server-group-quotas",
"description": "Adds quota support to server groups.",
"links": [],
"name": "ServerGroupQuotas",
"namespace": "https://docs.openstack.org/compute/ext/fake_xml",
"updated": "2014-12-03T00:00:00Z"
},
{
"alias": "os-server-groups",
"description": "Server group support.",
"links": [],
"name": "ServerGroups",
"namespace": "https://docs.openstack.org/compute/ext/fake_xml",
"updated": "2014-12-03T00:00:00Z"
},
{
"alias": "os-server-list-multi-status",
"description": "Allow to filter the servers by a set of status values.",
"links": [],
"name": "ServerListMultiStatus",
"namespace": "https://docs.openstack.org/compute/ext/fake_xml",
"updated": "2014-12-03T00:00:00Z"
},
{
"alias": "os-server-password",
"description": "Server password support.",
"links": [],
"name": "ServerPassword",
"namespace": "https://docs.openstack.org/compute/ext/fake_xml",
"updated": "2014-12-03T00:00:00Z"
},
{
"alias": "os-server-sort-keys",
"description": "Add sorting support in get Server v2 API.",
"links": [],
"name": "ServerSortKeys",
"namespace": "https://docs.openstack.org/compute/ext/fake_xml",
"updated": "2014-12-03T00:00:00Z"
},
{
"alias": "os-server-start-stop",
"description": "Start/Stop instance compute API support.",
"links": [],
"name": "ServerStartStop",
"namespace": "https://docs.openstack.org/compute/ext/fake_xml",
"updated": "2014-12-03T00:00:00Z"
},
{
"alias": "os-services",
"description": "Services support.",
"links": [],
"name": "Services",
"namespace": "https://docs.openstack.org/compute/ext/fake_xml",
"updated": "2014-12-03T00:00:00Z"
},
{
"alias": "os-shelve",
"description": "Instance shelve mode.",
"links": [],
"name": "Shelve",
"namespace": "https://docs.openstack.org/compute/ext/fake_xml",
"updated": "2014-12-03T00:00:00Z"
},
{
"alias": "os-simple-tenant-usage",
"description": "Simple tenant usage extension.",
"links": [],
"name": "SimpleTenantUsage",
"namespace": "https://docs.openstack.org/compute/ext/fake_xml",
"updated": "2014-12-03T00:00:00Z"
},
{
"alias": "os-suspend-server",
"description": "Enable suspend/resume server actions.",
"links": [],
"name": "SuspendServer",
"namespace": "https://docs.openstack.org/compute/ext/fake_xml",
"updated": "2014-12-03T00:00:00Z"
},
{
"alias": "os-tenant-networks",
"description": "Tenant-based Network Management Extension.",
"links": [],
"name": "OSTenantNetworks",
"namespace": "https://docs.openstack.org/compute/ext/fake_xml",
"updated": "2014-12-03T00:00:00Z"
},
{
"alias": "os-used-limits",
"description": "Provide data on limited resources that are being used.",
"links": [],
"name": "UsedLimits",
"namespace": "https://docs.openstack.org/compute/ext/fake_xml",
"updated": "2014-12-03T00:00:00Z"
},
{
"alias": "os-used-limits-for-admin",
"description": "Provide data to admin on limited resources used by other tenants.",
"links": [],
"name": "UsedLimitsForAdmin",
"namespace": "https://docs.openstack.org/compute/ext/fake_xml",
"updated": "2014-12-03T00:00:00Z"
},
{
"alias": "os-user-data",
"description": "Add user_data to the Create Server API.",
"links": [],
"name": "UserData",
"namespace": "https://docs.openstack.org/compute/ext/fake_xml",
"updated": "2014-12-03T00:00:00Z"
},
{
"alias": "os-user-quotas",
"description": "Project user quota support.",
"links": [],
"name": "UserQuotas",
"namespace": "https://docs.openstack.org/compute/ext/fake_xml",
"updated": "2014-12-03T00:00:00Z"
},
{
"alias": "os-virtual-interfaces",
"description": "Virtual interface support.",
"links": [],
"name": "VirtualInterfaces",
"namespace": "https://docs.openstack.org/compute/ext/fake_xml",
"updated": "2014-12-03T00:00:00Z"
},
{
"alias": "os-volume-attachment-update",
"description": "Support for updating a volume attachment.",
"links": [],
"name": "VolumeAttachmentUpdate",
"namespace": "https://docs.openstack.org/compute/ext/fake_xml",
"updated": "2014-12-03T00:00:00Z"
},
{
"alias": "os-volumes",
"description": "Volumes support.",
"links": [],
"name": "Volumes",
"namespace": "https://docs.openstack.org/compute/ext/fake_xml",
"updated": "2014-12-03T00:00:00Z"
}
]
}
通过别名显示扩展的详细信息。
正常响应代码:200
错误响应代码:unauthorized(401), itemNotFound(404)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
alias |
body |
字符串 |
此扩展也称为其简称。 |
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
extension |
body |
对象 |
一个 `extension` 对象。 |
name |
body |
字符串 |
扩展的名称。 |
alias |
body |
字符串 |
此扩展也称为其简称。 |
links |
body |
数组 |
与此扩展相关的链接。这是一个字典列表,每个字典包含 `href` 和 `rel` 键。 |
namespace |
body |
字符串 |
指向此扩展命名空间的 URL。 |
description |
body |
字符串 |
描述此扩展用途的文本。 |
updated |
body |
字符串 |
资源被更新的日期和时间。日期和时间戳格式为 ISO 8601。 CCYY-MM-DDThh:mm:ss±hh:mm
例如, |
示例 显示扩展详情
显示 `os-agents` 扩展的详细信息。
{
"extension": {
"alias": "os-agents",
"description": "Agents support.",
"links": [],
"name": "Agents",
"namespace": "https://docs.openstack.org/compute/ext/fake_xml",
"updated": "2014-12-03T00:00:00Z"
}
}
网络 (os-networks) (已弃用)¶
警告
此 API 设计用于与 `nova-network` 一起使用,`nova-network` 在 14.0.0 (Newton) 版本中已弃用,并在 21.0.0 (Ussuri) 版本中删除。一些功能在适当时会代理到网络服务 (neutron),但与所有翻译代理一样,这远非完美的兼容性。在新的应用程序中应避免使用这些 API,而应 直接使用 neutron。从 microversion 2.36 开始,这些 API 将会返回 404。它们在 21.0.0 (Ussuri) 版本中被删除。
创建、列出、显示网络信息和删除网络。
将网络添加到项目,将网络与项目解除关联,以及将项目与网络解除关联。
将宿主机与网络关联以及将宿主机与网络解除关联。
列出项目的网络。
策略默认允许所有用户执行此操作。云提供商可以通过 `policy.json` 文件更改这些权限。
正常响应代码:200
错误响应代码:未授权(401)、禁止(403)
响应¶
示例 列出网络:JSON 响应
{
"networks": [
{
"bridge": null,
"bridge_interface": null,
"broadcast": null,
"cidr": null,
"cidr_v6": null,
"created_at": null,
"deleted": null,
"deleted_at": null,
"dhcp_server": null,
"dhcp_start": null,
"dns1": null,
"dns2": null,
"enable_dhcp": null,
"gateway": null,
"gateway_v6": null,
"host": null,
"id": "20c8acc0-f747-4d71-a389-46d078ebf047",
"injected": null,
"label": "private",
"mtu": null,
"multi_host": null,
"netmask": null,
"netmask_v6": null,
"priority": null,
"project_id": null,
"rxtx_base": null,
"share_address": null,
"updated_at": null,
"vlan": null,
"vpn_private_address": null,
"vpn_public_address": null,
"vpn_public_port": null
}
]
}
创建网络。
策略默认仅允许拥有管理员角色或网络所有权的用户执行此操作。云提供商可以通过 `policy.json` 文件更改这些权限。
正常响应代码:200
错误响应代码:badRequest(400), unauthorized(401), forbidden(403), conflict(409), gone(410), notImplemented(501)
请求¶
示例 创建网络:JSON 请求
{
"network": {
"label": "new net 111",
"cidr": "10.20.105.0/24",
"mtu": 9000,
"dhcp_server": "10.20.105.2",
"enable_dhcp": false,
"share_address": true,
"allowed_start": "10.20.105.10",
"allowed_end": "10.20.105.200"
}
}
响应¶
示例 创建网络:JSON 响应
{
"network": {
"bridge": null,
"bridge_interface": null,
"broadcast": "10.20.105.255",
"cidr": "10.20.105.0/24",
"cidr_v6": null,
"created_at": null,
"deleted": null,
"deleted_at": null,
"dhcp_server": "10.20.105.2",
"dhcp_start": "10.20.105.2",
"dns1": null,
"dns2": null,
"enable_dhcp": false,
"gateway": "10.20.105.1",
"gateway_v6": null,
"host": null,
"id": "d7a17c0c-457e-4ab4-a99c-4fa1762f5359",
"injected": null,
"label": "new net 111",
"mtu": 9000,
"multi_host": null,
"netmask": "255.255.255.0",
"netmask_v6": null,
"priority": null,
"project_id": null,
"rxtx_base": null,
"share_address": true,
"updated_at": null,
"vlan": null,
"vpn_private_address": null,
"vpn_public_address": null,
"vpn_public_port": null
}
}
将网络添加到项目。
策略默认仅允许具有管理员角色的用户执行此操作。云提供商可以通过 policy.json 文件更改这些权限。
正常响应代码:202
错误响应代码:badRequest(400), unauthorized(401), forbidden(403), gone(410), notImplemented(501)
请求¶
示例 添加网络:JSON 请求
{
"id": "1"
}
响应¶
显示网络的详细信息。
策略默认允许所有用户执行此操作。云提供商可以通过 `policy.json` 文件更改这些权限。
正常响应代码:200
错误响应代码:unauthorized(401)、forbidden(403)、itemNotFound(404)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
network_id |
路径 |
字符串 |
网络的 UUID。 |
响应¶
示例 显示网络详情:JSON 响应
{
"network": {
"bridge": null,
"bridge_interface": null,
"broadcast": null,
"cidr": null,
"cidr_v6": null,
"created_at": null,
"deleted": null,
"deleted_at": null,
"dhcp_server": null,
"dhcp_start": null,
"dns1": null,
"dns2": null,
"enable_dhcp": null,
"gateway": null,
"gateway_v6": null,
"host": null,
"id": "20c8acc0-f747-4d71-a389-46d078ebf047",
"injected": null,
"label": "private",
"mtu": null,
"multi_host": null,
"netmask": null,
"netmask_v6": null,
"priority": null,
"project_id": null,
"rxtx_base": null,
"share_address": null,
"updated_at": null,
"vlan": null,
"vpn_private_address": null,
"vpn_public_address": null,
"vpn_public_port": null
}
}
删除网络。
策略默认仅允许拥有管理员角色或网络所有权的用户执行此操作。云提供商可以通过 `policy.json` 文件更改这些权限。
正常响应代码:202
错误响应代码:unauthorized(401), forbidden(403), itemNotFound(404), conflict(409), gone(410)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
network_id |
路径 |
字符串 |
网络的 UUID。 |
响应¶
成功 DELETE 查询的响应没有正文内容。
将网络与宿主机关联。
在请求体中指定 `associate_host` 操作。
策略默认仅允许拥有管理员角色或网络所有权的用户执行此操作。云提供商可以通过 `policy.json` 文件更改这些权限。
正常响应代码:202
错误响应代码:unauthorized(401), forbidden(403), itemNotFound(404), gone(410), notImplemented(501)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
network_id |
路径 |
字符串 |
网络的 UUID。 |
associate_host |
body |
字符串 |
要关联的宿主机名称。 |
示例 将宿主机关联到网络:JSON 请求
{
"associate_host": "testHost"
}
响应¶
成功 POST 查询的响应没有正文内容。
将网络与项目解除关联。然后您可以重新使用该网络。
在请求体中指定 `disassociate` 操作。
策略默认仅允许拥有管理员角色或网络所有权的用户执行此操作。云提供商可以通过 `policy.json` 文件更改这些权限。
正常响应代码:202
错误响应代码:unauthorized(401), forbidden(403), itemNotFound(404), gone(410), notImplemented(501)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
network_id |
路径 |
字符串 |
网络的 UUID。 |
示例 取消关联网络:JSON 请求
{
"disassociate": null
}
响应¶
成功 POST 查询的响应没有正文内容。
将宿主机与网络解除关联。
在请求体中指定 `disassociate_host` 操作。
策略默认仅允许拥有管理员角色或网络所有权的用户执行此操作。云提供商可以通过 `policy.json` 文件更改这些权限。
正常响应代码:202
错误响应代码:unauthorized(401), forbidden(403), itemNotFound(404), gone(410), notImplemented(501)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
network_id |
路径 |
字符串 |
网络的 UUID。 |
示例 将宿主机与网络解除关联:JSON 请求
{
"disassociate_host": null
}
响应¶
成功 POST 查询的响应没有正文内容。
将项目与网络解除关联。
在请求体中指定 `disassociate_project` 操作。
策略默认仅允许拥有管理员角色或网络所有权的用户执行此操作。云提供商可以通过 `policy.json` 文件更改这些权限。
正常响应代码:202
错误响应代码:unauthorized(401), forbidden(403), itemNotFound(404), gone(410), notImplemented(501)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
network_id |
路径 |
字符串 |
网络的 UUID。 |
示例 将项目与网络解除关联:JSON 请求
{
"disassociate_project": null
}
响应¶
成功 POST 查询的响应没有正文内容。
卷扩展 (os-volumes, os-snapshots) (已弃用)¶
警告
这些 API 是对卷服务的代理调用。Nova 已弃用所有代理 API,用户应改用原生 API。从 microversion 2.36 开始,除图像元数据 API 外,所有卷服务代理 API 都将返回 404。请参阅:相关卷 API。
管理与计算 API 一起使用的卷和快照。列出、显示详细信息、创建和删除卷和快照。
列出与账户关联的卷。
正常响应代码:200
错误响应代码:未授权(401)、禁止(403)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
limit (可选) |
查询 |
整数 |
与 |
offset (可选) |
查询 |
整数 |
与 |
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
volumes |
body |
数组 |
`volume` 对象的列表。 |
attachments |
body |
数组 |
卷挂载列表。 |
attachments.device (可选) |
body |
字符串 |
挂载对象中的设备名称,例如 |
attachments.id (可选) |
body |
字符串 |
附件的 UUID。 |
attachments.serverId (可选) |
body |
字符串 |
服务器的 UUID。 |
attachments.volumeId (可选) |
body |
字符串 |
已挂载卷的 UUID。 |
availabilityZone |
body |
字符串 |
可用区名称。 |
createdAt |
body |
字符串 |
资源被创建的日期和时间。日期和时间戳格式为 ISO 8601。 CCYY-MM-DDThh:mm:ss±hh:mm
例如, |
displayDescription |
body |
字符串 |
卷描述。 |
displayName |
body |
字符串 |
卷名称。 |
id |
body |
字符串 |
卷的 UUID。 |
metadata |
body |
对象 |
元数据键值对。每个元数据键值对的最大大小为 255 字节。 |
size |
body |
整数 |
卷的大小,以 gibibytes (GiB) 为单位。 |
snapshotId |
body |
字符串 |
快照的 UUID。 |
status |
body |
字符串 |
卷的状态。 |
volumeType |
body |
字符串 |
卷类型的名称或唯一标识符。 |
示例 列出卷
{
"volumes": [
{
"attachments": [
{
"device": "/",
"id": "a26887c6-c47b-4654-abb5-dfadf7d3f803",
"serverId": "3912f2b4-c5ba-4aec-9165-872876fe202e",
"volumeId": "a26887c6-c47b-4654-abb5-dfadf7d3f803"
}
],
"availabilityZone": "dublin",
"createdAt": "2013-02-19T20:01:40.274897",
"displayDescription": "Volume Description",
"displayName": "Volume Name",
"id": "a26887c6-c47b-4654-abb5-dfadf7d3f803",
"metadata": {},
"size": 100,
"snapshotId": null,
"status": "in-use",
"volumeType": "vol_type_name"
}
]
}
创建一个新卷。
正常响应代码:200
错误响应代码:badRequest(400)、unauthorized(401)、forbidden(403)、itemNotFound(404)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
volume |
body |
对象 |
`volume` 对象。 |
size |
body |
整数 |
卷的大小,以 gibibytes (GiB) 为单位。 |
availability_zone (可选) |
body |
字符串 |
可用区名称。 |
display_name(可选) |
body |
字符串 |
卷名称。 |
display_description (可选) |
body |
字符串 |
卷描述。 |
metadata (可选) |
body |
对象 |
元数据键值对。每个元数据键和值的最大大小为 255 字节。 |
volume_type (可选) |
body |
字符串 |
卷类型的唯一标识符。 |
snapshot_id (可选) |
body |
字符串 |
快照的 UUID。 |
示例 创建卷
{
"volume": {
"availability_zone": "dublin",
"display_name": "Volume Name",
"display_description": "Volume Description",
"size": 100
}
}
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
volume |
body |
对象 |
`volume` 对象。 |
attachments |
body |
数组 |
卷挂载列表。 |
attachments.device (可选) |
body |
字符串 |
挂载对象中的设备名称,例如 |
attachments.id (可选) |
body |
字符串 |
附件的 UUID。 |
attachments.serverId (可选) |
body |
字符串 |
服务器的 UUID。 |
attachments.volumeId (可选) |
body |
字符串 |
已挂载卷的 UUID。 |
availabilityZone |
body |
字符串 |
可用区名称。 |
createdAt |
body |
字符串 |
资源被创建的日期和时间。日期和时间戳格式为 ISO 8601。 CCYY-MM-DDThh:mm:ss±hh:mm
例如, |
displayName |
body |
字符串 |
卷名称。 |
displayDescription |
body |
字符串 |
卷描述。 |
id |
body |
字符串 |
卷的 UUID。 |
metadata |
body |
对象 |
元数据键值对。每个元数据键值对的最大大小为 255 字节。 |
size |
body |
整数 |
卷的大小,以 gibibytes (GiB) 为单位。 |
snapshotId |
body |
字符串 |
快照的 UUID。 |
status |
body |
字符串 |
卷的状态。 |
volumeType |
body |
字符串 |
卷类型的名称或唯一标识符。 |
示例 创建卷
{
"volume": {
"attachments": [
{
"device": "/",
"id": "a26887c6-c47b-4654-abb5-dfadf7d3f803",
"serverId": "3912f2b4-c5ba-4aec-9165-872876fe202e",
"volumeId": "a26887c6-c47b-4654-abb5-dfadf7d3f803"
}
],
"availabilityZone": "dublin",
"createdAt": "2013-02-18T14:51:17.970024",
"displayDescription": "Volume Description",
"displayName": "Volume Name",
"id": "a26887c6-c47b-4654-abb5-dfadf7d3f803",
"metadata": {},
"size": 100,
"snapshotId": null,
"status": "in-use",
"volumeType": "vol_type_name"
}
}
列出所有卷及其详细信息。
正常响应代码:200
错误响应代码:未授权(401)、禁止(403)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
limit (可选) |
查询 |
整数 |
与 |
offset (可选) |
查询 |
整数 |
与 |
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
volumes |
body |
数组 |
`volume` 对象的列表。 |
attachments |
body |
数组 |
卷挂载列表。 |
attachments.device (可选) |
body |
字符串 |
挂载对象中的设备名称,例如 |
attachments.id (可选) |
body |
字符串 |
附件的 UUID。 |
attachments.serverId (可选) |
body |
字符串 |
服务器的 UUID。 |
attachments.volumeId (可选) |
body |
字符串 |
已挂载卷的 UUID。 |
availabilityZone |
body |
字符串 |
可用区名称。 |
createdAt |
body |
字符串 |
资源被创建的日期和时间。日期和时间戳格式为 ISO 8601。 CCYY-MM-DDThh:mm:ss±hh:mm
例如, |
displayName |
body |
字符串 |
卷名称。 |
displayDescription |
body |
字符串 |
卷描述。 |
id |
body |
字符串 |
卷的 UUID。 |
metadata |
body |
对象 |
元数据键值对。每个元数据键值对的最大大小为 255 字节。 |
size |
body |
整数 |
卷的大小,以 gibibytes (GiB) 为单位。 |
snapshotId |
body |
字符串 |
快照的 UUID。 |
status |
body |
字符串 |
卷的状态。 |
volumeType |
body |
字符串 |
卷类型的名称或唯一标识符。 |
示例 列出带详情的卷
{
"volumes": [
{
"attachments": [
{
"device": "/",
"id": "a26887c6-c47b-4654-abb5-dfadf7d3f803",
"serverId": "3912f2b4-c5ba-4aec-9165-872876fe202e",
"volumeId": "a26887c6-c47b-4654-abb5-dfadf7d3f803"
}
],
"availabilityZone": "dublin",
"createdAt": "1999-01-01T01:01:01.000000",
"displayDescription": "Volume Description",
"displayName": "Volume Name",
"id": "a26887c6-c47b-4654-abb5-dfadf7d3f803",
"metadata": {},
"size": 100,
"snapshotId": null,
"status": "in-use",
"volumeType": "vol_type_name"
}
]
}
显示给定卷的详细信息。
正常响应代码:200
错误响应代码:unauthorized(401)、forbidden(403)、itemNotFound(404)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
volume_id |
路径 |
字符串 |
卷的唯一 ID。 |
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
volume |
body |
对象 |
`volume` 对象。 |
attachments |
body |
数组 |
卷挂载列表。 |
attachment.device (可选) |
body |
字符串 |
挂载对象中的设备名称,例如 |
attachments.id (可选) |
body |
字符串 |
附件的 UUID。 |
attachments.serverId (可选) |
body |
字符串 |
服务器的 UUID。 |
attachments.volumeId (可选) |
body |
字符串 |
已挂载卷的 UUID。 |
availabilityZone |
body |
字符串 |
可用区名称。 |
createdAt |
body |
字符串 |
资源被创建的日期和时间。日期和时间戳格式为 ISO 8601。 CCYY-MM-DDThh:mm:ss±hh:mm
例如, |
displayName |
body |
字符串 |
卷名称。 |
displayDescription |
body |
字符串 |
卷描述。 |
id |
body |
字符串 |
卷的 UUID。 |
metadata |
body |
对象 |
元数据键值对。每个元数据键值对的最大大小为 255 字节。 |
size |
body |
整数 |
卷的大小,以 gibibytes (GiB) 为单位。 |
snapshotId |
body |
字符串 |
快照的 UUID。 |
status |
body |
字符串 |
卷的状态。 |
volumeType |
body |
字符串 |
卷类型的名称或唯一标识符。 |
示例 显示卷详情
{
"volume": {
"attachments": [
{
"device": "/",
"id": "a26887c6-c47b-4654-abb5-dfadf7d3f803",
"serverId": "3912f2b4-c5ba-4aec-9165-872876fe202e",
"volumeId": "a26887c6-c47b-4654-abb5-dfadf7d3f803"
}
],
"availabilityZone": "dublin",
"createdAt": "2013-02-18T14:51:18.528085",
"displayDescription": "Volume Description",
"displayName": "Volume Name",
"id": "a26887c6-c47b-4654-abb5-dfadf7d3f803",
"metadata": {},
"size": 100,
"snapshotId": null,
"status": "in-use",
"volumeType": "vol_type_name"
}
}
删除卷。
正常响应代码:202
错误响应代码:unauthorized(401)、forbidden(403)、itemNotFound(404)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
volume_id |
路径 |
字符串 |
卷的唯一 ID。 |
响应¶
成功的 DELETE 查询没有响应正文内容
列出快照。
正常响应代码:200
错误响应代码:未授权(401)、禁止(403)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
limit (可选) |
查询 |
整数 |
与 |
offset (可选) |
查询 |
整数 |
与 |
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
快照 |
body |
数组 |
快照对象的列表。 |
id |
body |
字符串 |
快照的 UUID。 |
createdAt |
body |
字符串 |
资源被创建的日期和时间。日期和时间戳格式为 ISO 8601。 CCYY-MM-DDThh:mm:ss±hh:mm
例如, |
displayName |
body |
字符串 |
快照名称。 |
displayDescription |
body |
字符串 |
快照描述。 |
size |
body |
整数 |
卷的大小,以 gibibytes (GiB) 为单位。 |
status |
body |
字符串 |
快照的状态。有效状态值是:
|
volumeId |
body |
字符串 |
源卷 ID。 |
示例 列出快照
{
"snapshots": [
{
"createdAt": "2025-06-12T14:56:28.865898",
"displayDescription": "Default description",
"displayName": "Default name",
"id": "f3ddb3ee-7fed-4237-ac25-1d4d8c0fb127",
"size": 100,
"status": "available",
"volumeId": "4fe5b5eb-694e-4ead-ba98-ecffc6ff1d21"
},
{
"createdAt": "2025-06-12T14:56:28.865915",
"displayDescription": "Default description",
"displayName": "Default name",
"id": "d018c6d5-0a75-4001-aef2-9f9df82feb6e",
"size": 100,
"status": "available",
"volumeId": "4fe5b5eb-694e-4ead-ba98-ecffc6ff1d21"
},
{
"createdAt": "2025-06-12T14:56:28.865925",
"displayDescription": "Default description",
"displayName": "Default name",
"id": "df0a2535-bab9-4bec-b03b-656f741b1c45",
"size": 100,
"status": "available",
"volumeId": "4fe5b5eb-694e-4ead-ba98-ecffc6ff1d21"
}
]
}
创建一个新快照。
正常响应代码:200
错误响应代码:badRequest(400),unauthorized(401),forbidden(403)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
snapshot |
body |
对象 |
用于创建快照的快照的局部表示。 |
volume_id |
body |
字符串 |
源卷 ID。 |
display_description (可选) |
body |
字符串 |
快照描述。 |
display_name(可选) |
body |
字符串 |
快照名称。 |
force (可选) |
body |
布尔值 |
指示是否创建快照,即使卷已附加。 |
示例 创建快照
{
"snapshot": {
"display_name": "snap-001",
"display_description": "Daily backup",
"volume_id": "521752a6-acf6-4b2d-bc7a-119f9148cd8c",
"force": false
}
}
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
snapshot |
body |
对象 |
用于创建快照的快照的局部表示。 |
id |
body |
字符串 |
快照的 UUID。 |
createdAt |
body |
字符串 |
资源被创建的日期和时间。日期和时间戳格式为 ISO 8601。 CCYY-MM-DDThh:mm:ss±hh:mm
例如, |
displayName |
body |
字符串 |
快照名称。 |
displayDescription |
body |
字符串 |
快照描述。 |
volumeId |
body |
字符串 |
源卷 ID。 |
size |
body |
整数 |
卷的大小,以 gibibytes (GiB) 为单位。 |
status |
body |
字符串 |
快照的状态。有效状态值是:
|
示例 创建快照
{
"snapshot": {
"createdAt": "2025-06-12T14:56:30.215430",
"displayDescription": "Daily backup",
"displayName": "snap-001",
"id": "fe06e9f2-e6b0-47d1-a63e-c0a15ad51994",
"size": 100,
"status": "available",
"volumeId": "521752a6-acf6-4b2d-bc7a-119f9148cd8c"
}
}
列出所有快照及其详细信息。
正常响应代码:200
错误响应代码:未授权(401)、禁止(403)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
limit (可选) |
查询 |
整数 |
与 |
offset (可选) |
查询 |
整数 |
与 |
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
快照 |
body |
数组 |
快照对象的列表。 |
id |
body |
字符串 |
快照的 UUID。 |
createdAt |
body |
字符串 |
资源被创建的日期和时间。日期和时间戳格式为 ISO 8601。 CCYY-MM-DDThh:mm:ss±hh:mm
例如, |
displayName |
body |
字符串 |
快照名称。 |
displayDescription |
body |
字符串 |
快照描述。 |
volumeId |
body |
字符串 |
源卷 ID。 |
size |
body |
整数 |
卷的大小,以 gibibytes (GiB) 为单位。 |
status |
body |
字符串 |
快照的状态。有效状态值是:
|
示例 列出带详情的快照
{
"snapshots": [
{
"createdAt": "2025-06-12T14:56:30.070910",
"displayDescription": "Default description",
"displayName": "Default name",
"id": "02d9627d-9e4d-42d7-aff2-3b23a0caf990",
"size": 100,
"status": "available",
"volumeId": "a41718ce-4f74-46cf-acb4-6ebfc435ad6e"
},
{
"createdAt": "2025-06-12T14:56:30.070925",
"displayDescription": "Default description",
"displayName": "Default name",
"id": "9780ef6b-6820-478b-8d01-c972e683a8aa",
"size": 100,
"status": "available",
"volumeId": "a41718ce-4f74-46cf-acb4-6ebfc435ad6e"
},
{
"createdAt": "2025-06-12T14:56:30.070934",
"displayDescription": "Default description",
"displayName": "Default name",
"id": "29b0f3f1-6cd7-4c65-b431-882cf54f158c",
"size": 100,
"status": "available",
"volumeId": "a41718ce-4f74-46cf-acb4-6ebfc435ad6e"
}
]
}
显示给定快照的详细信息。
正常响应代码:200
错误响应代码:unauthorized(401)、forbidden(403)、itemNotFound(404)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
snapshot_id |
路径 |
字符串 |
快照的 UUID。 |
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
snapshot |
body |
对象 |
用于创建快照的快照的局部表示。 |
id |
body |
字符串 |
快照的 UUID。 |
createdAt |
body |
字符串 |
资源被创建的日期和时间。日期和时间戳格式为 ISO 8601。 CCYY-MM-DDThh:mm:ss±hh:mm
例如, |
displayName |
body |
字符串 |
快照名称。 |
displayDescription |
body |
字符串 |
快照描述。 |
volumeId |
body |
字符串 |
源卷 ID。 |
size |
body |
整数 |
卷的大小,以 gibibytes (GiB) 为单位。 |
status |
body |
字符串 |
快照的状态。有效状态值是:
|
示例 显示快照详情
{
"snapshot": {
"createdAt": "2025-06-12T14:56:28.922532",
"displayDescription": "Default description",
"displayName": "Default name",
"id": "ec675a13-5be8-4077-8381-9d70a12f77fb",
"size": 100,
"status": "available",
"volumeId": "d7bccf30-48a2-4cfc-a9c0-71c5ee144f61"
}
}
从账户中删除快照。
此操作是异步的。您必须反复列出快照以确定快照是否已被删除。
正常响应代码:202
错误响应代码:unauthorized(401)、forbidden(403)、itemNotFound(404)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
snapshot_id |
路径 |
字符串 |
快照的 UUID。 |
响应¶
成功的 DELETE 查询没有响应正文内容
镜像 (已弃用)¶
警告
这些 API 是对镜像服务的代理调用。Nova 已弃用所有代理 API,用户应改用原生 API。除镜像元数据 API 外,所有镜像服务代理 API 从 microversion 2.36 开始都将返回 404。镜像元数据 API 从 microversion 2.39 开始将返回 404。请参阅:相关镜像 API。
列出、显示详细信息并删除镜像。还设置、列出、显示详细信息、创建、更新和删除镜像元数据。
镜像 是用于创建和重建服务器的文件集合。默认情况下,操作员提供预构建的操作系统镜像。您也可以创建自定义镜像。请参阅:创建镜像操作。
默认情况下,`policy.json` 文件授权所有用户在 `OS-EXT-IMG-SIZE:size` 扩展属性中查看镜像大小。
列出镜像。
正常响应代码:200
错误响应代码:badRequest(400),unauthorized(401),forbidden(403)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
changes-since(可选) |
查询 |
字符串 |
按日期和时间过滤响应,此时镜像最后一次更改了状态。使用此查询参数检查自上次请求以来的更改,而不是在每次轮询间隔时重新下载和重新解析完整状态。如果数据自 `changes-since` 时间以来已更改,则调用仅返回自 `changes-since` 时间以来已更改的项。如果自 `changes-since` 时间以来数据未更改,则调用返回空列表。为了帮助您跟踪更改,此过滤器还显示已删除的镜像(如果 `changes-since` 值指定了最近 30 天内的日期)。可能会返回 30 天前删除的项,但不保证。日期和时间戳格式为 ISO 8601。 CCYY-MM-DDThh:mm:ss±hh:mm
如果包含 |
server (可选) |
查询 |
字符串 |
按服务器(URL 格式)过滤响应。 |
name (可选) |
查询 |
字符串 |
按镜像名称(字符串格式)过滤响应。 |
status (可选) |
查询 |
字符串 |
按镜像状态(字符串格式)过滤响应。例如,`ACTIVE`。 |
minDisk (可选) |
查询 |
整数 |
按最小磁盘空间(以 GiB 为单位)过滤响应。例如, |
minRam (可选) |
查询 |
整数 |
按最小 RAM(以 MiB 为单位)过滤响应。例如, |
type (可选) |
查询 |
字符串 |
按镜像类型过滤响应。例如,`snapshot` 或 `backup`。 |
limit (可选) |
查询 |
整数 |
请求项目页面大小。返回最多限制值数量的项目。使用 |
marker (可选) |
查询 |
字符串 |
最后一个已查看项目的 ID。使用 |
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
images |
body |
数组 |
镜像对象的数组。 |
id |
body |
字符串 |
镜像的 ID。 |
name |
body |
字符串 |
镜像的显示名称。 |
links |
body |
数组 |
指向相关资源的链接。有关更多信息,请参阅API 指南 / 链接和引用。 |
示例 列出镜像:JSON 响应
{
"images": [
{
"id": "155d900f-4e14-4e4c-a73d-069cbf4541e6",
"links": [
{
"href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/images/155d900f-4e14-4e4c-a73d-069cbf4541e6",
"rel": "self"
},
{
"href": "http://openstack.example.com/6f70656e737461636b20342065766572/images/155d900f-4e14-4e4c-a73d-069cbf4541e6",
"rel": "bookmark"
},
{
"href": "http://glance.openstack.example.com/images/155d900f-4e14-4e4c-a73d-069cbf4541e6",
"rel": "alternate",
"type": "application/vnd.openstack.image"
}
],
"name": "fakeimage123456"
},
{
"id": "a2459075-d96c-40d5-893e-577ff92e721c",
"links": [
{
"href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/images/a2459075-d96c-40d5-893e-577ff92e721c",
"rel": "self"
},
{
"href": "http://openstack.example.com/6f70656e737461636b20342065766572/images/a2459075-d96c-40d5-893e-577ff92e721c",
"rel": "bookmark"
},
{
"href": "http://glance.openstack.example.com/images/a2459075-d96c-40d5-893e-577ff92e721c",
"rel": "alternate",
"type": "application/vnd.openstack.image"
}
],
"name": "fakeimage123456"
},
{
"id": "76fa36fc-c930-4bf3-8c8a-ea2a2420deb6",
"links": [
{
"href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/images/76fa36fc-c930-4bf3-8c8a-ea2a2420deb6",
"rel": "self"
},
{
"href": "http://openstack.example.com/6f70656e737461636b20342065766572/images/76fa36fc-c930-4bf3-8c8a-ea2a2420deb6",
"rel": "bookmark"
},
{
"href": "http://glance.openstack.example.com/images/76fa36fc-c930-4bf3-8c8a-ea2a2420deb6",
"rel": "alternate",
"type": "application/vnd.openstack.image"
}
],
"name": "fakeimage123456"
},
{
"id": "cedef40a-ed67-4d10-800e-17455edce175",
"links": [
{
"href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/images/cedef40a-ed67-4d10-800e-17455edce175",
"rel": "self"
},
{
"href": "http://openstack.example.com/6f70656e737461636b20342065766572/images/cedef40a-ed67-4d10-800e-17455edce175",
"rel": "bookmark"
},
{
"href": "http://glance.openstack.example.com/images/cedef40a-ed67-4d10-800e-17455edce175",
"rel": "alternate",
"type": "application/vnd.openstack.image"
}
],
"name": "fakeimage123456"
},
{
"id": "c905cedb-7281-47e4-8a62-f26bc5fc4c77",
"links": [
{
"href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/images/c905cedb-7281-47e4-8a62-f26bc5fc4c77",
"rel": "self"
},
{
"href": "http://openstack.example.com/6f70656e737461636b20342065766572/images/c905cedb-7281-47e4-8a62-f26bc5fc4c77",
"rel": "bookmark"
},
{
"href": "http://glance.openstack.example.com/images/c905cedb-7281-47e4-8a62-f26bc5fc4c77",
"rel": "alternate",
"type": "application/vnd.openstack.image"
}
],
"name": "fakeimage123456"
},
{
"id": "a440c04b-79fa-479c-bed1-0b816eaec379",
"links": [
{
"href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/images/a440c04b-79fa-479c-bed1-0b816eaec379",
"rel": "self"
},
{
"href": "http://openstack.example.com/6f70656e737461636b20342065766572/images/a440c04b-79fa-479c-bed1-0b816eaec379",
"rel": "bookmark"
},
{
"href": "http://glance.openstack.example.com/images/a440c04b-79fa-479c-bed1-0b816eaec379",
"rel": "alternate",
"type": "application/vnd.openstack.image"
}
],
"name": "fakeimage6"
},
{
"id": "70a599e0-31e7-49b7-b260-868f441e862b",
"links": [
{
"href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/images/70a599e0-31e7-49b7-b260-868f441e862b",
"rel": "self"
},
{
"href": "http://openstack.example.com/6f70656e737461636b20342065766572/images/70a599e0-31e7-49b7-b260-868f441e862b",
"rel": "bookmark"
},
{
"href": "http://glance.openstack.example.com/images/70a599e0-31e7-49b7-b260-868f441e862b",
"rel": "alternate",
"type": "application/vnd.openstack.image"
}
],
"name": "fakeimage7"
},
{
"id": "a2293931-dc33-45cc-85ef-232aa9491710",
"links": [
{
"href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/images/a2293931-dc33-45cc-85ef-232aa9491710",
"rel": "self"
},
{
"href": "http://openstack.example.com/6f70656e737461636b20342065766572/images/a2293931-dc33-45cc-85ef-232aa9491710",
"rel": "bookmark"
},
{
"href": "http://glance.openstack.example.com/images/a2293931-dc33-45cc-85ef-232aa9491710",
"rel": "alternate",
"type": "application/vnd.openstack.image"
}
],
"name": "fakeimage123456"
},
{
"id": "e78f0ee9-96ef-4ce7-accf-e816f273be45",
"links": [
{
"href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/images/e78f0ee9-96ef-4ce7-accf-e816f273be45",
"rel": "self"
},
{
"href": "http://openstack.example.com/6f70656e737461636b20342065766572/images/e78f0ee9-96ef-4ce7-accf-e816f273be45",
"rel": "bookmark"
},
{
"href": "http://glance.openstack.example.com/images/e78f0ee9-96ef-4ce7-accf-e816f273be45",
"rel": "alternate",
"type": "application/vnd.openstack.image"
}
],
"name": "fakeimage123456"
},
{
"id": "54eadb78-eeb6-4b13-beed-20b9894eeadf",
"links": [
{
"href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/images/54eadb78-eeb6-4b13-beed-20b9894eeadf",
"rel": "self"
},
{
"href": "http://openstack.example.com/6f70656e737461636b20342065766572/images/54eadb78-eeb6-4b13-beed-20b9894eeadf",
"rel": "bookmark"
},
{
"href": "http://glance.openstack.example.com/images/54eadb78-eeb6-4b13-beed-20b9894eeadf",
"rel": "alternate",
"type": "application/vnd.openstack.image"
}
],
"name": "fakeimage123456"
},
{
"id": "eb7458f3-d003-4187-8027-595591dc2723",
"links": [
{
"href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/images/eb7458f3-d003-4187-8027-595591dc2723",
"rel": "self"
},
{
"href": "http://openstack.example.com/6f70656e737461636b20342065766572/images/eb7458f3-d003-4187-8027-595591dc2723",
"rel": "bookmark"
},
{
"href": "http://glance.openstack.example.com/images/eb7458f3-d003-4187-8027-595591dc2723",
"rel": "alternate",
"type": "application/vnd.openstack.image"
}
],
"name": "fakeimage123456"
}
]
}
列出镜像及其详细信息。
正常响应代码:200
错误响应代码:badRequest(400),unauthorized(401),forbidden(403)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
changes-since(可选) |
查询 |
字符串 |
按日期和时间过滤响应,此时镜像最后一次更改了状态。使用此查询参数检查自上次请求以来的更改,而不是在每次轮询间隔时重新下载和重新解析完整状态。如果数据自 `changes-since` 时间以来已更改,则调用仅返回自 `changes-since` 时间以来已更改的项。如果自 `changes-since` 时间以来数据未更改,则调用返回空列表。为了帮助您跟踪更改,此过滤器还显示已删除的镜像(如果 `changes-since` 值指定了最近 30 天内的日期)。可能会返回 30 天前删除的项,但不保证。日期和时间戳格式为 ISO 8601。 CCYY-MM-DDThh:mm:ss±hh:mm
如果包含 |
server (可选) |
查询 |
字符串 |
按服务器(URL 格式)过滤响应。 |
name (可选) |
查询 |
字符串 |
按镜像名称(字符串格式)过滤响应。 |
status (可选) |
查询 |
字符串 |
按镜像状态(字符串格式)过滤响应。例如,`ACTIVE`。 |
minDisk (可选) |
查询 |
整数 |
按最小磁盘空间(以 GiB 为单位)过滤响应。例如, |
minRam (可选) |
查询 |
整数 |
按最小 RAM(以 MiB 为单位)过滤响应。例如, |
type (可选) |
查询 |
字符串 |
按镜像类型过滤响应。例如,`snapshot` 或 `backup`。 |
limit (可选) |
查询 |
整数 |
请求项目页面大小。返回最多限制值数量的项目。使用 |
marker (可选) |
查询 |
字符串 |
最后一个已查看项目的 ID。使用 |
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
images |
body |
数组 |
镜像对象的数组。 |
id |
body |
字符串 |
镜像的 ID。 |
name |
body |
字符串 |
镜像的显示名称。 |
minRam |
body |
整数 |
镜像运行所需的最小 RAM 量,单位为 MiB。例如,`512`。 |
minDisk |
body |
整数 |
镜像启动所需的最小磁盘空间,单位为 GiB。例如,`100`。 |
metadata |
body |
对象 |
元数据键值对。每个元数据键值对的最大大小为 255 字节。 |
创建时间 |
body |
字符串 |
资源被创建的日期和时间。日期和时间戳格式为 ISO 8601。 CCYY-MM-DDThh:mm:ss±hh:mm
例如, |
updated |
body |
字符串 |
资源被更新的日期和时间。日期和时间戳格式为 ISO 8601。 CCYY-MM-DDThh:mm:ss±hh:mm
例如, |
status |
body |
字符串 |
镜像的状态,字符串格式。可以是以下之一:
|
progress |
body |
整数 |
镜像保存进度的百分比值。它可以是以下之一
|
links |
body |
数组 |
指向相关资源的链接。有关更多信息,请参阅API 指南 / 链接和引用。 |
server (可选) |
body |
对象 |
服务器已从镜像启动。 |
OS-EXT-IMG-SIZE:size |
body |
整数 |
镜像的大小。 |
OS-DCF:diskConfig(可选) |
body |
字符串 |
控制 API 在创建、重建或调整服务器大小时如何对磁盘进行分区。服务器继承其创建的镜像的
|
示例:列出镜像详细信息:JSON 响应
{
"images": [
{
"OS-EXT-IMG-SIZE:size": 25165824,
"created": "2011-01-01T01:02:03Z",
"id": "155d900f-4e14-4e4c-a73d-069cbf4541e6",
"links": [
{
"href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/images/155d900f-4e14-4e4c-a73d-069cbf4541e6",
"rel": "self"
},
{
"href": "http://openstack.example.com/6f70656e737461636b20342065766572/images/155d900f-4e14-4e4c-a73d-069cbf4541e6",
"rel": "bookmark"
},
{
"href": "http://glance.openstack.example.com/images/155d900f-4e14-4e4c-a73d-069cbf4541e6",
"rel": "alternate",
"type": "application/vnd.openstack.image"
}
],
"metadata": {
"architecture": "x86_64",
"kernel_id": "nokernel",
"ramdisk_id": "nokernel"
},
"minDisk": 0,
"minRam": 0,
"name": "fakeimage123456",
"progress": 100,
"status": "ACTIVE",
"updated": "2011-01-01T01:02:03Z"
},
{
"OS-EXT-IMG-SIZE:size": 58145823,
"created": "2011-01-01T01:02:03Z",
"id": "a2459075-d96c-40d5-893e-577ff92e721c",
"links": [
{
"href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/images/a2459075-d96c-40d5-893e-577ff92e721c",
"rel": "self"
},
{
"href": "http://openstack.example.com/6f70656e737461636b20342065766572/images/a2459075-d96c-40d5-893e-577ff92e721c",
"rel": "bookmark"
},
{
"href": "http://glance.openstack.example.com/images/a2459075-d96c-40d5-893e-577ff92e721c",
"rel": "alternate",
"type": "application/vnd.openstack.image"
}
],
"metadata": {
"kernel_id": "nokernel",
"ramdisk_id": "nokernel"
},
"minDisk": 0,
"minRam": 0,
"name": "fakeimage123456",
"progress": 100,
"status": "ACTIVE",
"updated": "2011-01-01T01:02:03Z"
},
{
"OS-EXT-IMG-SIZE:size": 83594576,
"created": "2011-01-01T01:02:03Z",
"id": "76fa36fc-c930-4bf3-8c8a-ea2a2420deb6",
"links": [
{
"href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/images/76fa36fc-c930-4bf3-8c8a-ea2a2420deb6",
"rel": "self"
},
{
"href": "http://openstack.example.com/6f70656e737461636b20342065766572/images/76fa36fc-c930-4bf3-8c8a-ea2a2420deb6",
"rel": "bookmark"
},
{
"href": "http://glance.openstack.example.com/images/76fa36fc-c930-4bf3-8c8a-ea2a2420deb6",
"rel": "alternate",
"type": "application/vnd.openstack.image"
}
],
"metadata": {
"architecture": "x86_64",
"kernel_id": "nokernel",
"ramdisk_id": "nokernel"
},
"minDisk": 0,
"minRam": 0,
"name": "fakeimage123456",
"progress": 100,
"status": "ACTIVE",
"updated": "2011-01-01T01:02:03Z"
},
{
"OS-EXT-IMG-SIZE:size": 84035174,
"created": "2011-01-01T01:02:03Z",
"id": "cedef40a-ed67-4d10-800e-17455edce175",
"links": [
{
"href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/images/cedef40a-ed67-4d10-800e-17455edce175",
"rel": "self"
},
{
"href": "http://openstack.example.com/6f70656e737461636b20342065766572/images/cedef40a-ed67-4d10-800e-17455edce175",
"rel": "bookmark"
},
{
"href": "http://glance.openstack.example.com/images/cedef40a-ed67-4d10-800e-17455edce175",
"rel": "alternate",
"type": "application/vnd.openstack.image"
}
],
"metadata": {
"kernel_id": "nokernel",
"ramdisk_id": "nokernel"
},
"minDisk": 0,
"minRam": 0,
"name": "fakeimage123456",
"progress": 100,
"status": "ACTIVE",
"updated": "2011-01-01T01:02:03Z"
},
{
"OS-EXT-IMG-SIZE:size": 26360814,
"created": "2011-01-01T01:02:03Z",
"id": "c905cedb-7281-47e4-8a62-f26bc5fc4c77",
"links": [
{
"href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/images/c905cedb-7281-47e4-8a62-f26bc5fc4c77",
"rel": "self"
},
{
"href": "http://openstack.example.com/6f70656e737461636b20342065766572/images/c905cedb-7281-47e4-8a62-f26bc5fc4c77",
"rel": "bookmark"
},
{
"href": "http://glance.openstack.example.com/images/c905cedb-7281-47e4-8a62-f26bc5fc4c77",
"rel": "alternate",
"type": "application/vnd.openstack.image"
}
],
"metadata": {
"kernel_id": "155d900f-4e14-4e4c-a73d-069cbf4541e6",
"ramdisk_id": null
},
"minDisk": 0,
"minRam": 0,
"name": "fakeimage123456",
"progress": 100,
"status": "ACTIVE",
"updated": "2011-01-01T01:02:03Z"
},
{
"OS-DCF:diskConfig": "MANUAL",
"OS-EXT-IMG-SIZE:size": 49163826,
"created": "2011-01-01T01:02:03Z",
"id": "a440c04b-79fa-479c-bed1-0b816eaec379",
"links": [
{
"href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/images/a440c04b-79fa-479c-bed1-0b816eaec379",
"rel": "self"
},
{
"href": "http://openstack.example.com/6f70656e737461636b20342065766572/images/a440c04b-79fa-479c-bed1-0b816eaec379",
"rel": "bookmark"
},
{
"href": "http://glance.openstack.example.com/images/a440c04b-79fa-479c-bed1-0b816eaec379",
"rel": "alternate",
"type": "application/vnd.openstack.image"
}
],
"metadata": {
"architecture": "x86_64",
"auto_disk_config": "False",
"kernel_id": "nokernel",
"ramdisk_id": "nokernel"
},
"minDisk": 0,
"minRam": 0,
"name": "fakeimage6",
"progress": 100,
"status": "ACTIVE",
"updated": "2011-01-01T01:02:03Z"
},
{
"OS-DCF:diskConfig": "AUTO",
"OS-EXT-IMG-SIZE:size": 74185822,
"created": "2011-01-01T01:02:03Z",
"id": "70a599e0-31e7-49b7-b260-868f441e862b",
"links": [
{
"href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/images/70a599e0-31e7-49b7-b260-868f441e862b",
"rel": "self"
},
{
"href": "http://openstack.example.com/6f70656e737461636b20342065766572/images/70a599e0-31e7-49b7-b260-868f441e862b",
"rel": "bookmark"
},
{
"href": "http://glance.openstack.example.com/images/70a599e0-31e7-49b7-b260-868f441e862b",
"rel": "alternate",
"type": "application/vnd.openstack.image"
}
],
"metadata": {
"architecture": "x86_64",
"auto_disk_config": "True",
"kernel_id": "nokernel",
"ramdisk_id": "nokernel"
},
"minDisk": 0,
"minRam": 0,
"name": "fakeimage7",
"progress": 100,
"status": "ACTIVE",
"updated": "2011-01-01T01:02:03Z"
},
{
"OS-EXT-IMG-SIZE:size": 25165824,
"created": "2011-01-01T01:02:03Z",
"id": "95fad737-9325-4855-b37e-20a62268ec88",
"links": [
{
"href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/images/95fad737-9325-4855-b37e-20a62268ec88",
"rel": "self"
},
{
"href": "http://openstack.example.com/6f70656e737461636b20342065766572/images/95fad737-9325-4855-b37e-20a62268ec88",
"rel": "bookmark"
},
{
"href": "http://glance.openstack.example.com/images/95fad737-9325-4855-b37e-20a62268ec88",
"rel": "alternate",
"type": "application/vnd.openstack.image"
}
],
"metadata": {
"hw_ephemeral_encryption": "True"
},
"minDisk": 0,
"minRam": 0,
"name": "fakeimage123456",
"progress": 100,
"status": "ACTIVE",
"updated": "2011-01-01T01:02:03Z"
},
{
"OS-EXT-IMG-SIZE:size": 25165824,
"created": "2011-01-01T01:02:03Z",
"id": "535426d4-5d75-44f4-9591-a2123d23c33f",
"links": [
{
"href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/images/535426d4-5d75-44f4-9591-a2123d23c33f",
"rel": "self"
},
{
"href": "http://openstack.example.com/6f70656e737461636b20342065766572/images/535426d4-5d75-44f4-9591-a2123d23c33f",
"rel": "bookmark"
},
{
"href": "http://glance.openstack.example.com/images/535426d4-5d75-44f4-9591-a2123d23c33f",
"rel": "alternate",
"type": "application/vnd.openstack.image"
}
],
"metadata": {
"hw_ephemeral_encryption": "False"
},
"minDisk": 0,
"minRam": 0,
"name": "fakeimage123456",
"progress": 100,
"status": "ACTIVE",
"updated": "2011-01-01T01:02:03Z"
},
{
"OS-EXT-IMG-SIZE:size": 25165824,
"created": "2011-01-01T01:02:03Z",
"id": "5f7d4f5b-3781-4a4e-9046-a2a800e807e5",
"links": [
{
"href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/images/5f7d4f5b-3781-4a4e-9046-a2a800e807e5",
"rel": "self"
},
{
"href": "http://openstack.example.com/6f70656e737461636b20342065766572/images/5f7d4f5b-3781-4a4e-9046-a2a800e807e5",
"rel": "bookmark"
},
{
"href": "http://glance.openstack.example.com/images/5f7d4f5b-3781-4a4e-9046-a2a800e807e5",
"rel": "alternate",
"type": "application/vnd.openstack.image"
}
],
"metadata": {
"hw_ephemeral_encryption": "True",
"hw_ephemeral_encryption_format": "luks"
},
"minDisk": 0,
"minRam": 0,
"name": "fakeimage123456",
"progress": 100,
"status": "ACTIVE",
"updated": "2011-01-01T01:02:03Z"
},
{
"OS-EXT-IMG-SIZE:size": 25165824,
"created": "2011-01-01T01:02:03Z",
"id": "261b52ed-f693-4147-8f3b-d25df5efd968",
"links": [
{
"href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/images/261b52ed-f693-4147-8f3b-d25df5efd968",
"rel": "self"
},
{
"href": "http://openstack.example.com/6f70656e737461636b20342065766572/images/261b52ed-f693-4147-8f3b-d25df5efd968",
"rel": "bookmark"
},
{
"href": "http://glance.openstack.example.com/images/261b52ed-f693-4147-8f3b-d25df5efd968",
"rel": "alternate",
"type": "application/vnd.openstack.image"
}
],
"metadata": {
"hw_ephemeral_encryption": "True",
"hw_ephemeral_encryption_format": "plain"
},
"minDisk": 0,
"minRam": 0,
"name": "fakeimage123456",
"progress": 100,
"status": "ACTIVE",
"updated": "2011-01-01T01:02:03Z"
}
]
}
显示镜像的详情。
正常响应代码:200
错误响应代码:unauthorized(401)、forbidden(403)、itemNotFound(404)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
image_id |
路径 |
字符串 |
镜像的 UUID。 |
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
images |
body |
数组 |
镜像对象的数组。 |
id |
body |
字符串 |
镜像的 ID。 |
name |
body |
字符串 |
镜像的显示名称。 |
minRam |
body |
整数 |
镜像运行所需的最小 RAM 量,单位为 MiB。例如,`512`。 |
minDisk |
body |
整数 |
镜像启动所需的最小磁盘空间,单位为 GiB。例如,`100`。 |
metadata |
body |
对象 |
元数据键值对。每个元数据键值对的最大大小为 255 字节。 |
创建时间 |
body |
字符串 |
资源被创建的日期和时间。日期和时间戳格式为 ISO 8601。 CCYY-MM-DDThh:mm:ss±hh:mm
例如, |
updated |
body |
字符串 |
资源被更新的日期和时间。日期和时间戳格式为 ISO 8601。 CCYY-MM-DDThh:mm:ss±hh:mm
例如, |
status |
body |
字符串 |
镜像的状态,字符串格式。可以是以下之一:
|
progress |
body |
整数 |
镜像保存进度的百分比值。它可以是以下之一
|
links |
body |
数组 |
指向相关资源的链接。有关更多信息,请参阅API 指南 / 链接和引用。 |
server (可选) |
body |
对象 |
服务器已从镜像启动。 |
OS-EXT-IMG-SIZE:size |
body |
整数 |
镜像的大小。 |
OS-DCF:diskConfig(可选) |
body |
字符串 |
控制 API 在创建、重建或调整服务器大小时如何对磁盘进行分区。服务器继承其创建的镜像的
|
示例:显示镜像详细信息:JSON 响应
{
"image": {
"OS-DCF:diskConfig": "AUTO",
"OS-EXT-IMG-SIZE:size": 74185822,
"created": "2011-01-01T01:02:03Z",
"id": "70a599e0-31e7-49b7-b260-868f441e862b",
"links": [
{
"href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/images/70a599e0-31e7-49b7-b260-868f441e862b",
"rel": "self"
},
{
"href": "http://openstack.example.com/6f70656e737461636b20342065766572/images/70a599e0-31e7-49b7-b260-868f441e862b",
"rel": "bookmark"
},
{
"href": "http://glance.openstack.example.com/images/70a599e0-31e7-49b7-b260-868f441e862b",
"rel": "alternate",
"type": "application/vnd.openstack.image"
}
],
"metadata": {
"architecture": "x86_64",
"auto_disk_config": "True",
"kernel_id": "nokernel",
"ramdisk_id": "nokernel"
},
"minDisk": 0,
"minRam": 0,
"name": "fakeimage7",
"progress": 100,
"status": "ACTIVE",
"updated": "2011-01-01T01:02:03Z"
}
}
删除一个镜像。
正常响应代码:204
错误响应代码:unauthorized(401)、forbidden(403)、itemNotFound(404)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
image_id |
路径 |
字符串 |
镜像的 UUID。 |
响应¶
成功的 DELETE 操作的响应体为空。
列出一个镜像的元数据。
正常响应代码:200
错误响应代码:unauthorized(401)、forbidden(403)、itemNotFound(404)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
image_id |
路径 |
字符串 |
镜像的 UUID。 |
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
metadata |
body |
对象 |
元数据键值对。每个元数据键值对的最大大小为 255 字节。 |
示例:列出镜像元数据详细信息:JSON 响应
{
"metadata": {
"architecture": "x86_64",
"auto_disk_config": "True",
"kernel_id": "nokernel",
"ramdisk_id": "nokernel"
}
}
创建一个镜像元数据。
正常响应代码:200
错误响应代码:badRequest(400)、unauthorized(401)、forbidden(403)、itemNotFound(404)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
image_id |
路径 |
字符串 |
镜像的 UUID。 |
metadata |
body |
对象 |
元数据键值对。每个元数据键值对的最大大小为 255 字节。 |
示例:创建镜像元数据:JSON 请求
{
"metadata": {
"kernel_id": "False",
"Label": "UpdatedImage"
}
}
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
metadata |
body |
对象 |
元数据键值对。每个元数据键值对的最大大小为 255 字节。 |
示例:创建镜像元数据:JSON 响应
{
"metadata": {
"Label": "UpdatedImage",
"architecture": "x86_64",
"auto_disk_config": "True",
"kernel_id": "False",
"ramdisk_id": "nokernel"
}
}
更新一个镜像元数据
正常响应代码:200
错误响应代码:badRequest(400)、unauthorized(401)、forbidden(403)、itemNotFound(404)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
image_id |
路径 |
字符串 |
镜像的 UUID。 |
metadata |
body |
对象 |
元数据键值对。每个元数据键值对的最大大小为 255 字节。 |
示例:更新镜像元数据:JSON 请求
{
"metadata": {
"auto_disk_config": "True",
"Label": "Changed"
}
}
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
metadata |
body |
对象 |
元数据键值对。每个元数据键值对的最大大小为 255 字节。 |
示例:更新镜像元数据:JSON 响应
{
"metadata": {
"Label": "Changed",
"auto_disk_config": "True"
}
}
按键显示镜像的元数据项。
正常响应代码:200
错误响应代码:unauthorized(401)、forbidden(403)、itemNotFound(404)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
image_id |
路径 |
字符串 |
镜像的 UUID。 |
key |
路径 |
字符串 |
元数据项的键,作为字符串。最大长度为 255 个字符。 |
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
meta |
body |
对象 |
详细键元数据项的对象。 |
示例:显示镜像元数据项详细信息:JSON 响应
{
"meta": {
"kernel_id": "nokernel"
}
}
按键创建或更新镜像的元数据项。
正常响应代码:200
错误响应代码:unauthorized(401)、forbidden(403)、itemNotFound(404)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
image_id |
路径 |
字符串 |
镜像的 UUID。 |
key |
路径 |
字符串 |
元数据项的键,作为字符串。最大长度为 255 个字符。 |
meta |
body |
对象 |
详细键元数据项的对象。 |
示例:创建或更新镜像元数据项:JSON 请求
{
"meta": {
"auto_disk_config": "False"
}
}
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
meta |
body |
对象 |
详细键元数据项的对象。 |
示例:创建或更新镜像元数据项:JSON 响应
{
"meta": {
"auto_disk_config": "False"
}
}
按键删除镜像的元数据项。
正常响应代码:204
错误响应代码:unauthorized(401)、forbidden(403)、itemNotFound(404)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
image_id |
路径 |
字符串 |
镜像的 UUID。 |
key |
路径 |
字符串 |
元数据项的键,作为字符串。最大长度为 255 个字符。 |
响应¶
成功的 DELETE 操作的响应体为空。
裸金属节点 (os-baremetal-nodes) (已弃用)¶
警告
这些 API 是对 Ironic 服务的代理调用。它们为了向后兼容而存在,但不应被新应用程序使用。Nova 已弃用所有代理 API,用户应改用原生 API。从 microversion 2.36 开始,这些调用将返回 404 错误。请参阅:相关的裸金属 API。
裸金属节点。
列出计算环境中已知的裸金属节点。
正常响应代码:202
错误响应代码:unauthorized(401),forbidden(403),notImplemented(501)
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
nodes |
body |
数组 |
一个裸金属节点对象的数组。 |
id |
body |
字符串 |
裸金属节点的 UUID。 |
interfaces |
body |
数组 |
一个活动接口对象的列表,用于裸金属节点上的活动接口。每个接口都将有一个包含地址的 `address` 字段。 |
host |
body |
字符串 |
这将始终具有值 `IRONIC MANAGED`。 |
task_state |
body |
字符串 |
节点的 Ironic 任务状态。有关更多详细信息,请参阅 Ironic 项目。 |
cpus |
body |
字符串 |
节点拥有的 CPU 数量。 注意 这是一个 JSON 字符串,尽管它看起来像一个整数值。 |
memory_mb |
body |
字符串 |
节点内存量(以 MiB 为单位)。 注意 这是一个 JSON 字符串,尽管它看起来像一个整数值。 |
disk_gb |
body |
字符串 |
节点磁盘量(以 GiB 为单位)。 注意 这是一个 JSON 字符串,尽管它看起来像一个整数值。 |
示例:列出裸金属节点
{
"nodes": [
{
"cpus": "2",
"disk_gb": "10",
"host": "IRONIC MANAGED",
"id": "058d27fa-241b-445a-a386-08c04f96db43",
"interfaces": [],
"memory_mb": "1024",
"task_state": "active"
},
{
"cpus": "2",
"disk_gb": "10",
"host": "IRONIC MANAGED",
"id": "e2025409-f3ce-4d6a-9788-c565cf3b1b1c",
"interfaces": [],
"memory_mb": "1024",
"task_state": "active"
}
]
}
显示裸金属节点的详细信息。
正常响应代码:202
错误响应代码:unauthorized(401),forbidden(403),itemNotFound(404),notImplemented(501)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
node_id |
路径 |
字符串 |
节点 ID。 |
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
node |
body |
对象 |
一个裸金属节点对象。 |
id |
body |
字符串 |
裸金属节点的 UUID。 |
instance_uuid |
body |
字符串 |
此节点上的服务器实例的 UUID。 |
interfaces |
body |
数组 |
一个活动接口对象的列表,用于裸金属节点上的活动接口。每个接口都将有一个包含地址的 `address` 字段。 |
host |
body |
字符串 |
这将始终具有值 `IRONIC MANAGED`。 |
task_state |
body |
字符串 |
节点的 Ironic 任务状态。有关更多详细信息,请参阅 Ironic 项目。 |
cpus |
body |
字符串 |
节点拥有的 CPU 数量。 注意 这是一个 JSON 字符串,尽管它看起来像一个整数值。 |
memory_mb |
body |
字符串 |
节点内存量(以 MiB 为单位)。 注意 这是一个 JSON 字符串,尽管它看起来像一个整数值。 |
disk_gb |
body |
字符串 |
节点磁盘量(以 GiB 为单位)。 注意 这是一个 JSON 字符串,尽管它看起来像一个整数值。 |
示例:显示裸金属节点详细信息
{
"node": {
"cpus": "2",
"disk_gb": "10",
"host": "IRONIC MANAGED",
"id": "058d27fa-241b-445a-a386-08c04f96db43",
"instance_uuid": "1ea4e53e-149a-4f02-9515-590c9fb2315a",
"interfaces": [],
"memory_mb": "1024",
"task_state": "active"
}
}
项目网络 (os-tenant-networks) (已弃用)¶
警告
这些 API 是对 Network 服务的代理调用。Nova 已弃用所有代理 API,用户应改用原生 API。从 microversion 2.36 开始,这些调用将返回 404 错误。请参阅:相关的网络 API。
创建、列出、显示信息以及删除项目网络。
列出所有项目网络。
策略默认仅允许拥有管理员角色或网络所有权的用户执行此操作。云提供商可以通过 `policy.json` 文件更改这些权限。
正常响应代码:200
错误响应代码:未授权(401)、禁止(403)
响应¶
示例:列出项目网络:JSON 响应
{
"networks": [
{
"cidr": "None",
"id": "3cb9bc59-5699-4588-a4b1-b87f96708bc6",
"label": "private"
}
]
}
注意
此 API 仅为 nova-network 服务实现,如果云使用 Neutron 网络服务,将返回 503 错误响应。请使用 Neutron 的 `networks` API 创建新网络。
创建一个项目网络。
策略默认仅允许具有管理员角色的用户执行此操作。云提供商可以通过 policy.json 文件更改这些权限。
正常响应代码:200
错误响应代码:badRequest(400),unauthorized(401),forbidden(403),conflict(409),gone(410),serviceUnavailable(503)
示例:创建项目网络:JSON 请求
{
"network": {
"label": "public",
"cidr": "172.0.0.0/24",
"vlan_start": 1,
"num_networks": 1,
"network_size": 255
}
}
响应¶
示例:创建项目网络:JSON 响应
{
"network": {
"cidr": "172.0.0.0/24",
"id": "5bbcc3c4-1da2-4437-a48a-66f15b1b13f9",
"label": "public"
}
}
显示项目网络的详细信息。
策略默认仅允许拥有管理员角色或网络所有权的用户执行此操作。云提供商可以通过 `policy.json` 文件更改这些权限。
正常响应代码:200
错误响应代码:unauthorized(401)、forbidden(403)、itemNotFound(404)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
network_id |
路径 |
字符串 |
网络的 UUID。 |
响应¶
示例:显示项目网络详细信息:JSON 响应
{
"network": {
"cidr": "172.0.0.0/24",
"id": "5bbcc3c4-1da2-4437-a48a-66f15b1b13f9",
"label": "public"
}
}
注意
此 API 仅为 nova-network 服务实现,如果云使用 Neutron 网络服务,将返回 500 错误响应。请使用 Neutron 的 `networks` API 删除现有网络。
删除一个项目网络。
策略默认仅允许拥有管理员角色或网络所有权的用户执行此操作。云提供商可以通过 `policy.json` 文件更改这些权限。
正常响应代码:202
错误响应代码:unauthorized(401), forbidden(403), itemNotFound(404), conflict(409), gone(410)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
network_id |
路径 |
字符串 |
网络的 UUID。 |
响应¶
成功 DELETE 查询的响应没有正文内容。
浮动 IP 池 (os-floating-ip-pools) (已弃用)¶
警告
此 API 是对 Network 服务的代理调用。Nova 已弃用所有代理 API,用户应改用原生 API。从 microversion 2.36 开始,此 API 将返回 404 错误。
有关 Network 服务中相应功能的,可以请求
GET /networks?router:external=True&fields=name
管理浮动 IP 组。
列出浮动 IP 池。
策略默认设置仅允许具有管理员角色的用户或有权操作租户 <tenant_id> 的用户执行此操作。云提供商可以通过 `policy.json` 文件更改这些权限。
正常响应代码:200
错误响应代码:未授权(401)、禁止(403)
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
floating_ip_pools |
body |
数组 |
`floating_ip_pools` 对象。 |
name |
body |
字符串 |
浮动 IP 池的名称或 ID。 |
示例:列出浮动 IP 池:JSON 响应
{
"floating_ip_pools": [
{
"name": "pool1"
},
{
"name": "pool2"
}
]
}
浮动 IP (os-floating-ips) (已弃用)¶
警告
这些 API 是对 Network 服务的代理调用。Nova 已弃用所有代理 API,用户应改用原生 API。从 microversion 2.36 开始,这些调用将返回 404 错误。请参阅:相关的网络 API。
列出项目的浮动 IP 地址。此外,还可以为项目创建(分配)浮动 IP 地址、显示浮动 IP 地址详细信息以及从项目中删除(取消分配)浮动 IP 地址。
云管理员在 OpenStack Compute 中配置浮动 IP 地址池。项目配额定义了您可以分配给项目的浮动 IP 地址的最大数量。为您项目分配浮动 IP 地址后,您可以
添加(关联)浮动 IP 地址 到项目中的实例。每个实例一次只能关联一个浮动 IP 地址。
删除或取消分配项目的浮动 IP,这将自动删除该 IP 地址的所有关联。
列出与租户或帐户关联的浮动 IP 地址。
策略默认仅允许具有管理员角色或服务器所有者的用户执行此操作。云提供商可以通过 policy.json 文件更改这些权限。
正常响应代码:200
错误响应代码:未授权(401)、禁止(403)
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
floating_ips |
body |
数组 |
浮动 IP 对象的数组。 |
fixed_ip |
body |
字符串 |
与浮动 IP 网络关联的固定 IP。 |
id |
body |
字符串 |
浮动 IP 的 ID 值。 注意 对于 nova-network,该值为整数类型;对于 neutron,该值为字符串类型。 |
instance_id |
body |
字符串 |
服务器的 UUID。 |
ip |
body |
字符串 |
浮动 IP 地址。 |
pool |
body |
字符串 |
浮动 IP 池的名称或 ID。 |
示例:列出浮动 IP 地址
{
"floating_ips": [
{
"fixed_ip": null,
"id": "8baeddb4-45e2-4c36-8cb7-d79439a5f67c",
"instance_id": null,
"ip": "172.24.4.17",
"pool": "public"
},
{
"fixed_ip": null,
"id": "05ef7490-745a-4af9-98e5-610dc97493c4",
"instance_id": null,
"ip": "172.24.4.78",
"pool": "public"
}
]
}
为当前项目创建或分配一个浮动 IP 地址。默认情况下,浮动 IP 地址从公共池分配。
如果有一个以上可用的浮动 IP 地址池,请使用 `pool` 参数指定从中分配 IP 地址的池。
策略默认仅允许具有管理员角色或服务器所有者的用户执行此操作。云提供商可以通过 policy.json 文件更改这些权限。
正常响应代码:200
错误响应代码:badRequest(400)、unauthorized(401)、forbidden(403)、itemNotFound(404)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
pool |
body |
字符串 |
浮动 IP 池的名称或 ID。 |
示例:创建(分配)浮动 IP 地址
{
"pool": "public"
}
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
floating_ip |
body |
对象 |
一个浮动 IP 地址对象。 |
fixed_ip |
body |
字符串 |
与浮动 IP 网络关联的固定 IP。 |
id |
body |
字符串 |
浮动 IP 的 ID 值。 注意 对于 nova-network,该值为整数类型;对于 neutron,该值为字符串类型。 |
instance_id |
body |
字符串 |
服务器的 UUID。 |
ip |
body |
字符串 |
浮动 IP 地址。 |
pool |
body |
字符串 |
浮动 IP 池的名称或 ID。 |
示例:创建(分配)浮动 IP 地址:JSON 响应
{
"floating_ip": {
"fixed_ip": null,
"id": "8baeddb4-45e2-4c36-8cb7-d79439a5f67c",
"instance_id": null,
"ip": "172.24.4.17",
"pool": "public"
}
}
显示与租户或帐户关联的浮动 IP 地址的详细信息(按 ID)。
策略默认仅允许具有管理员角色或服务器所有者的用户执行此操作。云提供商可以通过 policy.json 文件更改这些权限。
正常响应代码:200
错误响应代码:badRequest(400)、unauthorized(401)、forbidden(403)、itemNotFound(404)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
floating_ip_id |
路径 |
字符串 |
浮动 IP 地址的 ID。 |
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
floating_ip |
body |
对象 |
一个浮动 IP 地址对象。 |
fixed_ip |
body |
字符串 |
与浮动 IP 网络关联的固定 IP。 |
id |
body |
字符串 |
浮动 IP 的 ID 值。 注意 对于 nova-network,该值为整数类型;对于 neutron,该值为字符串类型。 |
instance_id |
body |
字符串 |
服务器的 UUID。 |
ip |
body |
字符串 |
浮动 IP 地址。 |
pool |
body |
字符串 |
浮动 IP 池的名称或 ID。 |
示例:显示浮动 IP 地址详细信息:JSON 响应
{
"floating_ip": {
"fixed_ip": null,
"id": "8baeddb4-45e2-4c36-8cb7-d79439a5f67c",
"instance_id": null,
"ip": "172.24.4.17",
"pool": "public"
}
}
从当前项目中删除或取消分配一个浮动 IP 地址,并将其返回到分配它的池中。
如果 IP 地址仍与正在运行的实例关联,它将被自动取消关联。
策略默认仅允许具有管理员角色或服务器所有者的用户执行此操作。云提供商可以通过 policy.json 文件更改这些权限。
正常响应代码:202
错误响应代码:badRequest(400)、unauthorized(401)、forbidden(403)、itemNotFound(404)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
floating_ip_id |
路径 |
字符串 |
浮动 IP 地址的 ID。 |
响应¶
成功的 DELETE 操作的响应体为空。
安全组 (os-security-groups) (已弃用)¶
警告
这些 API 是对 Network 服务的代理调用。Nova 已弃用所有代理 API,用户应改用原生 API。从 microversion 2.36 开始,这些调用将返回 404 错误。请参阅:相关的网络 API。
列出、显示信息、创建、更新和删除安全组。
列出安全组。
正常响应代码:200
错误响应代码:unauthorized(401)、forbidden(403)、itemNotFound(404)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
limit (可选) |
查询 |
整数 |
与 |
offset (可选) |
查询 |
整数 |
与 |
all_tenants (可选) |
查询 |
字符串 |
指定 `all_tenants` 查询参数以列出所有项目的安全组。仅允许管理员用户执行此操作。此查询参数的值不被检查,仅其存在被视为请求所有租户。 |
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
security_groups |
body |
数组 |
一个或多个安全组对象。 |
description |
body |
字符串 |
安全组描述。 |
id |
body |
字符串 |
安全组 ID。 |
name |
body |
字符串 |
安全组名称。 |
rules |
body |
数组 |
安全组规则列表。 |
tenant_id |
body |
字符串 |
多租户云中的租户 UUID。 |
示例:列出安全组:JSON 响应
{
"security_groups": [
{
"description": "default",
"id": "4e469db4-3b60-43c7-8dfa-2c60e2f27075",
"name": "default",
"rules": [],
"tenant_id": "6f70656e737461636b20342065766572"
}
]
}
创建一个安全组。
正常响应代码:200
错误响应代码:badRequest(400),unauthorized(401),forbidden(403)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
security_group |
body |
字符串 |
在请求体中指定 `security_group` 操作。 |
name |
body |
字符串 |
安全组名称。 |
description |
body |
字符串 |
安全组描述。 |
示例:创建安全组:JSON 请求
{
"security_group": {
"name": "test",
"description": "description"
}
}
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
security_group |
body |
字符串 |
在请求体中指定 `security_group` 操作。 |
description |
body |
字符串 |
安全组描述。 |
id |
body |
字符串 |
安全组 ID。 |
name |
body |
字符串 |
安全组名称。 |
rules |
body |
数组 |
安全组规则列表。 |
tenant_id |
body |
字符串 |
多租户云中的租户 UUID。 |
示例:创建安全组:JSON 响应
{
"security_group": {
"description": "default",
"id": "4e469db4-3b60-43c7-8dfa-2c60e2f27075",
"name": "default",
"rules": [],
"tenant_id": "6f70656e737461636b20342065766572"
}
}
显示安全组的详细信息。
正常响应代码:200
错误响应代码:badRequest(400)、unauthorized(401)、forbidden(403)、itemNotFound(404)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
security_group_id |
路径 |
字符串 |
安全组 ID。 |
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
security_group |
body |
字符串 |
在请求体中指定 `security_group` 操作。 |
description |
body |
字符串 |
安全组描述。 |
id |
body |
字符串 |
安全组 ID。 |
name |
body |
字符串 |
安全组名称。 |
rules |
body |
数组 |
安全组规则列表。 |
tenant_id |
body |
字符串 |
多租户云中的租户 UUID。 |
示例:显示安全组:JSON 响应
{
"security_group": {
"description": "default",
"id": "4e469db4-3b60-43c7-8dfa-2c60e2f27075",
"name": "default",
"rules": [],
"tenant_id": "6f70656e737461636b20342065766572"
}
}
更新一个安全组。
正常响应代码:200
错误响应代码:badRequest(400)、unauthorized(401)、forbidden(403)、itemNotFound(404)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
security_group_id |
路径 |
字符串 |
安全组 ID。 |
name |
body |
字符串 |
安全组名称。 |
description |
body |
字符串 |
安全组描述。 |
示例:更新安全组:JSON 请求
{
"security_group": {
"name": "test",
"description": "description"
}
}
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
security_group |
body |
字符串 |
在请求体中指定 `security_group` 操作。 |
description |
body |
字符串 |
安全组描述。 |
id |
body |
字符串 |
安全组 ID。 |
name |
body |
字符串 |
安全组名称。 |
rules |
body |
数组 |
安全组规则列表。 |
tenant_id |
body |
字符串 |
多租户云中的租户 UUID。 |
示例:更新安全组:JSON 响应
{
"security_group": {
"description": "default",
"id": "4e469db4-3b60-43c7-8dfa-2c60e2f27075",
"name": "default",
"rules": [],
"tenant_id": "6f70656e737461636b20342065766572"
}
}
删除一个安全组。
正常响应代码:202
错误响应代码:badRequest(400)、unauthorized(401)、forbidden(403)、itemNotFound(404)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
security_group_id |
路径 |
字符串 |
安全组 ID。 |
响应¶
成功 DELETE 查询的响应没有正文内容。
安全组规则 (os-security-group-rules) (已弃用)¶
警告
这些 API 是对 Network 服务的代理调用。Nova 已弃用所有代理 API,用户应改用原生 API。从 microversion 2.36 开始,这些调用将返回 404 错误。请参阅:相关的网络 API。
创建和删除安全组规则。
创建安全组规则。创建规则时必须指定 `cidr` 或 `group_id`。
注意
nova-network 只支持入站规则。如果要定义出站规则,必须使用 Neutron 网络服务。
正常响应代码:200
错误响应代码:badRequest(400),unauthorized(401),forbidden(403)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
security_group_rule |
body |
对象 |
一个 `security_group_rule` 对象。 |
parent_group_id |
body |
字符串 |
安全组 ID。 |
ip_protocol |
body |
字符串 |
IP 协议。有效值为 ICMP、TCP 或 UDP。 |
from_port |
body |
整数 |
范围起始端口。 |
to_port |
body |
整数 |
范围结束端口。 |
cidr (可选) |
body |
字符串 |
地址范围的 CIDR。 |
group_id (可选) |
body |
字符串 |
源安全组 ID。 |
示例:创建安全组规则:JSON 请求
{
"security_group_rule": {
"parent_group_id": "d6f86d8c-06ef-4bef-8e7c-8bf8f9ba9b7a",
"ip_protocol": "tcp",
"from_port": 22,
"to_port": 22,
"cidr": "10.0.0.0/24"
}
}
响应¶
如果请求中未提供 `group_id`,则 `group` 为空。
如果请求中未提供 `cidr`,则 `ip_range` 为空。
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
security_group_rule |
body |
对象 |
一个 `security_group_rule` 对象。 |
ip_protocol |
body |
字符串 |
IP 协议。有效值为 ICMP、TCP 或 UDP。 |
from_port |
body |
整数 |
范围起始端口。 |
to_port |
body |
整数 |
范围结束端口。 |
ip_range |
body |
对象 |
一个 IP 范围对象。包含安全组规则 `cidr`。 |
ip_range.cidr (可选) |
body |
字符串 |
地址范围的 CIDR。 |
id |
body |
字符串 |
安全组规则 ID。 |
parent_group_id |
body |
字符串 |
安全组 ID。 |
group |
body |
对象 |
一个 `group` 对象。包含 `tenant_id` 和源安全组 `name`。 |
group.name (可选) |
body |
字符串 |
安全组名称。 |
group.tenant_id (可选) |
body |
字符串 |
拥有此安全组的租户的 UUID。 |
示例:创建安全组规则:JSON 响应
{
"security_group_rule": {
"from_port": 22,
"group": {},
"id": "baed7fb4-16b9-4b99-a2fd-02d0b1a4d9b2",
"ip_protocol": "tcp",
"ip_range": {
"cidr": "10.0.0.0/24"
},
"parent_group_id": "d6f86d8c-06ef-4bef-8e7c-8bf8f9ba9b7a",
"to_port": 22
}
}
删除一个安全组规则。
正常响应代码:202
错误响应代码:badRequest(400),unauthorized(401),forbidden(403),itemNotFound(404),conflict(409)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
security_group_rule_id |
路径 |
字符串 |
安全组规则的 ID。 |
响应¶
成功 DELETE 查询的响应没有正文内容。
主机 (os-hosts) (已弃用)¶
警告
`os-hosts` API 已在 microversion 2.43 中弃用。使用 microversion >= 2.43 的请求将导致 404 错误。要列出和显示主机详细信息,请使用 Hypervisors (os-hypervisors) API。要启用或禁用服务,请使用 Compute services (os-services) API。没有替换 `shutdown`、`startup`、`reboot` 或 `maintenance_mode` 操作,因为这些是系统级操作,应由计算服务控制。
管理物理主机。某些 virt 驱动程序不支持所有主机功能。有关更多信息,请参阅 nova virt 支持矩阵
策略默认设置仅允许具有管理员角色的用户执行所有 os-hosts 相关操作。云提供商可以通过 `policy.json` 文件更改这些权限。
列出主机。
正常响应代码:200
错误响应代码:未授权(401)、禁止(403)
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
hosts |
body |
数组 |
主机信息的数组。 |
zone |
body |
字符串 |
主机的可用区域。 |
host_name |
body |
字符串 |
主机的名称。 |
服务 |
body |
字符串 |
正在主机上运行的服务的名称。 |
示例:列出主机
{
"hosts": [
{
"host_name": "b6e4adbc193d428ea923899d07fb001e",
"service": "conductor",
"zone": "internal"
},
{
"host_name": "09c025b0efc64211bd23fc50fa974cdf",
"service": "compute",
"zone": "nova"
},
{
"host_name": "abffda96592c4eacaf4111c28fddee17",
"service": "scheduler",
"zone": "internal"
}
]
}
显示主机的详细信息。
正常响应代码:200
错误响应代码:unauthorized(401)、forbidden(403)、itemNotFound(404)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
host_name |
路径 |
字符串 |
主机的名称。 |
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
host |
body |
数组 |
包含主机资源信息的数组。 |
resource |
body |
对象 |
主机的资源信息。 |
resource.project |
body |
字符串 |
项目 ID(或 total、used_now、used_max 等特殊名称)。 |
resource.cpu |
body |
整数 |
主机上的虚拟 CPU 数量。 |
resource.memory_mb |
body |
整数 |
主机上的内存大小(以 MiB 为单位)。 |
resource.disk_gb |
body |
整数 |
主机上的磁盘大小(以 GiB 为单位)。 |
resource.host |
body |
字符串 |
主机的名称。 |
示例:显示主机详细信息
{
"host": [
{
"resource": {
"cpu": 2,
"disk_gb": 1028,
"host": "c1a7de0ac9d94e4baceae031d05caae3",
"memory_mb": 8192,
"project": "(total)"
}
},
{
"resource": {
"cpu": 0,
"disk_gb": 0,
"host": "c1a7de0ac9d94e4baceae031d05caae3",
"memory_mb": 512,
"project": "(used_now)"
}
},
{
"resource": {
"cpu": 0,
"disk_gb": 0,
"host": "c1a7de0ac9d94e4baceae031d05caae3",
"memory_mb": 0,
"project": "(used_max)"
}
}
]
}
启用、禁用主机或将主机置于维护或正常模式。
警告
将主机置于维护模式仅由 XenServer 计算驱动程序实现,并且据报道它实际上并未将所有客户机迁移出主机,它只是在 Xen 管理控制台中设置了一个标志,因此无效。还有其他 API 允许您执行相同操作,这些 API 可跨所有计算驱动程序支持,即禁用服务然后将实例迁移出该主机。有关维护的更多信息,请参阅 操作指南。
正常响应代码:200
错误响应代码:badRequest(400),unauthorized(401),forbidden(403),itemNotFound(404),NotImplemented(501)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
host_name |
路径 |
字符串 |
主机的名称。 |
status (可选) |
body |
字符串 |
主机状态,可以是 `enable` 或 `disable`。 |
maintenance_mode (可选) |
body |
字符串 |
维护状态模式,可以是 `enable` 或 `disable`。 |
示例:启用主机:JSON 请求
{
"status": "enable",
"maintenance_mode": "disable"
}
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
host |
body |
字符串 |
主机的名称。 |
status (可选) |
body |
字符串 |
当前主机状态,可以是 `enabled` 或 `disabled`。 |
maintenance_mode (可选) |
body |
字符串 |
维护状态模式,可以是 `on_maintenance` 或 `off_maintenance`。 |
示例:启用主机
{
"host": "65c5d5b7e3bd44308e67fc50f362aee6",
"maintenance_mode": "off_maintenance",
"status": "enabled"
}
重启一个主机。
警告
这仅由 XenServer 和 Hyper-v 驱动程序支持。后端驱动程序在执行主机重启时,不会对 nova 数据库中的客户机进行任何编排处理。该主机的 nova-compute 服务可能暂时被服务组健康检查禁用,这将使其退出调度决策,并且客户机将关闭,但检查意外停止的实例的定期任务在 nova-compute 服务中运行,该服务现在可能已死,因此 nova API 将显示实例仍在运行,但实际上它们已停止。此 API 也没有在实时运行的 OpenStack 环境中进行测试。无需多言,不建议使用此 API,并且自 microversion 2.43 起已弃用。
正常响应代码:200
错误响应代码:badRequest(400),unauthorized(401),forbidden(403),itemNotFound(404),NotImplemented(501)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
host_name |
路径 |
字符串 |
主机的名称。 |
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
host |
body |
字符串 |
主机的名称。 |
power_action |
body |
字符串 |
主机上的电源操作。 |
示例:重启主机:JSON 响应
{
"host": "9557750dbc464741a89c907921c1cb31",
"power_action": "reboot"
}
关闭一个主机。
警告
这仅由 XenServer 和 Hyper-v 驱动程序支持。后端驱动程序在执行主机关闭时,不会对 nova 数据库中的客户机进行任何编排处理。该主机的 nova-compute 服务可能暂时被服务组健康检查禁用,这将使其退出调度决策,并且客户机将关闭,但检查意外停止的实例的定期任务在 nova-compute 服务中运行,该服务现在可能已死,因此 nova API 将显示实例仍在运行,但实际上它们已停止。此 API 也没有在实时运行的 OpenStack 环境中进行测试。无需多言,不建议使用此 API,并且自 microversion 2.43 起已弃用。
正常响应代码:200
错误响应代码:badRequest(400),unauthorized(401),forbidden(403),itemNotFound(404),NotImplemented(501)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
host_name |
路径 |
字符串 |
主机的名称。 |
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
host |
body |
字符串 |
主机的名称。 |
power_action |
body |
字符串 |
主机上的电源操作。 |
示例:关闭主机
{
"host": "77cfa0002e4d45fe97f185968111b27b",
"power_action": "shutdown"
}
启动一个主机。
警告
这并未被任何内部计算驱动程序实现,因此将始终以 `501 NotImplemented` 错误失败。无需多言,不建议使用此 API,并且自 microversion 2.43 起已弃用。
正常响应代码:200
错误响应代码:badRequest(400),unauthorized(401),forbidden(403),itemNotFound(404),NotImplemented(501)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
host_name |
路径 |
字符串 |
主机的名称。 |
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
host |
body |
字符串 |
主机的名称。 |
power_action |
body |
字符串 |
主机上的电源操作。 |
示例:启动主机
{
"host": "4b392b27930343bbaa27fd5d8328a564",
"power_action": "startup"
}
已弃用的 API¶
本节包含过去曾属于 OpenStack Compute API 但现在已不存在的 API 参考。
根证书 (os-certificates)¶
创建和显示根证书的详细信息。
警告
此 API 的存在完全是因为 Nova 在其内部 EC2 API 中需要构建 euca bundle。它不再与系统除其自身的证书守护进程以外的任何部分进行交互。它在 16.0.0 Pike 版本中被删除。
创建一个根证书。
正常响应代码:200
错误响应代码:未授权(401)、禁止(403)
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
certificate |
body |
对象 |
证书对象。 |
data |
body |
字符串 |
证书。 |
private_key |
body |
字符串 |
私钥。 |
示例:创建根证书
{
"certificate": {
"data": "Certificate:\n Data:\n Version: 1 (0x0)\n Serial Number: 1018 (0x3fa)\n Signature Algorithm: md5WithRSAEncryption\n Issuer: O=NOVA ROOT, L=Mountain View, ST=California, C=US\n Validity\n Not Before: Aug 12 07:20:30 2013 GMT\n Not After : Aug 12 07:20:30 2014 GMT\n Subject: C=US, ST=California, O=OpenStack, OU=NovaDev, CN=openstack-fake-2013-08-12T07:20:30Z\n Subject Public Key Info:\n Public Key Algorithm: rsaEncryption\n Public-Key: (1024 bit)\n Modulus:\n 00:ac:ff:b1:d1:ed:54:4e:35:6c:34:b4:8f:0b:04:\n 50:25:a3:e2:4f:02:4c:4f:26:59:bd:f3:fd:eb:da:\n 18:c2:36:aa:63:42:72:1f:88:4f:3a:ec:e7:9f:8e:\n 44:2a:d3:b8:94:7b:20:41:f8:48:02:57:91:4c:16:\n 62:f1:21:d4:f2:40:b5:86:50:d9:61:f0:be:ff:d8:\n 8d:9f:4b:aa:6a:07:38:a2:7f:87:21:fc:e6:6e:1d:\n 0a:95:1a:90:0e:60:c2:24:e9:8e:e8:68:1b:e9:f3:\n c6:b0:7c:da:c5:20:66:9b:85:ea:f5:c9:a7:de:ee:\n 16:b1:51:a0:4d:e3:95:98:df\n Exponent: 65537 (0x10001)\n Signature Algorithm: md5WithRSAEncryption\n 15:42:ca:71:cc:32:af:dc:cf:45:91:df:8a:b8:30:c4:7f:78:\n 80:a7:25:c2:d9:81:3e:b3:dd:22:cc:3b:f8:94:e7:8f:04:f6:\n 93:04:9e:85:d4:10:40:ff:5a:07:47:24:b5:ae:93:ad:8d:e1:\n e6:54:4a:8d:4a:29:53:c4:8d:04:6b:0b:f6:af:38:78:02:c5:\n 05:19:89:82:2d:ba:fd:11:3c:1e:18:c9:0c:3d:03:93:6e:bc:\n 66:70:34:ee:03:78:8a:1d:3d:64:e8:20:2f:90:81:8e:49:1d:\n 07:37:15:66:42:cb:58:39:ad:56:ce:ed:47:c6:78:0b:0e:75:\n 29:ca\n-----BEGIN CERTIFICATE-----\nMIICNDCCAZ0CAgP6MA0GCSqGSIb3DQEBBAUAME4xEjAQBgNVBAoTCU5PVkEgUk9P\nVDEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzETMBEGA1UECBMKQ2FsaWZvcm5pYTEL\nMAkGA1UEBhMCVVMwHhcNMTMwODEyMDcyMDMwWhcNMTQwODEyMDcyMDMwWjB2MQsw\nCQYDVQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTESMBAGA1UECgwJT3BlblN0\nYWNrMRAwDgYDVQQLDAdOb3ZhRGV2MSwwKgYDVQQDDCNvcGVuc3RhY2stZmFrZS0y\nMDEzLTA4LTEyVDA3OjIwOjMwWjCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA\nrP+x0e1UTjVsNLSPCwRQJaPiTwJMTyZZvfP969oYwjaqY0JyH4hPOuznn45EKtO4\nlHsgQfhIAleRTBZi8SHU8kC1hlDZYfC+/9iNn0uqagc4on+HIfzmbh0KlRqQDmDC\nJOmO6Ggb6fPGsHzaxSBmm4Xq9cmn3u4WsVGgTeOVmN8CAwEAATANBgkqhkiG9w0B\nAQQFAAOBgQAVQspxzDKv3M9Fkd+KuDDEf3iApyXC2YE+s90izDv4lOePBPaTBJ6F\n1BBA/1oHRyS1rpOtjeHmVEqNSilTxI0Eawv2rzh4AsUFGYmCLbr9ETweGMkMPQOT\nbrxmcDTuA3iKHT1k6CAvkIGOSR0HNxVmQstYOa1Wzu1HxngLDnUpyg==\n-----END CERTIFICATE-----\n",
"private_key": "-----BEGIN RSA PRIVATE KEY-----\nMIICXgIBAAKBgQCs/7HR7VRONWw0tI8LBFAlo+JPAkxPJlm98/3r2hjCNqpjQnIf\niE867OefjkQq07iUeyBB+EgCV5FMFmLxIdTyQLWGUNlh8L7/2I2fS6pqBziif4ch\n/OZuHQqVGpAOYMIk6Y7oaBvp88awfNrFIGabher1yafe7haxUaBN45WY3wIDAQAB\nAoGBAIrcr2I/KyWf0hw4Nn10V9TuyE/9Gz2JHg3QFKjFJox2DqygADT5WAeHc6Bq\nNKNf0NA2SL1LSpm+ql01tvOw4VjE5TF6OHiIzHuTTnXggG6vuA8rxp6L24HtkAcC\n0CBno9ggSX6jVornJPBfxpkwITYSvH57BUFVD7ovbPyWGzS5AkEA1JeUtL6zxwps\nWRr1aJ8Ill2uQk/RUIvSZOU61s+B190zvHikFy8LD8CI6vvBmjC/IZuZVedufjqs\n4vX82uDO3QJBANBSh2b2dyB4AGVFY9vXMRtALAspJHbLHy+zTKxlGPFiuz7Se3ps\n8Kehz4C/CBXgQkk194dwFSGE19/PQfyJROsCQQCFFDJZhrtBUMwMZ2zSRiN5BUGt\nbwuncS+OS1Su3Yz5VRYq2BZYEPHKtYrAFkLWQ8eRwTaWaN5pFE/fb38OgQXdAkA4\nDm0W/K0zlHbuyUxEpNQ28/6mBi0ktiWvLT0tioq6sYmXLwZA/D2JrhXrG/xt/ol3\nr8jqrfNRsLByLhAgh0N/AkEAl2eR0O97lTEgFNqzIQwVmIAn9mBO3cnf3tycvlDU\nm6eb2CS242y4QalfCCAEjxoJURdfsm3/D1iFo00X+IWF+A==\n-----END RSA PRIVATE KEY-----\n"
}
}
显示根证书的详细信息。
正常响应代码:200
错误响应代码:unauthorized(401),forbidden(403),itemNotFound(404),notImplemented(501)
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
certificate |
body |
对象 |
证书对象。 |
data |
body |
字符串 |
证书。 |
private_key |
body |
字符串 |
私钥。 |
示例:显示根证书详细信息
{
"certificate": {
"data": "-----BEGIN CERTIFICATE-----\nMIICyzCCAjSgAwIBAgIJAJ8zSIxUp/m4MA0GCSqGSIb3DQEBBAUAME4xEjAQBgNV\nBAoTCU5PVkEgUk9PVDEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzETMBEGA1UECBMK\nQ2FsaWZvcm5pYTELMAkGA1UEBhMCVVMwHhcNMTIxMDE3MDEzMzM5WhcNMTMxMDE3\nMDEzMzM5WjBOMRIwEAYDVQQKEwlOT1ZBIFJPT1QxFjAUBgNVBAcTDU1vdW50YWlu\nIFZpZXcxEzARBgNVBAgTCkNhbGlmb3JuaWExCzAJBgNVBAYTAlVTMIGfMA0GCSqG\nSIb3DQEBAQUAA4GNADCBiQKBgQDXW4QfQQxJG4MqurqK8nU/Lge0mfNKxXj/Gwvg\n2sQVwxzmKfoxih8Nn6yt0yHMNjhoji1UoWI03TXUnPZRAZmsypGKZeBd7Y1ZOCPB\nXGZVGrQm+PB2kZU+3cD8fVKcueMLLeZ+LRt5d0njnoKhc5xjqMlfFPimHMba4OL6\nTnYzPQIDAQABo4GwMIGtMAwGA1UdEwQFMAMBAf8wHQYDVR0OBBYEFKyoKu4SMOFM\ngx5Ec7p0nrCkabvxMH4GA1UdIwR3MHWAFKyoKu4SMOFMgx5Ec7p0nrCkabvxoVKk\nUDBOMRIwEAYDVQQKEwlOT1ZBIFJPT1QxFjAUBgNVBAcTDU1vdW50YWluIFZpZXcx\nEzARBgNVBAgTCkNhbGlmb3JuaWExCzAJBgNVBAYTAlVTggkAnzNIjFSn+bgwDQYJ\nKoZIhvcNAQEEBQADgYEAXuvXlu1o/SVvykSLhHW8QiAY00yzN/eDzYmZGomgiuoO\n/x+ayVzbrz1UWZnBD+lC4hll2iELSmf22LjLoF+s/9NyPqHxGL3FrfatBkndaiF8\nAx/TMEyCPl7IQWi+3zzatqOKHSHiG7a9SGn/7o2aNTIWKVulfy5GvmbBjBM/0UE=\n-----END CERTIFICATE-----\n",
"private_key": null
}
}
Cloudpipe (os-cloudpipe)¶
警告
此 API 仅适用于 `nova-network`,后者已弃用并被 Neutron 取代。在任何新应用程序中都应避免使用它。它在 16.0.0 Pike 版本中被删除。
管理项目的虚拟 VPN。
列出 cloudpipes。
正常响应代码:200
错误响应代码:badRequest(400),unauthorized(401),forbidden(403),itemNotFound (404)
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
cloudpipes |
body |
数组 |
cloudpipe 对象的列表。 |
created_at |
body |
字符串 |
资源被创建的日期和时间。日期和时间戳格式为 ISO 8601。 CCYY-MM-DDThh:mm:ss±hh:mm
例如, |
instance_id |
body |
字符串 |
cloudpipe 实例的 UUID。 |
internal_ip (可选) |
body |
字符串 |
NIC 的固定 IPv4 地址。与 |
project_id |
body |
字符串 |
此服务器所属的项目 ID。 |
public_ip (可选) |
body |
字符串 |
VPN 公共 IP 地址。 |
public_port (可选) |
body |
字符串 |
VPN 公共端口。 |
state (可选) |
body |
字符串 |
VPN 状态。 |
示例:列出 Cloudpipes:JSON 响应
{
"cloudpipes": [
{
"created_at": "2012-11-27T17:18:01Z",
"instance_id": "27deecdb-baa3-4a26-9c82-32994b815b01",
"internal_ip": "192.168.1.30",
"project_id": "fa1765bd-a352-49c7-a6b7-8ee108a3cb0c",
"public_ip": "127.0.0.1",
"public_port": 22,
"state": "down"
}
]
}
创建一个 cloudpipe。
正常响应代码:200
错误响应代码:badRequest(400),unauthorized(401),forbidden(403)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
cloudpipe |
body |
对象 |
cloudpipe 对象。 |
project_id (可选) |
body |
字符串 |
项目的 UUID。如果省略,项目 ID 将默认为调用租户。 |
示例:创建 Cloudpipe:JSON 请求
{
"cloudpipe": {
"project_id": "059f21e3-c20e-4efc-9e7a-eba2ab3c6f9a"
}
}
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
instance_id |
body |
字符串 |
cloudpipe 实例的 UUID。 |
示例:创建 Cloudpipe:JSON 响应
{
"instance_id": "1e9b8425-34af-488e-b969-4d46f4a6382e"
}
更新 cloudpipe 实例的虚拟专用网络 (VPN) IP 地址和端口。
正常响应代码:202
错误响应代码:badRequest(400),unauthorized(401),forbidden(403)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
configure_project |
body |
对象 |
用于配置 cloudpipe 实例的 VPN IP 和端口信息。 |
vpn_ip |
body |
字符串 |
VPN IP 地址。 |
vpn_port |
body |
字符串 |
VPN 端口。 |
示例:更新 Cloudpipe:JSON 请求
{
"configure_project": {
"vpn_ip": "192.168.1.1",
"vpn_port": "2000"
}
}
响应¶
成功 PUT 请求的响应没有正文内容
Ping 实例 (os-fping)¶
警告
此 API 仅适用于 `nova-network`,后者已弃用。在任何新应用程序中都应避免使用它。从 microversion 2.36 开始,这些调用将返回 404 错误。它在 18.0.0 Rocky 版本中被删除。
Ping 实例并报告哪些实例是活动的。
运行 fping 工具来 ping 实例并报告哪些实例是活动的。
指定 `all_tenants=1` 查询参数来 ping 所有租户的实例。例如
GET /os-fping?all_tenants=1
指定 `include` 和 `exclude` 查询参数来过滤结果。例如
GET /os-fping?all_tenants=1&include=uuid1,uuid2&exclude=uuid3,uuid4
策略默认仅允许具有管理员角色或服务器所有者的用户执行此操作。云提供商可以通过 policy.json 文件更改这些权限。
正常响应代码:200
错误响应代码:serviceUnavailable(503),unauthorized(401),forbidden(403),itemNotFound(404),gone(410)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
all_tenants (可选) |
查询 |
字符串 |
指定 `all_tenants` 查询参数来 ping 所有租户的实例。默认情况下,这仅允许管理员用户。此查询参数的值不被检查,仅其存在被视为请求所有租户。 |
include (可选) |
查询 |
字符串 |
指定 `include=uuid[,uuid...]` 以将实例包含在结果中。 |
exclude (可选) |
查询 |
字符串 |
指定 `exclude=uuid[,uuid...]` 以将实例排除在结果之外。 |
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
servers |
body |
数组 |
服务器对象的列表。 |
alive |
body |
布尔值 |
如果实例处于活动状态,则返回 true。 |
id |
body |
字符串 |
服务器的 UUID。 |
project_id (可选) |
body |
字符串 |
项目的 UUID。如果省略,项目 ID 将默认为调用租户。 |
示例:Ping 实例
{
"servers": [
{
"alive": false,
"id": "1d1aea35-472b-40cf-9337-8eb68480aaa1",
"project_id": "6f70656e737461636b20342065766572"
}
]
}
运行 fping 工具来 ping 一个实例并报告实例是否处于活动状态。
策略默认仅允许具有管理员角色或服务器所有者的用户执行此操作。云提供商可以通过 policy.json 文件更改这些权限。
正常响应代码:200
错误响应代码:serviceUnavailable(503),unauthorized(401),forbidden(403),itemNotFound(404),gone(410)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
instance_id |
路径 |
字符串 |
实例的 UUID。 |
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
server |
body |
对象 |
一个 |
alive |
body |
布尔值 |
如果实例处于活动状态,则返回 true。 |
id |
body |
字符串 |
服务器的 UUID。 |
project_id (可选) |
body |
字符串 |
项目的 UUID。如果省略,项目 ID 将默认为调用租户。 |
示例:Ping 一个实例
{
"server": {
"alive": false,
"id": "f5e6fd6d-c0a3-4f9e-aabf-d69196b6d11a",
"project_id": "6f70656e737461636b20342065766572"
}
}
服务器虚拟接口 (servers, os-virtual-interfaces)¶
列出一个服务器的虚拟接口。
警告
由于此 API 仅为 nova-network 实现,因此从 Microversion 2.44 开始已弃用。从 microversion 2.44 开始,此 API 将返回 404 错误。它在 18.0.0 Rocky 版本中被删除。
要查询服务器连接的 neutron 接口,请使用 API `GET /servers/{server_uuid}/os-interface`。
注意
此 API 仅为 nova-network 服务实现,如果云使用 Neutron 网络服务,将返回 400 错误响应。请使用 Neutron 的 `ports` API,通过按 `device_id`(即 `{server_id}`)过滤端口来列出给定服务器的端口。
列出一个实例的虚拟接口。
策略默认设置仅允许具有管理员角色或服务器所有者的用户执行此操作。通过 `policy.json` 文件更改这些权限。
正常响应代码:200
错误响应代码:badRequest(400),unauthorized(401),forbidden(403),itemNotFound(404),gone(410)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
server_id |
路径 |
字符串 |
服务器的 UUID。 |
limit (可选) |
查询 |
整数 |
与 |
offset (可选) |
查询 |
整数 |
与 |
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
virtual_interfaces |
body |
数组 |
虚拟接口的数组。 |
id |
body |
字符串 |
虚拟接口的 UUID。 |
mac_address |
body |
字符串 |
MAC 地址。 |
net_id |
body |
字符串 |
网络 ID。 版本 2.12 中新增 |
注意
API v2 在“OS-EXT-VIF-NET:net_id”响应属性中返回网络 ID。但 API v2.1 基本版本不返回网络 ID。网络 ID 已在 v2.12 micro-version 中添加,并在“net_id”属性中返回。
示例:列出虚拟接口:JSON 响应
{
"virtual_interfaces": [
{
"id": "cec8b9bb-5d22-4104-b3c8-4c35db3210a6",
"mac_address": "fa:16:3e:3c:ce:6f",
"net_id": "cec8b9bb-5d22-4104-b3c8-4c35db3210a7"
}
]
}
固定 IP (os-fixed-ips)¶
警告
这些 API 仅适用于 **nova-network**,已弃用。从 microversion 2.36 开始,这些调用将返回 404 错误。它们在 18.0.0 Rocky 版本中被删除。
显示固定 IP 的数据,例如主机名、CIDR 和地址。此外,还可以预留和释放固定 IP 地址。
显示固定 IP 地址的详细信息。
正常响应代码:200
错误响应代码:badRequest(400),unauthorized(401),forbidden(403),itemNotFound(404),gone(410)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
fixed_ip |
路径 |
字符串 |
您感兴趣的固定 IP。 |
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
fixed_ip |
body |
对象 |
固定 IP 地址对象。 |
address |
body |
字符串 |
IP 地址。 |
cidr |
body |
字符串 |
地址范围的 CIDR。 |
host |
body |
字符串 |
管理与此固定 IP 地址关联的服务器的主机名。 |
hostname |
body |
字符串 |
与此固定 IP 地址关联的服务器的主机名。 |
reserved |
body |
布尔值 |
如果固定 IP 已预留,则为 True,否则为 False。 版本 2.4 中新增 |
示例:显示固定 IP 详细信息:JSON 响应
{
"fixed_ip": {
"address": "192.168.1.1",
"cidr": "192.168.1.0/24",
"host": "host",
"hostname": "compute.host.pvt"
}
}
预留或释放固定 IP。
要预留固定 IP 地址,请在请求体中指定 `reserve`。要释放固定 IP 地址,请在请求体中指定 `unreserve`。
正常响应代码:202
错误响应代码:badRequest(400),unauthorized(401),forbidden(403),itemNotFound(404),gone(410)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
fixed_ip |
路径 |
字符串 |
您感兴趣的固定 IP。 |
reserve (可选) |
body |
字符串 |
用于预留 IP 的属性,值为 `null`。 |
unreserve (可选) |
body |
字符串 |
用于释放 IP 的属性,值为 `null`。 |
示例:预留或释放固定 IP:JSON 请求
{
"reserve": null
}
响应¶
成功 POST 操作的响应没有正文内容。
浮动 IP 批量 (os-floating-ips-bulk)¶
警告
由于这些 API 仅为 **nova-network** 实现,因此已弃用。从 microversion 2.36 开始,这些调用将返回 404 错误。它们在 18.0.0 Rocky 版本中被删除。
批量创建、删除和列出浮动 IP。默认池名称为 `nova`。
要查看可用池,请使用 `os-floating-ip-pools` 扩展。
列出所有浮动 IP。
正常响应代码:200
错误响应代码:unauthorized(401),forbidden(403),itemNotFound(404),gone(410)
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
floating_ip_info |
body |
数组 |
浮动 IP 对象的数组。 |
address |
body |
字符串 |
浮动 IP 地址。 |
fixed_ip |
body |
字符串 |
与浮动 IP 网络关联的固定 IP。 |
instance_uuid |
body |
字符串 |
服务器的 UUID。 |
接口 |
body |
字符串 |
浮动 IP 地址的虚拟接口。 |
pool |
body |
字符串 |
浮动 IP 池的名称。 |
project_id |
body |
字符串 |
创建批量 IP 地址下的项目 ID |
示例:列出浮动 IP:JSON 响应
{
"floating_ip_info": [
{
"address": "10.10.10.1",
"instance_uuid": null,
"fixed_ip": null,
"interface": "eth0",
"pool": "nova",
"project_id": null
},
{
"address": "10.10.10.2",
"instance_uuid": null,
"fixed_ip": null,
"interface": "eth0",
"pool": "nova",
"project_id": null
},
{
"address": "10.10.10.3",
"instance_uuid": null,
"fixed_ip": null,
"interface": "eth0",
"pool": "nova",
"project_id": null
}
]
}
批量创建浮动 IP。
正常响应代码:200
错误响应代码:badRequest(400),unauthorized(401),forbidden(403),conflict(409),gone(410)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
floating_ips_bulk_create |
body |
对象 |
浮动 IP 批量地址对象。 |
ip_range |
body |
字符串 |
用于创建浮动 IP 的 IP 地址范围。 |
interface (可选) |
body |
字符串 |
浮动 IP 地址的虚拟接口 |
pool (可选) |
body |
字符串 |
浮动 IP 池的名称 |
示例:创建浮动 IP:JSON 请求
{
"floating_ips_bulk_create": {
"ip_range": "192.168.1.0/24",
"pool": "nova",
"interface": "eth0"
}
}
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
floating_ips_bulk_create |
body |
对象 |
浮动 IP 批量地址对象。 |
接口 |
body |
字符串 |
浮动 IP 地址的虚拟接口。 |
ip_range |
body |
字符串 |
用于创建浮动 IP 的 IP 地址范围。 |
pool |
body |
字符串 |
浮动 IP 池的名称。 |
示例:创建浮动 IP:JSON 响应
{
"floating_ips_bulk_create": {
"interface": "eth0",
"ip_range": "192.168.1.0/24",
"pool": "nova"
}
}
批量删除浮动 IP。
正常响应代码:200
错误响应代码:badRequest(400),unauthorized(401),forbidden(403),itemNotFound(404),gone(410)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
ip_range |
body |
字符串 |
从中批量删除浮动 IP 的 IP 地址范围。 |
示例:批量删除浮动 IP:JSON 请求
{
"ip_range": "192.168.1.0/24"
}
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
floating_ips_bulk_delete |
body |
字符串 |
从中批量删除浮动 IP 的 IP 地址范围。 |
示例:批量删除浮动 IP:JSON 响应
{
"floating_ips_bulk_delete": "192.168.1.0/24"
}
列出主机的所有浮动 IP。
正常响应代码:200
错误响应代码:unauthorized(401),forbidden(403),itemNotFound(404),gone(410)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
host_name |
路径 |
字符串 |
主机的名称。 |
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
floating_ip_info |
body |
数组 |
浮动 IP 对象的数组。 |
address |
body |
字符串 |
浮动 IP 地址。 |
fixed_ip |
body |
字符串 |
与浮动 IP 网络关联的固定 IP。 |
instance_uuid |
body |
字符串 |
服务器的 UUID。 |
接口 |
body |
字符串 |
浮动 IP 地址的虚拟接口。 |
pool |
body |
字符串 |
浮动 IP 池的名称。 |
project_id |
body |
字符串 |
创建批量 IP 地址下的项目 ID |
示例:按主机列出浮动 IP:JSON 响应
{
"floating_ip_info": [
{
"address": "10.10.10.3",
"instance_uuid": null,
"fixed_ip": null,
"interface": "eth0",
"pool": "nova",
"project_id": null
}
]
}
浮动 IP DNS 记录 (os-floating-ip-dns)¶
警告
由于这些 API 仅为 **nova-network** 实现,因此已弃用。从 microversion 2.36 开始,这些调用将返回 404 错误。它们在 18.0.0 Rocky 版本中被删除。
管理与浮动 IP 地址关联的 DNS 记录。API 将请求分派给启动时选择的 DNS 驱动程序。
列出 DNS 驱动程序发布的已注册 DNS 域。
正常响应代码:200
错误响应代码:unauthorized(401),forbidden(403),gone(410),notImplemented(501)
响应¶
示例:列出 DNS 域:JSON 响应
{
"domain_entries": [
{
"availability_zone": null,
"domain": "domain1.example.org",
"project": "project1",
"scope": "public"
}
]
}
创建或更新 DNS 域。
正常响应代码:200
错误响应代码:badRequest(400), unauthorized(401), forbidden(403), gone(410), notImplemented(501)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
domain |
路径 |
字符串 |
DNS 驱动程序发布的已注册 DNS 域。 |
示例:创建或更新 DNS 域:JSON 请求
{
"domain_entry": {
"scope": "public",
"project": "project1"
}
}
响应¶
示例:创建或更新 DNS 域:JSON 响应
{
"domain_entry": {
"availability_zone": null,
"domain": "domain1.example.org",
"project": "project1",
"scope": "public"
}
}
删除 DNS 域及其所有关联的主机条目。
正常响应代码:202
错误响应代码:unauthorized(401), forbidden(403), itemNotFound(404), gone(410), notImplemented(501)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
domain |
路径 |
字符串 |
DNS 驱动程序发布的已注册 DNS 域。 |
响应¶
列出域和 IP 的 DNS 条目。
正常响应代码:200
错误响应代码:unauthorized(401), forbidden(403), itemNotFound(404), gone(410), notImplemented(501)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
domain |
路径 |
字符串 |
DNS 驱动程序发布的已注册 DNS 域。 |
ip |
路径 |
字符串 |
IP 地址。 |
响应¶
示例:列出 DNS 条目:JSON 响应
{
"dns_entries": [
{
"domain": "domain1.example.org",
"id": null,
"ip": "192.168.1.1",
"name": "instance1",
"type": null
}
]
}
查找域和名称的唯一 DNS 条目。
正常响应代码:200
错误响应代码:unauthorized(401), forbidden(403), itemNotFound(404), gone(410), notImplemented(501)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
domain |
路径 |
字符串 |
DNS 驱动程序发布的已注册 DNS 域。 |
name |
body |
字符串 |
安全组名称。 |
响应¶
示例:查找唯一 DNS 条目:JSON 响应
{
"dns_entry": {
"domain": "domain1.example.org",
"id": null,
"ip": "192.168.1.1",
"name": "instance1",
"type": null
}
}
创建或更新 DNS 条目。
正常响应代码:200
错误响应代码:unauthorized(401),forbidden(403),gone(410),notImplemented(501)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
domain |
路径 |
字符串 |
DNS 驱动程序发布的已注册 DNS 域。 |
name |
body |
字符串 |
安全组名称。 |
示例:创建或更新 DNS 条目:JSON 请求
{
"dns_entry": {
"ip": "192.168.53.11",
"dns_type": "A"
}
}
响应¶
示例:创建或更新 DNS 条目:JSON 响应
{
"dns_entry": {
"domain": "domain1.example.org",
"id": null,
"ip": "192.168.1.1",
"name": "instance1",
"type": "A"
}
}
删除一个 DNS 条目。
正常响应代码:202
错误响应代码:unauthorized(401), forbidden(403), itemNotFound(404), gone(410), notImplemented(501)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
domain |
路径 |
字符串 |
DNS 驱动程序发布的已注册 DNS 域。 |
name |
body |
字符串 |
安全组名称。 |
响应¶
Cells (os-cells, capacities)¶
添加邻居 Cell,列出邻居 Cell,并显示本地 Cell 的功能。默认情况下,只有管理员可以管理 Cell。
警告
这些 API 指的是 Cells v1 部署,该部署在 16.0.0 Pike 版本中已弃用。它们不与 Cells v2 一起使用,Cells v2 从 15.0.0 Ocata 版本开始是必需的,所有 Nova 部署至少包含一个 Cells v2 Cell。它们在 20.0.0 Train 版本中被删除。
列出 Cells。
正常响应代码:200
错误响应代码:badRequest(400), unauthorized(401), forbidden(403), gone(410), notImplemented(501)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
tenant_id |
路径 |
字符串 |
多租户云中的租户 UUID。 |
limit (可选) |
查询 |
整数 |
与 |
offset (可选) |
查询 |
整数 |
与 |
响应¶
示例:列出 Cells:JSON 响应
{
"cells": [
{
"name": "cell1",
"rpc_host": null,
"rpc_port": null,
"type": "child",
"username": "username1"
},
{
"name": "cell3",
"rpc_host": null,
"rpc_port": null,
"type": "child",
"username": "username3"
},
{
"name": "cell5",
"rpc_host": null,
"rpc_port": null,
"type": "child",
"username": "username5"
},
{
"name": "cell2",
"rpc_host": null,
"rpc_port": null,
"type": "parent",
"username": "username2"
},
{
"name": "cell4",
"rpc_host": null,
"rpc_port": null,
"type": "parent",
"username": "username4"
}
]
}
创建一个新的 Cell。
正常响应代码:200
错误响应代码:badRequest(400), unauthorized(401), forbidden(403), gone(410), notImplemented(501)
检索容量。
正常响应代码:200
错误响应代码:badRequest(400), unauthorized(401), forbidden(403), gone(410), notImplemented(501)
列出具有功能详细信息的 Cells。
正常响应代码:200
错误响应代码:badRequest(400), unauthorized(401), forbidden(403), gone(410), notImplemented(501)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
limit (可选) |
查询 |
整数 |
与 |
offset (可选) |
查询 |
整数 |
与 |
检索当前 Cell 的信息。
正常响应代码:200
错误响应代码:badRequest(400), unauthorized(401), forbidden(403), gone(410), notImplemented(501)
显示 Cell 的数据。
正常响应代码:200
错误响应代码:badRequest(400),unauthorized(401),forbidden(403),itemNotFound(404),gone(410),notImplemented(501)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
cell_id |
路径 |
字符串 |
Cell 的 UUID。 |
响应¶
示例:显示 Cell 数据:JSON 响应
{
"cell": {
"name": "cell3",
"rpc_host": null,
"rpc_port": null,
"type": "child",
"username": "username3"
}
}
更新现有 Cell。
正常响应代码:200
错误响应代码:badRequest(400),unauthorized(401),forbidden(403),itemNotFound(404),gone(410),notImplemented(501)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
cell_id |
路径 |
字符串 |
Cell 的 UUID。 |
删除一个 Cell。
正常响应代码:200
错误响应代码:badRequest(400),unauthorized(401),forbidden(403),itemNotFound(404),gone(410),notImplemented(501)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
cell_id |
路径 |
字符串 |
Cell 的 UUID。 |
显示 Cell 的容量。
正常响应代码:200
错误响应代码:badRequest(400),unauthorized(401),forbidden(403),itemNotFound(404),gone(410),notImplemented(501)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
cell_id |
路径 |
字符串 |
Cell 的 UUID。 |
响应¶
示例:显示 Cell 容量:JSON 响应
{
"cell": {
"capacities": {
"disk_free": {
"total_mb": 1052672,
"units_by_mb": {
"0": 0,
"163840": 5,
"20480": 46,
"40960": 23,
"81920": 11
}
},
"ram_free": {
"total_mb": 7680,
"units_by_mb": {
"16384": 0,
"2048": 3,
"4096": 1,
"512": 13,
"8192": 0
}
}
}
}
}
XenServer VNC Proxy (XVP) 控制台 (os-consoles)¶
管理服务器 XVP 控制台。
警告
这些 API 仅适用于使用 XenServer 虚拟驱动程序。它们在 21.0.0 (Ussuri) 版本中被删除。
列出服务器的所有控制台。
正常响应代码:200
错误响应代码:unauthorized(401),forbidden(403),gone(410)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
server_id |
路径 |
字符串 |
服务器的 UUID。 |
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
consoles |
body |
数组 |
控制台对象的列表。 |
console |
body |
对象 |
控制台对象。 |
console_type |
body |
字符串 |
控制台的类型。 |
id |
body |
字符串 |
控制台的 UUID。 |
示例:列出控制台
{
"consoles": [
{
"console": {
"console_type": "fake",
"id": 1
}
}
]
}
为服务器创建控制台。
正常响应代码:200
错误响应代码:unauthorized(401),forbidden(403),itemNotFound(404),gone(410)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
server_id |
路径 |
字符串 |
服务器的 UUID。 |
响应¶
如果成功,此方法不返回响应体。
显示服务器的控制台详细信息。
正常响应代码:200
错误响应代码:unauthorized(401),forbidden(403),itemNotFound(404),gone(410)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
server_id |
路径 |
字符串 |
服务器的 UUID。 |
console_id |
路径 |
字符串 |
控制台的 UUID。 |
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
console |
body |
对象 |
控制台对象。 |
console_type |
body |
字符串 |
控制台的类型。 |
host (可选) |
body |
字符串 |
主机名或 ID。 |
id |
body |
字符串 |
控制台的 UUID。 |
instance_name |
body |
字符串 |
实例的名称。 |
password |
body |
字符串 |
控制台的密码。 |
port |
body |
整数 |
端口号。 |
示例:显示控制台详细信息
{
"console": {
"console_type": "fake",
"host": "fake",
"id": 1,
"instance_name": "instance-00000001",
"password": "C4jBpJ6x",
"port": 5999
}
}
删除服务器的控制台。
正常响应代码:202
错误响应代码:unauthorized(401),forbidden(403),itemNotFound(404),gone(410)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
server_id |
路径 |
字符串 |
服务器的 UUID。 |
console_id |
路径 |
字符串 |
控制台的 UUID。 |
响应¶
如果成功,此方法不返回响应体。
默认安全组规则 (os-security-group-default-rules)¶
警告
此 API 仅适用于 **nova-network**,已弃用。在任何新应用程序中都应避免使用它。从 microversion 2.36 开始,这些调用将返回 404 错误。它们在 21.0.0 (Ussuri) 版本中被完全删除。
列出、显示信息以及创建默认安全组规则。
列出默认安全组规则。
正常响应代码:200
错误响应代码:unauthorized(401), forbidden(403), itemNotFound(404), gone(410), notImplemented(501)
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
security_group_default_rules |
body |
数组 |
`security_group_default_rule` 对象的列表。 |
from_port |
body |
整数 |
范围起始端口。 |
id |
body |
字符串 |
默认安全组规则 ID。 |
ip_protocol |
body |
字符串 |
IP 协议。有效值为 ICMP、TCP 或 UDP。 |
ip_range |
body |
对象 |
一个 IP 范围对象。包含安全组规则 `cidr`。 |
ip_range.cidr (可选) |
body |
字符串 |
地址范围的 CIDR。 |
to_port |
body |
整数 |
范围结束端口。 |
示例:列出默认安全组规则:JSON 响应
{
"security_group_default_rules": [
{
"from_port": 80,
"id": 1,
"ip_protocol": "TCP",
"ip_range": {
"cidr": "10.10.10.0/24"
},
"to_port": 80
}
]
}
显示安全组规则的详细信息。
正常响应代码:200
错误响应代码:badRequest(400),unauthorized(401),forbidden(403),itemNotFound(404),gone(410),notImplemented(501)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
security_group_default_rule_id |
路径 |
字符串 |
安全组规则的 UUID。 |
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
security_group_default_rule |
body |
对象 |
一个 `security_group_default_rule` 对象。 |
from_port |
body |
整数 |
范围起始端口。 |
id |
body |
字符串 |
默认安全组规则 ID。 |
ip_protocol |
body |
字符串 |
IP 协议。有效值为 ICMP、TCP 或 UDP。 |
ip_range |
body |
对象 |
一个 IP 范围对象。包含安全组规则 `cidr`。 |
ip_range.cidr (可选) |
body |
字符串 |
地址范围的 CIDR。 |
to_port |
body |
整数 |
范围结束端口。 |
示例:显示默认安全组规则:JSON 响应
{
"security_group_default_rule": {
"from_port": 80,
"id": 1,
"ip_protocol": "TCP",
"ip_range": {
"cidr": "10.10.10.0/24"
},
"to_port": 80
}
}
创建一个默认安全组规则。
如果指定了源端口 (`from_port`) 或目标端口 (`to_port`) 值,则必须同时指定 IP 协议 (`ip_protocol`) 值。否则,操作将返回 `Bad Request (400)` 响应代码。
正常响应代码:200
错误响应代码:badRequest(400), unauthorized(401), forbidden(403), conflict(409), gone(410), notImplemented(501)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
security_group_default_rule |
body |
对象 |
一个 `security_group_default_rule` 对象。 |
ip_protocol |
body |
字符串 |
IP 协议。有效值为 ICMP、TCP 或 UDP。 |
from_port |
body |
整数 |
范围起始端口。 |
to_port |
body |
整数 |
范围结束端口。 |
cidr (可选) |
body |
字符串 |
地址范围的 CIDR。 |
示例:创建默认安全组规则:JSON 请求
{
"security_group_default_rule": {
"ip_protocol": "TCP",
"from_port": "80",
"to_port": "80",
"cidr": "10.10.10.0/24"
}
}
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
security_group_default_rule |
body |
对象 |
一个 `security_group_default_rule` 对象。 |
from_port |
body |
整数 |
范围起始端口。 |
id |
body |
字符串 |
默认安全组规则 ID。 |
ip_protocol |
body |
字符串 |
IP 协议。有效值为 ICMP、TCP 或 UDP。 |
ip_range |
body |
对象 |
一个 IP 范围对象。包含安全组规则 `cidr`。 |
ip_range.cidr (可选) |
body |
字符串 |
地址范围的 CIDR。 |
to_port |
body |
整数 |
范围结束端口。 |
示例:创建默认安全组规则:JSON 响应
{
"security_group_default_rule": {
"from_port": 80,
"id": 1,
"ip_protocol": "TCP",
"ip_range": {
"cidr": "10.10.10.0/24"
},
"to_port": 80
}
}
删除一个安全组规则。
正常响应代码:204
错误响应代码:badRequest(400),unauthorized(401),forbidden(403),itemNotFound(404),gone(410),notImplemented(501)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
security_group_default_rule_id |
路径 |
字符串 |
安全组规则的 UUID。 |
响应¶
Guest Agents (os-agents)¶
创建、列出、更新和删除 guest agent 构建。使用 guest agent 可以访问磁盘上的文件、配置网络或在 agent 运行时在 guest 中运行其他应用程序或脚本。此特定于 hypervisor 的扩展目前仅适用于 Xen 驱动程序。只有当底层服务提供商使用 Xen 驱动程序时,才可以使用 guest agent。
警告
这些 API 仅适用于 Xen 虚拟驱动程序,该驱动程序在 20.0.0 (Train) 版本中已弃用。它们在 22.0.0 (Victoria) 版本中被删除。
列出 agent 构建。
正常响应代码:200
错误响应代码:unauthorized(401),forbidden(403),gone(410)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
hypervisor (可选) |
查询 |
字符串 |
按 hypervisor 类型过滤响应。 |
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
agents |
body |
数组 |
guest agent 对象的列表。 |
agent_id |
body |
整数 |
agent ID。 |
architecture |
body |
字符串 |
CPU 架构的名称。 |
管理程序 |
body |
字符串 |
agent 的 hypervisor 类型。目前仅支持 `xen`。 |
md5hash |
body |
字符串 |
MD5 散列。 |
os |
body |
字符串 |
操作系统的名称。 |
url |
body |
字符串 |
与 agent 关联的 URL。 |
版本 |
body |
字符串 |
版本。 |
示例:列出 Agent 构建:JSON 响应
{
"agents": [
{
"agent_id": 1,
"architecture": "x86",
"hypervisor": "xen",
"md5hash": "add6bb58e139be103324d04d82d8f545",
"os": "os",
"url": "http://example.com/path/to/resource",
"version": "8.0"
}
]
}
创建一个 agent 构建。
正常响应代码:200
错误响应代码:badRequest(400),unauthorized(401),forbidden(403),conflict(409),gone(410)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
agent |
body |
对象 |
guest agent 对象。 |
管理程序 |
body |
字符串 |
agent 的 hypervisor 类型。目前仅支持 `xen`。 |
os |
body |
字符串 |
操作系统的名称。 |
architecture |
body |
字符串 |
CPU 架构的名称。 |
版本 |
body |
字符串 |
版本。 |
md5hash |
body |
字符串 |
MD5 散列。 |
url |
body |
字符串 |
与 agent 关联的 URL。 |
示例:创建 Agent 构建:JSON 请求
{
"agent": {
"hypervisor": "xen",
"os": "os",
"architecture": "x86",
"version": "8.0",
"md5hash": "add6bb58e139be103324d04d82d8f545",
"url": "http://example.com/path/to/resource"
}
}
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
agent |
body |
对象 |
guest agent 对象。 |
agent_id |
body |
整数 |
agent ID。 |
architecture |
body |
字符串 |
CPU 架构的名称。 |
管理程序 |
body |
字符串 |
agent 的 hypervisor 类型。目前仅支持 `xen`。 |
md5hash |
body |
字符串 |
MD5 散列。 |
os |
body |
字符串 |
操作系统的名称。 |
url |
body |
字符串 |
与 agent 关联的 URL。 |
版本 |
body |
字符串 |
版本。 |
示例:创建 Agent 构建:JSON 响应
{
"agent": {
"agent_id": 1,
"architecture": "x86",
"hypervisor": "xen",
"md5hash": "add6bb58e139be103324d04d82d8f545",
"os": "os",
"url": "http://example.com/path/to/resource",
"version": "8.0"
}
}
更新一个 agent 构建。
正常响应代码:200
错误响应代码:badRequest(400),unauthorized(401),forbidden(403),itemNotFound(404),gone(410)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
agent_build_id |
路径 |
字符串 |
agent 构建的 ID。 |
para |
body |
对象 |
参数对象。 |
url |
body |
字符串 |
与 agent 关联的 URL。 |
md5hash |
body |
字符串 |
MD5 散列。 |
版本 |
body |
字符串 |
版本。 |
示例:更新 Agent 构建:JSON 请求
{
"para": {
"url": "http://example.com/path/to/resource",
"md5hash": "add6bb58e139be103324d04d82d8f545",
"version": "7.0"
}
}
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
agent |
body |
对象 |
guest agent 对象。 |
agent_id |
body |
字符串 |
agent ID。(这是 API 的一个 bug,它应该是一个整数类型,与 agent 创建和列表响应一致。这将在未来的 microversion 中修复。) |
md5hash |
body |
字符串 |
MD5 散列。 |
url |
body |
字符串 |
与 agent 关联的 URL。 |
版本 |
body |
字符串 |
版本。 |
示例:更新 Agent 构建:JSON 响应
{
"agent": {
"agent_id": "1",
"md5hash": "add6bb58e139be103324d04d82d8f545",
"url": "http://example.com/path/to/resource",
"version": "7.0"
}
}
删除一个现有的 agent 构建。
正常响应代码:200
错误响应代码:badRequest(400),unauthorized(401),forbidden(403),itemNotFound(404),gone(410)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
agent_build_id |
路径 |
字符串 |
agent 构建的 ID。 |
响应¶
成功的 DELETE 查询没有响应正文内容
获取服务器的 RDP 控制台。
警告
与 HyperV 驱动程序一起,此操作已在 Nova 29.0.0 (caracal) 版本中删除。
唯一支持的连接类型是 `rdp-html5`。`type` 参数应设置为 `rdp-html5`。
在请求体中指定 `os-getRDPConsole` 操作。
正常响应代码:200
错误响应代码:badRequest(400)、unauthorized(401)、forbidden(403)、itemNotFound(404)、conflict(409)、notImplemented(501)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
server_id |
路径 |
字符串 |
服务器的 UUID。 |
os-getRDPConsole |
body |
对象 |
操作。 |
type |
body |
字符串 |
RDP 控制台的类型。唯一有效的值是 `rdp-html5`。 |
示例:获取 RDP 控制台 (os-getRDPConsole Action)
{
"os-getRDPConsole": {
"type": "rdp-html5"
}
}
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
console |
body |
对象 |
远程控制台对象。 |
type |
body |
字符串 |
RDP 控制台的类型。唯一有效的值是 `rdp-html5`。 |
url |
body |
字符串 |
用于连接到 RDP 控制台的 URL。 |
示例:获取 RDP 控制台 (os-getRDPConsole Action)
{
"console": {
"type": "rdp-html5",
"url": "http://127.0.0.1:6083/?token=191996c3-7b0f-42f3-95a7-f1839f2da6ed"
}
}