重新整理 Nova 响应模式¶
https://blueprints.launchpad.net/tempest/+spec/rearrange-nova-response-schemas
重新排列 Nova 响应模式
问题描述¶
计算响应模式已为 v2 和 v3 API 实现。当时,公共部分定义在公共模式中,特定版本则定义在各自的目录(v2 & v3)中。
现在 v3 API 对 Nova 来说不再有效,并且 v2 和 v2.1 API 的响应相同。在移除 v3 模式 (https://review.openstack.org/#/c/141274/) 后,我们只剩下 v2 (/v2.1) API 的一套模式,但这些模式分散在不同的结构中。
由于模式定义在多个文件中,因此很难阅读和理解 API 的完整模式。
提议的变更¶
将当前模式重新整理成更好的文件/目录结构,并在需要时,根据 API 方法更清晰地定义模式名称。
由于 Nova v2.1 API 是当前 API (https://review.openstack.org/#/c/149948/),我们应该将所有当前模式文件移动到名为 v2.1 的目录中。由于 nova 将要发布微版本,因此微版本的模式文件需要移动到各自的新目录中。
以下是重新整理的详细信息-
- 目录结构-
api_schema/response/compute/v2.1/ -> 将包含所有 v2.1 的模式文件。api_schema/response/compute/v2.2/ -> 将包含所有 v2.2 的模式文件。依此类推
- 每个资源模式将在 v2.1 目录下的单个文件中定义
例如 -hypervisors.py 将包含所有 hypervisor 资源 API 的模式。
每个模式名称都应该足够清晰,以便轻松理解其定义的 API。例如 -
list_hypervisors - 列出 hypervisors API 模式
list_hypervisors_detail - hypervisors 详细列表
create_get_update_<资源名称> - 如果任何资源的创建、获取和更新 API 的模式相同。
注意- 大多数模式名称都按照上述指南定义,但如果有任何具有误导性的名称,则需要修复它们。例如 - quota 类集合和 quota 集合模式在 quotas.py 和 quota_classes.py 中使用相同的名称 (quota_set) 定义。
在上述重新整理之后,将更容易维护这些模式。
替代方案¶
保持原样会使模式的可读性和维护变得困难。
实现¶
负责人¶
- 主要负责人
Ghanshyam Mann<ghanshyam.mann@nectechnologies.in>
里程碑¶
完成目标里程碑
kilo-3
工作项¶
根据建议的想法更改模式。
根据新的路径导入更改后的模式。
工作将在以下网址跟踪:https://etherpad.openstack.org/p/rearrange-compute-response-schemas