将事件推送到用户¶
https://blueprints.launchpad.net/heat/+spec/event-transport
问题描述¶
目前事件存储在数据库中,用户需要使用 API 来轮询它们并接收堆栈更改的通知。这对于钩子来说尤其麻烦,因为 Heat 正在等待用户输入。
提议的变更¶
为了让用户自定义他们想要获取事件的方式,我们向环境添加一个键来指定事件应该发送到哪里
event_sinks:
- type: zaqar-queue
target: myqueue
ttl: 30
event_sinks 是一个带有指定类型和可能选项的目标列表(例如这里的 ttl 是 Zaqar 选项)。Zaqar 将是第一个可用的实现,将所有事件发送到指定的队列。
我们将使用 stevedore 的入口点来允许可插拔的实现。
为了不在每个事件的关键路径上添加网络调用,发布将委托给一个线程,因此是异步的。缺点是潜在的错误不会呈现给用户。
事件将继续进入数据库。
备选方案¶
与其使其成为用户可配置的选项,不如使其成为 Heat 管理员的全局选项。这使得它不太容易被发现,并且可能不是每个用户都需要的功能。我们也会失去可配置性。
实现¶
负责人¶
- 主要负责人
therve
里程碑¶
- 完成目标里程碑
mitaka-1
工作项¶
更改环境以处理新元素。
修改处理客户端的环境。
实现通过 zaqar 发送。