添加交换卷通知¶
https://blueprints.launchpad.net/nova/+spec/add-swap-volume-notifications
在更新卷附件(交换卷)时添加版本化的通知。
该蓝图已为 Mitaka 和 Newton 提出并批准。它是一个无规格的蓝图。但根据 [1],如果更改“需要多个提交”,则需要一个规格。因此提交此规格。
[2][3] 是实现此功能的补丁。
问题描述¶
目前,在更新卷附件(交换卷)时不会发出任何通知。更新卷附件是一个异步操作,因此无法通过 API 响应知道它是否成功完成。
用例¶
用户或操作员可以知道更新卷附件操作是否成功以及何时完成。
提议的变更¶
添加以下通知:
instance.volume_swap.start
instance.volume_swap.end
instance.volume_swap.error
备选方案¶
可以通过调用列出卷附件的 API(nova)或获取卷状态(cinder)来知道操作是否完成。但这效率低下。
数据模型影响¶
不需要数据库模式更改。
将添加以下新对象
@nova_base.NovaObjectRegistry.register_notification
class InstanceActionVolumeSwapPayload(InstanceActionPayload):
VERSION = '1.0'
fields = {
'old_volume_id': fields.UUIDField(),
'new_volume_id': fields.UUIDField(),
}
@nova_base.NovaObjectRegistry.register_notification
class InstanceActionVolumeSwapNotification(base.NotificationBase):
# Version 1.0: Initial version
VERSION = '1.0'
fields = {
'payload': fields.ObjectField('InstanceActionVolumeSwapPayload')
}
REST API 影响¶
无
安全影响¶
无
通知影响¶
添加以下通知:
instance.volume_swap.start
instance.volume_swap.end
instance.volume_swap.error
通知示例包含在 [2] 和 [3] 中。
其他最终用户影响¶
无
性能影响¶
无
其他部署者影响¶
无
开发人员影响¶
无
实现¶
负责人¶
- 主要负责人
natsume-takashi
工作项¶
添加 ‘instance.volume_swap.start’ 通知。[2]
添加 ‘instance.volume_swap.end’ 通知。[2]
添加 ‘instance.volume_swap.error’ 通知。[3]
依赖项¶
无
测试¶
添加以下测试。
通知示例功能测试
文档影响¶
版本化的通知示例将被添加到 Nova 开发者文档中。
参考资料¶
[1] 蓝图、规格和优先级 - 规格
[2] 添加交换卷通知(开始、结束)
[3] 添加交换卷通知(错误)
历史¶
注意:对于 Mitaka 和 Newton,此蓝图是一个无规格的蓝图。
发布名称 |
描述 |
|---|---|
Mitaka |
已批准 |
Newton |
重新批准 |
Ocata |
重新提出 |