支持备份的元数据¶
https://blueprints.launchpad.net/cinder/+spec/metadata-for-backup
为备份资源添加一个新的“metadata”属性。
问题描述¶
备份资源失去了获取/设置元数据属性的能力。
用例¶
这里的元数据指的是描述性元数据。它用于发现和识别。用户可以为备份添加键值对来描述它们。用户还可以使用指定的元数据过滤备份。
提议的变更¶
“metadata”属性将被添加到备份对象中。
2. 将创建一个新的 DB 表“backup_metadata”。
-----------------------------------------------------------------------
| created_at | updated_at | deleted_at | id | backup_id | key | value |
-----------------------------------------------------------------------
| | | | | | | |
-----------------------------------------------------------------------
主键是“id”。
3. 备份创建/更新 API 将被更新以支持“metadata”。
POST /v3/{project_id}/backups
PUT /v3/{project_id}/backups/{backup_id}
the request body can contain "metadata".
{
"metadata":{
"key1": "value1",
"key2": "value2"
}
}
4. 将创建一组新的 API。它用于备份元数据的 CRUD 操作。
GET /v3/{project_id}/backups/{backup_id}/metadata
show a backup's metadata
POST /v3/{project_id}/backups/{backup_id}/metadata
create or replaces metadata for a backup
PUT /v3/{project_id}/backups/{backup_id}/metadata
replace all the backup's metadata
GET /v3/{project_id}/backups/{backup_id}/metadata/{key}
show a backup's metadata for a specific key
DELETE /v3/{project_id}/backups/{backup_id}/metadata/{key}
delete a specified metadata
PUT /v3/{project_id}/backups/{backup_id}/metadata/{key}
update a specified metadata
备选方案¶
保持不变。
数据模型影响¶
备份模型将使用新的属性“metadata”进行更新。
REST API 影响¶
备份创建/更新 API 的请求体将被更新。
将创建一组与备份元数据相关的新的 API。
安全影响¶
无
通知影响¶
新的 API 也会发送新的通知。
其他最终用户影响¶
无
性能影响¶
将创建一个新的“backup_metadata”表,以便 DB 连接操作可能会略微降低搜索性能。
其他部署者影响¶
无
开发人员影响¶
无
实现¶
负责人¶
- 主要负责人
wangxiyuan(wxy)
工作项¶
为备份对象添加元数据属性并提升其版本。
创建一个新的 DB 表“backup_metadata”并添加 db 升级脚本。
更新备份创建/更新 API。
添加一组用于备份元数据的新的 API。
依赖项¶
无
测试¶
单元测试
文档影响¶
Api-ref 需要更新。
参考资料¶
无