状态机¶
Blazar 对象(租约、预留和事件)每个都有一个状态。本文档详细描述了这些状态。
租约状态¶
租约状态分为两种类型:稳定状态或过渡状态。在下面的状态图中,稳定状态绘制为黑色节点,而过渡状态绘制为灰色节点。状态转换由 API 调用或租约中的事件触发。
租约具有以下四种稳定状态
PENDING:租约已成功创建,并已准备好启动。租约将保持此状态,直到启动为止。
ACTIVE:租约已启动并处于活动状态。
TERMINATED:租约已成功终止。
ERROR:租约发生了不可恢复的故障。
过渡状态如下
CREATING:租约正在创建中。
STARTING:租约正在启动中。
UPDATING:租约正在更新中。
TERMINATING:租约正在终止中。
DELETING:租约正在删除中。任何状态都可以更改为此状态,因为删除操作具有最高优先级。例如,当租约在 STARTING 状态下挂起时,应允许删除。
如果某个操作可能导致无效的状态转换,则该操作将被拒绝。例如,如果用户在租约启动时发送更新租约请求,则该更新租约请求将被拒绝,因为从 STARTING 到 UPDATING 的转换无效。
预留状态¶
预留具有以下四种状态。为了向后兼容,使用小写字母
pending:预留已成功创建,并已准备好启动。预留将保持此状态,直到启动为止。
active:预留已启动并处于活动状态。
deleted:已成功释放预留资源。
error:资源发生了不可恢复的故障。
事件状态¶
事件状态如下。
状态之间的关系¶
下表显示了租约状态需要满足的预留和事件的状态条件。
租约 |
预留 |
活动 |
|---|---|---|
CREATING |
待定 |
start_lease: UNDONE , end_lease: UNDONE |
PENDING |
待定 |
start_lease: UNDONE , end_lease: UNDONE |
STARTING |
pending 或 active 或 error |
start_lease: IN_PROGRESS , end_lease: UNDONE |
ACTIVE |
active |
start_lease: DONE , end_lease: UNDONE |
TERMINATING |
active 或 deleted 或 error |
start_lease: DONE , end_lease: IN_PROGRESS |
TERMINATED |
deleted |
start_lease: DONE , end_lease: DONE |
DELETING |
任何状态 |
任何状态 |
UPDATING |
任何状态 |
任何状态,除了 IN_PROGRESS |
blazar/status 模块¶
blazar/status 模块定义和管理这些状态。