添加 v2 API 端点以检索不同范围的状态¶
https://storyboard.openstack.org/#!/story/2005395
注意
此规范是更大规范的详细实现的一部分。如果您尚未阅读,请参阅 https://review.opendev.org/#/c/657393/
问题描述¶
目前,管理员无法知道某个范围的数据处理到哪个日期,除非查看 cloudkitty_storage_states SQL 表。然而,这对于生成发票/报告至关重要,因为您必须确保计费的整个期间已被处理。
提议的变更¶
应通过 API 提供此信息。本文档描述了一个 V2 API 端点。它仅对管理员可用。
备选方案¶
无。
数据模型影响¶
无。
REST API 影响¶
将在 /v2/scope 上添加一个端点,支持 GET HTTP 方法。
在此端点上的 GET 请求将返回所有范围的分页列表,并支持对范围、fetcher、collector 和/或 scope_key 进行可选过滤。
该方法将支持以下参数
offset:(可选,默认为 0) 应返回的第一个范围的偏移量。limit:(可选,默认为 100) 要返回的最大结果数。scope_id:(可选) 可以多次指定。用于过滤的一个或多个 scope_id。collector:(可选) 可以多次指定。用于过滤的一个或多个 collector。fetcher:(可选) 可以多次指定。用于过滤的一个或多个 fetcher。scope_key:(可选) 可以多次指定。用于过滤的一个或多个 scope_key。
响应将采用以下格式
{
"results": [
{
"collector": "gnocchi",
"fetcher": "keystone",
"scope_id": "7a7e5183264644a7a79530eb56e59941",
"scope_key": "project_id",
"state": "2019-05-09 10:00:00"
},
{
"collector": "gnocchi",
"fetcher": "keystone",
"scope_id": "9084fadcbd46481788e0ad7405dcbf12",
"scope_key": "project_id",
"state": "2019-05-08 03:00:00"
},
{
"collector": "gnocchi",
"fetcher": "keystone",
"scope_id": "1f41d183fca5490ebda5c63fbaca026a",
"scope_key": "project_id",
"state": "2019-05-06 22:00:00"
}
]
}
在此端点上 GET 请求的预期 HTTP 成功响应代码是 200 OK。
在此端点上 GET 请求的预期 HTTP 错误响应代码是
400 错误请求:请求格式错误。403 Forbidden:用户没有检索范围状态的必要权限。404 Not Found:未找到与提供的过滤器匹配的范围。
此端点仅对管理员授权。
安全影响¶
任何访问此端点的用户都将能够检索有关 Cloudkitty 评级的所有范围的状态信息。因此,应谨慎地将此端点的访问权限授予非管理员用户。
通知影响¶
无。
其他最终用户影响¶
客户端也将更新,以便包含一个函数和一个 CLI 命令,允许检索有关不同范围状态的信息。
性能影响¶
无。
其他部署者影响¶
管理员和部署者将更容易检索范围状态信息。
开发人员影响¶
无。
实现¶
负责人¶
- 主要负责人
<peschk_l>
工作项¶
使用单元测试实现 API 端点
添加 tempest 测试
在客户端中支持此端点。
依赖项¶
无。
测试¶
将添加该端点的 tempest 测试。
文档影响¶
该端点将被添加到 API 参考中。
参考资料¶
获取/重置范围状态的规范:https://review.opendev.org/#/c/657393/