数据源脚手架¶
https://blueprints.launchpad.net/vitrage/+spec/datasource-scaffold
一个命令行工具,用于生成新的数据源骨架。骨架包含所需类和方法的存根,如设计规范中所述,不包含详细实现。它的目标是启动新的数据源开发。
问题描述¶
设计规范提供了关于如何添加新的数据源的详细说明。但是,从头开始创建它需要很多工作。开发者通常会从现有的数据源复制作为起点。这有时会过时,并且总是包含许多特定代码。
提议的变更¶
创建数据源骨架的模板,其中包含名称占位符,并按需渲染 Python 源代码文件。
示例模板使用 Jinja2
from oslo_config import cfg
from vitrage.common.constants import UpdateMethod
{{ name|upper }}_DATASOURCE = '{{ name }}'
# define needed options
OPTS = [
# Transformer with the path to your transformer classes
cfg.StrOpt('transformer',
default='vitrage.datasources.{{ name }}_datasource.transformer.'
'{{ name|capitalize }}Transformer',
help='{{ name|capitalize }} transformer class path',
required=True),
提供 name=foo,它将生成 Python 中的骨架源代码文件
from oslo_config import cfg
from vitrage.common.constants import UpdateMethod
FOO_DATASOURCE = 'foo'
# define needed options
OPTS = [
# Transformer with the path to your transformer classes
cfg.StrOpt('transformer',
default='vitrage.datasources.foo_datasource.transformer.'
'FooTransformer',
help='Foo transformer class path',
required=True),
备选方案¶
创建并维护一个示例数据源,允许用户将其修改为基础。 这样,开发者不太可能像我们在废弃的补丁集中所经历的那样,在某个地方遗漏字符串替换。
数据模型影响¶
无
REST API 影响¶
无
版本影响¶
无
其他最终用户影响¶
无
部署者影响¶
无
开发者影响¶
无
Horizon 影响¶
无
实现¶
负责人¶
- 主要负责人
yujunz
- 其他贡献者
无
工作项¶
创建数据源骨架模板 - 驱动程序 - 转换器
创建单元测试骨架模板 - 测试驱动程序 - 测试转换器 - 模拟配置 - 模拟驱动程序 - 跟踪生成器
具有不同更新方法的数据源模板
依赖项¶
无
测试¶
这些更改应由新的单元测试覆盖。
文档影响¶
将记录如何使用生成器。