重新整理 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

工作项