从 os-aggregates API 返回 UUID¶
https://blueprints.launchpad.net/nova/+spec/return-uuid-from-os-aggregates-api
本规范建议 os-aggregates REST API 在新的微版本中返回聚合的 UUID,以便可以在 Placement 服务中使用聚合 UUID 将聚合与资源提供者关联。
问题描述¶
在 Mitaka 中,我们开始为聚合自动生成 UUID,而在 Ocata 中,Placement API 允许通过聚合 UUID 将聚合与资源提供者关联。但是,os-aggregates REST API 尚未返回给定聚合的 UUID,因此管理员无法在 Placement API 中进行关联,而无需在 Nova API 数据库中进行直接查询。此更改建议 os-aggregates REST API 在新的微版本中返回聚合 UUID。
用例¶
作为操作员,我希望将计算主机聚合与共享存储池(在 Placement 服务中建模为资源提供者)关联,以便报告的磁盘清单和分配来自共享存储池,而不是本地磁盘。
作为操作员,我希望将计算主机聚合与子网 IP 分配池(在 Placement 服务中建模为资源提供者)关联,以便在创建使用该池中 Neutron 端口的服务器时,将服务器放置在这些特定的计算主机上。
提议的变更¶
拟议的更改相对简单,我们只需要在 os-aggregates REST API 的新微版本响应中公开聚合 UUID 即可。
备选方案¶
操作员可以直接查询数据库以获取聚合 UUID,但这充其量是一种解决方法,从可用性角度来看,这不是理想的长期解决方案。
数据模型影响¶
无
REST API 影响¶
在一个新的微版本中,在 os-aggregates REST API 返回聚合资源完整表示形式的所有响应中返回聚合 UUID 字段。这些将是除 DELETE 之外的所有方法。
一个返回 uuid 的 GET 响应示例
{
"aggregate": {
"availability_zone": "nova",
"created_at": "2016-12-27T23:47:30.563527",
"deleted": false,
"deleted_at": null,
"hosts": [],
"id": 1,
"metadata": {
"availability_zone": "nova"
},
"name": "name",
"updated_at": null,
"uuid": "fd0a5b12-7e8d-469d-bfd5-64a6823e7407"
}
}
安全影响¶
无
通知影响¶
无
注意
我们当前没有聚合资源操作的版本化通知,但当我们有的时候,我们应该在这些版本化通知中包含 Aggregate.uuid 字段。
其他最终用户影响¶
作为这项工作的一部分,我们还需要将微版本支持添加到 python-novaclient 中,以便在获取有关聚合的详细信息时也显示 UUID。
性能影响¶
无
其他部署者影响¶
无
开发人员影响¶
无
实现¶
负责人¶
- 主要负责人
Jay Pipes <jaypipes@gmail.com>
- 其他贡献者
Matt Riedemann <mriedem@us.ibm.com>
工作项¶
为 os-aggregates REST API 添加一个新的微版本,以便在显示聚合完整表示形式的响应中返回 UUID 字段。
在 python-novaclient 中显示聚合详细信息时,支持新的微版本。
依赖项¶
无。这项工作的大部分基础工作已在 Generic Resource Pools 蓝图中完成。
测试¶
将为 Tempest 添加测试,以测试新的微版本并验证响应模式。
将为 Nova 添加单元测试和功能测试,以测试新的微版本。
文档影响¶
将更新树内 API 参考,以获取 os-aggregates REST API 文档。
参考资料¶
在 Mitaka 中添加 Aggregates.uuid 字段的更改:https://review.openstack.org/#/c/282520/
历史¶
发布名称 |
描述 |
|---|---|
Ocata |
引入 |