扩展其他存储的 stores-info 详细信息¶
https://blueprints.launchpad.net/glance/+spec/expanding-stores-detail
问题描述¶
在 Yoga 版本中,我们添加了一个新的 API (GET /v2/info/stores/detail),它暴露了存储特定的详细信息。目前,Discovery API 仅暴露 RBD 后端的存储详细信息和属性。我们希望使 API 更加通用,并暴露其他存储的详细信息。
提议的变更¶
我们将扩展 Discovery (GET /v2/info/stores/detail) API 的功能,该 API 将暴露有关存储的存储特定详细信息,例如存储类型以及 cinder、swift、filesystem 等其他存储的特定存储属性。可以为不同存储提供的好处选项
Cinder: cinder_volume_type
Filesystem: filesystem_store_dir, chunk_size, thin_provisioning, filesystem_store_dirs
Swift: container, obj_size 和 chunk_size
S3: s3_store_large_object_size, s3_store_large_object_chunk_size, s3_store_thread_pools
我们将使用现有的方法 get_store_from_store_identifier,该方法返回存储类实例,并利用它来获取存储特定信息,并通过 API 返回它。
备选方案¶
无
数据模型影响¶
无
REST API 影响¶
通过这种新的实现,我们将现在为其他存储(除了 RBD)返回“properties”值。
GET /v2/info/stores/detail
输出如下
{
"stores": [
{
"id":"reliable",
"type": "rbd",
"description": "Reliable RBD store",
"default": true,
"properties": {
"pool": "pool1"
"chunk_size": 65553
"thin_provisioning": false
}
},
{
"id":"cheap",
"type": "file",
"description": "Cheap file store",
"properties": {
"datadir": "fdir"
"chunk_size": 65553
"thin_provisioning": false
}
},
{
"id":"fast",
"type": "cinder",
"description": "Fast Cinder Store",
"properties": {
"volume_type": "volume1"
"use_multipath": false
}
},
{
"id":"slow",
"type": "swift",
"description": "Slow Swift store",
"properties": {
"container": "container1"
"obj_size": 52428
"chunk_size": 204800
}
},
]
}
安全影响¶
此 API 确实暴露了一些额外的敏感信息,但仅对管理员开放,这与其他我们已经暴露的信息一致。
通知影响¶
无
其他最终用户影响¶
无
性能影响¶
无
其他部署者影响¶
无
开发人员影响¶
无
实现¶
负责人¶
- 主要负责人
mrjoshi, whoami-rajat
- 其他贡献者
无
工作项¶
从特定的存储/后端获取详细信息,并在 API 响应中返回它
依赖项¶
无
测试¶
单元测试
功能测试
文档影响¶
添加文档,提供有关为每个存储暴露的属性的详细信息
参考资料¶
https://review.opendev.org/c/openstack/glance-specs/+/817391 https://review.opendev.org/c/openstack/glance/+/824438