随时终止租约

https://blueprints.launchpad.net/blazar/+spec/terminate-lease-at-anytime

即使租约已经开始,也允许随时终止租约。

问题描述

Blazar 不允许删除任何已经开始的租约。虽然可以通过带有适当“end_date”参数的租约更新请求来更改租约的结束时间,但应该提供一个更直观的操作来实现立即终止租约。

用例

  • 作为 Wei,我希望能够在任何时间点查询/更新/终止资源使用请求。(来自 容量管理用户故事

提议的变更

支持两种租约终止方式。

  1. 通过带有“end_date” = “now”的租约更新请求终止租约

    修改 ManagerService 类的 update_lease() 方法,使其接受一个“end_date”参数等于“now”的请求。然后,update_lease() 方法调用资源插件的 on_end() 方法来终止租约。

  2. 通过删除租约请求终止租约

    修改 ManagerService 类的 delete_lease() 方法,使其接受一个请求,即使租约已经开始。然后,update_lease() 方法调用资源插件的 on_end() 方法,并从 Blazar 数据库中删除租约的条目。

备选方案

无。

数据模型影响

无。

REST API 影响

  • URL: PUT /<version>/leases/<id>

    允许“end_date”参数为“now”。

安全影响

无。

通知影响

无。

其他最终用户影响

无。

性能影响

无。

其他部署者影响

无。

开发者影响

无。

实现

负责人

主要负责人

hiro-kobayashi

工作项

  • 修改 ManagerService 类的 update_lease() 方法。

  • 修改 ManagerService 类的 delete_lease() 方法。

依赖项

依赖于 on-end-options 蓝图,因为它改变了资源插件的 on_end 行为,而这些插件会被 update_lease() 和 delete_lease() 方法调用。这个随时终止租约蓝图应该在 on-end-options 蓝图的强制删除功能实现之后实现。

测试

  • 检查可以通过带有“end_date”等于“now”的租约更新请求终止租约。

  • 检查即使租约已经开始,也可以通过删除租约请求终止并删除租约。

文档影响

无。

参考资料

历史记录

修订

发布名称

描述

Pike

引入