为 sahara-scenario 添加 API 以集成到其他框架¶
https://blueprints.launchpad.net/sahara-tests/+spec/api-for-scenario-tests
Sahara 场景是测试 Sahara 的主要工具,我们可以提供 API,以便在其他工具/框架/测试中使用此框架。
问题描述¶
当您从另一个框架执行 Sahara 测试时,无法重用创建的场景,而需要在另一个框架中创建新的场景,并使用新的 Sahara 场景。我认为,我们可以实现一个简单的 Python API,用于从默认模板运行 Sahara 场景。例如,在具有破坏性测试或其他情况的框架中,这将非常有用。
提议的变更¶
重构当前的 runner.py 模块,将代码提取到 sahara_tests/scenario/utils.py 中,以便在 API 方法中重用。
我建议将包含
临时文件创建的,
处理 .mako 文件的,
运行测试的,
合并/生成场景文件的代码移动到
在 runner.py 中,我们应该只留下对这些方法的调用,以便更方便地使用。下一步是在 sahara_tests/scenario 中添加 api 目录,其中包含用于实现 API 的文件。
我认为,我们需要添加 api.py 文件,其中包含外部使用的函数
def run_scenario(plugin, version, release=None)
和 base.py 文件,用于准备运行文件以及未来的辅助方法。
未来我们可以将一个场景分解为步骤
创建节点组模板;
创建集群模板;
创建集群;
创建数据源;
创建作业二进制文件;
执行 EDP;
替代方案¶
无
数据模型影响¶
无
REST API 影响¶
无
其他最终用户影响¶
无
部署者影响¶
无
开发者影响¶
无
Sahara-image-elements impact¶
无
Sahara-dashboard / Horizon 影响¶
无
实现¶
负责人¶
- 主要负责人
esikachev
工作项¶
将方法从 runner.py 移动到
添加通过 API 运行测试的能力
添加用于测试 API 的作业
依赖项¶
无
测试¶
我们可以在 Sahara-ci 上创建单独的作业,并使用自定义脚本来检查 API 调用和操作的正确执行。
文档影响¶
API 实现应在 Sahara-tests 文档中提及。
参考资料¶
无