从外部文件包含模板定义¶
https://blueprints.launchpad.net/vitrage/+spec/definition-templates
定义特殊的模板文件,这些文件仅包含定义(实体/关系,不包含场景),然后可以在其他模板文件中包含它们,并在那里创建新的场景。
问题描述¶
许多模板都在为它们的场景重新定义相同的实体和关系。
提议的变更¶
将一个新文件(或一组文件)添加到“def_templates”目录中。这些文件与模板相同,但不包含场景或“include”部分(仅包含定义)。
metadata:
name: alarm_on_host_defs
description: basic def_template example
definitions:
entities:
- entity:
category: ALARM
type: nagios
name: host_problem
template_id: alarm
- entity:
category: RESOURCE
type: nova.host
template_id: resource
relationships:
- relationship:
source: alarm
target: resource
relationship_type: on
template_id : alarm_on_host
在模板中添加一个“include”部分,该部分说明要包含的名称,如定义模板的元数据中所示。可以添加多个定义模板。
metadata:
name: alarm_on_host_scenario
description: basic template with an include section example
definitions:
entities:
- entity:
...
relationships:
- relationship:
...
include:
- name: alarm_on_host_defs
- name: ...
scenarios:
- scenario:
condition: alarm_on_host
actions:
- action:
action_type: set_state
properties:
state: SUBOPTIMAL
action_target:
target: resource11
备选方案¶
无
数据模型影响¶
无
REST API 影响¶
无。应在未来的模板 CRUD 实现中解决。
版本影响¶
无 - 旧模板格式仍然受支持。引入了一个替代版本。
其他最终用户影响¶
无
部署者影响¶
无
开发者影响¶
无
Horizon 影响¶
模板 UI 应更改为显示定义模板文件。
拓扑视图¶
无影响
RCA 视图¶
无影响
实体图¶
无影响
摘要¶
无影响
实现¶
负责人¶
- 主要负责人
nivolas
- 其他贡献者
无
工作项¶
在范围之内
加载定义模板。
验证定义模板。
测试
文档
以下项目不在范围之内
包含场景的定义模板。
递归包含(一个定义模板不能包含其他定义模板)。
依赖项¶
无
测试¶
该实现将由额外的单元测试和 tempest 测试覆盖。
文档影响¶
关于如何定义定义模板文件以及何时使用它们的文档
参考资料¶
无