显示服务器位于哪个服务器组 “nova show”

bp link

https://blueprints.launchpad.net/nova/+spec/show-server-group

问题描述

目前,需要循环遍历所有组才能找到服务器所属的组。此规格试图通过建议在 API GET /servers/{server_id} 中显示服务器组信息来解决这个问题。

用例

  • 管理员/最终用户希望以直接的方式了解服务器所属的服务器组。

提议的变更

建议将服务器组 UUID 添加到 GET /servers/{id}PUT /servers/{server_id} 和 REBUILD API POST /servers/{server_id}/action 中。

服务器组信息将不会包含在 GET /servers/detail API 中,因为服务器组信息需要另一个数据库查询。

备选方案

  • 一种替代方案是支持通过服务器 UUID 过滤服务器组。例如 GET /os-server-groups?server=<UUID>

  • 另一种支持服务器组查询的替代方案是以下 API:GET /servers/{server_id}/server_groups

数据模型影响

NO

REST API 影响

允许 GET /servers/{server_id} API 显示服务器组的 UUID。PUT /servers/{server_id} 和 REBUILD API POST /servers/{server_id}/action 也返回相同的信息。

服务器组返回的信息

{
    "server": {
        "server_groups": [ # not cached
               "0b5d2c72-12cc-4ba6-a8d7-3ff5cc1d8cb8"
        ]
    }
}

安全影响

N/A

通知影响

N/A

其他最终用户影响

  • python novaclient 将包含服务器组信息。

性能影响

  • 需要另一个数据库查询来检索服务器组 UUID。为了减少批量 API 调用带来的性能影响,GET /servers/detail 不会返回服务器组信息。

其他部署者影响

N/A

开发人员影响

N/A

升级影响

N/A

实现

负责人

主要负责人

Yongli He

工作项

  • 为此更改添加新的微版本。

依赖项

N/A

测试

  • 添加功能 api_sample 测试。

  • 为 tempest 添加与微版本相关的测试。

文档影响

  • API 文档应更改为介绍此新功能。

参考资料

历史

修订版

发布名称

版本

Stein

第一个版本