从单个存储删除镜像

包含您的 Launchpad 蓝图的 URL

https://blueprints.launchpad.net/glance/+spec/delete-from-store

新的 API 功能,用于从单个存储中删除镜像,而不是删除整个镜像。

问题描述

目前,从单个存储中删除镜像的唯一方法是暴露已知的有问题位置 API 并利用该 API 删除位置。 随着多存储支持的出现,从特定存储中删除镜像的用户用例肯定会更多。

提议的变更

为 Images API v2 引入新的“/v2/stores”端点,以提供安全的方式从特定存储中删除镜像。

新的 API 调用:‘DELETE /v2/stores/<StoreID>/<ImageID>’

备选方案

我们可以考虑利用当前的“v2/images/<ImageID>”端点,并在末尾附加存储 ID。 这种方法的风险是,API 用户很容易出错,删除 StoreID 并意外删除整个镜像,而不是仅仅从单个存储中删除它。

数据模型影响

REST API 影响

新的 API 端点“v2/stores/<StoreID>/<ImageID>”,仅接受 DELETE http 方法。

如果这是唯一的存储位置,请求将失败,表明用户应该删除镜像。

安全影响

此更改没有已知的安全影响。

通知影响

可以考虑通知镜像从存储中被删除。

其他最终用户影响

python-glanceclient 将具有支持此 API 调用的功能。

性能影响

此功能没有已知的性能影响。

其他部署者影响

开发人员影响

实现

负责人

主要负责人

jokke

工作项

  • glance-api 服务的 API 变更

  • 新功能测试

  • python-glanceclient 支持

  • 需要更新文档,包括新的工作流程

依赖项

测试

该更改需要单元测试和功能测试。

文档影响

参考资料