为其他资源添加分页¶
https://blueprints.launchpad.net/cinder/+spec/add-pagination-to-other-resource
本规范旨在继续我们在 Liberty 版本中完成的工作,为其他 Cinder 资源添加分页支持。
问题描述¶
在 Liberty 版本中,我们根据 bp[1] 为备份和快照添加了分页。 仍有一些工作尚未完成。 在 Mitaka 版本中,我们计划为 CG、卷类型和 Qos 规范添加分页支持。
用例¶
在大型云系统中,最终用户和构建在 Cinder 之上的管理系统可以通过使用分页、过滤和排序功能来快速查询,从而提高查询性能。
提议的变更¶
一致性组:重构当前实现,使用数据库分页查询,并在查询请求中添加过滤和排序支持。
卷类型:在查询请求中添加分页和排序支持。
Qos 规范:在查询请求中添加分页、过滤和排序。
像备份和快照中一样,添加 SQL 分页查询支持。
备选方案¶
无
数据模型影响¶
无
REST API 影响¶
根据 API-wg 关于分页、过滤和排序的指南[2]
GET /v2/{project_id}/{resource}?limit=xxx&marker=xxx&sort=xxx&{filter}=xxx
RESP BODY: {"resource_links": [{xxx}],
"resource": [{xxx}, {xxx}, ..., {xxx}]
}
安全影响¶
无
通知影响¶
无
其他最终用户影响¶
无
性能影响¶
无
其他部署者影响¶
无
开发人员影响¶
无
实现¶
负责人¶
- 主要负责人
wanghao<wanghao749@huawei.com>
- 其他贡献者
无
工作项¶
为三个资源添加分页支持。 * 在数据库分页查询中实现代码。 * 在列表查询 API 中实现代码。 * 测试代码。
更新 cinderclient 以支持这些资源的功能。
更新 API 文档。
依赖项¶
无
测试¶
需要创建单元测试和 Tempest 测试来覆盖代码更改。
文档影响¶
需要更新 Cinder API 文档以反映 REST API 的更改。
参考资料¶
[1]https://blueprints.launchpad.net/cinder/+spec/extend-limit-implementations [2]https://github.com/openstack/api-wg/blob/master/guidelines/pagination_filter_sort.rst