V1 API 评分模块端点迁移至 V2 API¶
https://storyboard.openstack.org/#!/story/2006572
由于 v1 API 即将冻结,为了实现一个完整的 v2 API,同时包含现有的 v1 功能和新的 v2 功能,需要迁移那些 v2 API 中不存在的端点。本规范涉及 /v1/rating/modules 端点。
问题描述¶
由于计划弃用 v1 API,因此必须将 /v1/rating/modules 端点移植到 v2。v2 API 的动机在相关的 规范 中有记录。
提议的变更¶
将现有的 /v1/rating/modules 实现到 v2 API 中。这是将 v1 端点迁移到 v2 API 的更广泛工作的一部分。
备选方案¶
无。
数据模型影响¶
无。
REST API 影响¶
这将添加 /v2/rating/modules 端点,类似于 v1 API。
GET /v2/rating/modules 返回已加载的模块列表。它不需要任何参数。响应体将包含模块列表
{
"modules": [
{
"module_id": "f6f4f726-583z-4a09-a972-c908dea4c291"
"description": "Sample extension.",
"enabled": true,
"hot-config": false,
"priority": 2
},
[...]
]
}
GET /v2/rating/modules/<module_id> 返回 URL 中 ID 指定的模块。它不需要任何参数。响应体包含单个模块
{
"module_id": "f6f4f726-583z-4a09-a972-c908dea4c291",
"description": "Sample extension.",
"enabled": true,
"hot-config": false,
"priority": 2
}
PUT /v2/rating/modules/<module_id> 更改模块的状态和优先级。它要求查询体中存在要更新的字段
{
"enabled": false,
"priority": 42
}
对于两个 GET 端点,预期的响应代码是 200 OK。对于 PUT 端点,预期的响应是 204 NO CONTENT,因为响应体为空。所有 3 个端点的预期 HTTP 错误响应代码是
400 错误请求:请求格式错误。401 未授权:用户未经过身份验证。403 禁止访问:用户未获得授权。
安全影响¶
所有添加的端点将保持与 v1 API 相同的策略:查询 API 端点需要管理员凭据。添加的端点仅将现有功能从 v1 移植到 v2 API,不会产生任何其他安全影响。
通知影响¶
未来计划通过对添加的端点查询触发的通知重新加载。
其他最终用户影响¶
无。
性能影响¶
无。
其他部署者影响¶
无。
开发人员影响¶
无。
实现¶
负责人¶
- 主要负责人
qanglade/qanglade
- 其他贡献者
lukapeschke/peschk_l
工作项¶
在 v2 API 中实现
/v1/rating/modules端点,包括单元测试和文档向 tempest 插件添加功能测试
向 CloudKitty 的客户端添加支持
依赖项¶
无。
测试¶
除了常规单元测试外,tempest 插件将被更新以添加针对添加的端点的新测试。
文档影响¶
v2 API 参考将被更新以反映更改。
参考资料¶
无。