收敛:在更新资源时使用实际状态

包含您的 Launchpad 蓝图的 URL

https://blueprints.launchpad.net/heat/+spec/get-reality-for-resources

使 Heat 了解实际状态,并在更新资源之前以实际状态为基础进行比较。本规范建议在资源类中添加 get_reality/collect_reality。

问题描述

由于云环境中的外部因素,堆栈中配置的资源可能会与其原始状态不同。由于 Heat 不知晓此变化,因此无法采取行动使其达到期望状态。此外,当用户尝试更新时,资源可能会进入错误状态,因为它不知道其状态,也无法执行任何纠正操作。Heat 需要检测实际状态的变化,并与新的属性进行比较,然后更新资源。

提议的变更

在 L 会议上讨论的解决方案是实现 get_reality 和 handle_get_reality。其想法是从实际状态获取资源属性,并将其与模板 + 环境中的当前属性进行比较,而不是与旧模板进行比较。当用户发出更新请求时,资源插件从实际状态获取当前资源属性,并与当前模板进行比较。如果有任何更改,则更新资源。

应使用 enable observer 配置选项来决定是否在更新资源之前获取实际状态。只有在配置中设置此选项时,才启用此功能。

这是收敛观察器规范的第一部分。观察器将依赖于 get_reality 和 handle_get_reality API。本次更改的范围仅限于实现从实际状态查找更改并在更新资源之前进行比较的机制。更大的工作涉及持续监控更改并持续采取行动。

更改主要位于 heat 资源类和插件中(如果需要)。

备选方案

无。

实现

负责人

主要负责人

prazumovsky ananta

里程碑

mitaka-1

工作项

1. 在资源插件中实现 get_reality/collect_reality。除了对实际状态的任何其他查询外,还可以使用现有的 show_resource 来获取实际状态。

2. 使用现有的 update/handle_update 根据 get_reality 的输出对资源采取必要的行动。

依赖项