增强 Mgmt-Show 以支持已删除的实例¶
蓝图
https://blueprints.launchpad.net/trove/+spec/mgmt-show-deleted
目前,GET /v1.0/<tenant_id>/mgmt/instances/<instance_id> 对于标记为已删除的 Trove 实例不起作用。
建议引入一个可选的查询参数,指示无论 Trove 实例是否标记为已删除,都应返回 Trove 实例信息。
问题描述¶
如果没有 API 可以检索已删除实例的信息,部署者将被迫直接查询 Trove 基础设施数据库。
mgmt-list 操作支持在提供 ?deleted=true 时返回已删除的实例,因此,通过 mgmt-show 访问已删除实例的附加信息是合理的。
用例¶
作为部署者,我希望能够检索已删除的 Trove 实例的信息。
提议的变更¶
在 GET /v1.0/<tenant_id>/mgmt/instances/<instance_id> 中支持 ?deleted=true/false 查询参数
行为变更
如果
deleted=true,并且 Trove 实例 UUID 存在于基础设施数据库中,则返回实例信息,请求成功。如果
deleted=false,或者省略了 deleted 查询参数,则只有在 trove 实例未标记为已删除时,请求才会成功。如果 compute_instance_id 存在于 trove.instances 行中,即使 Nova API 查询失败,也将其在 mgmt-show 响应的 instance.server.id 中返回。
如果 volume_id 存在于 trove.instances 行中,即使 Cinder API 查询失败,也将其在 mgmt-show 响应的 instance.volume.id 中返回。
配置¶
没有配置变更。
数据库¶
没有数据库变更。
公共 API¶
没有公共 API 变更。
公共 API 安全¶
没有公共 API 安全相关的变更。
管理 API¶
GET /v1.0/<tenant_id>/mgmt/instances/<instance_id> 将被增强以支持 ‘deleted’ 查询参数。
作为参考,mgmt-show 的响应:http://git.io/2RwWWA
目前,如果 Nova API 不识别 compute_instance_id,mgmt-show 响应将不会包含 instance.server{}. 同样,如果 Cinder API 不识别 volume_id,mgmt-show 响应将不会包含 instance.volume{}.
此蓝图通过始终返回 instance.server.id 和 instance.volume.id(如果它们存在于 trove.instances 表中)来更改此行为。
内部 API¶
没有内部 API 更改。
Guest Agent¶
没有 Guest Agent 变更。
备选方案¶
鉴于其他 Trove 路由中使用 ‘deleted=true/false’ 的现有技术,没有相关的替代方案。
依赖项¶
没有依赖项。
测试¶
标准。
文档影响¶
如果管理 API 已记录(我不认为它已记录),那么添加 ‘deleted’ 查询参数是相关的。
参考资料¶
无。