将场景测试迁移到独立的仓库¶
https://blueprints.launchpad.net/sahara/+spec/move-scenario-tests-to-separate-repo
场景测试代表着一个独立的 Sahara 测试框架。将场景测试迁移到独立的仓库将使测试 Sahara 稳定版本更加方便。迁移应该以一种方式进行,无需预配置 CI 或任何其他外部工具,只需安装场景框架并启动测试即可。
问题描述¶
存在 2 个需要解决的问题:1. 难以将测试独立于 Sahara 进行打包。2. 无法独立发布这些测试。
提议的变更¶
首先建议实现一种正确的测试安装方法。接下来,应该创建一个新的仓库,并将所有 Sahara 场景测试移动到该仓库。之后,所有 sahara-ci 作业都应该迁移到新的场景测试运行机制。
场景框架本身应该得到改进,以便能够正确跳过早期 Sahara 版本中不可用的功能测试。测试 stable/kilo 和 stable/liberty 分支可能需要对相应的场景进行一些更新。CI 应该首先开始运行 stable/kilo 和 stable/liberty 的场景测试,并继续测试 2 个最新的稳定版本。
拥有独立的仓库允许将这些测试用作 Sahara 的插件(例如 tempest 的客户端测试,无需发布)。也许场景测试将安装在 virtualenv 中。
场景框架和测试本身可以被打包和发布。然后应该将所有要求安装到当前的操作系统。然而,这暗示着场景框架依赖项也应该被打包和安装。许多这些要求既没有打包在 MOS 中,也没有打包在 RDO 中。
有两种方法可以解决这个问题:1. 手动更新要求,使其与 2 个之前的稳定版本兼容。2. 将所有变化的依赖项从 requirements 移动到 test-requirements。
定义场景的 Yaml 文件是测试框架的一部分,应该将它们移动到新的场景测试仓库中。
下一步是为每个插件添加默认模板,在每个稳定版本中包含正确的 flavors、node processes。例如,2 个先前稳定版本的插件列表
kilo: vanilla 2.6.0, cdh 5.3.0, mapr 4.0.2, spark 1.0.0, ambari 2.2/2.3
liberty: vanilla 2.7.1, cdh 5.4.0, mapr 5.0.0, spark 1.3.1, ambari 2.2/2.3
每个默认模板应该实现为 Yaml 文件,将在 CI 上运行。
替代方案¶
另一种选择是打包测试,以便更轻松地安装和使用。例如,运行 vanilla 2.7.1 插件测试的命令将是
$ sahara_tests -p vanilla -v 2.7.1
数据模型影响¶
无
REST API 影响¶
无
其他最终用户影响¶
无
部署者影响¶
Deployers 应该切换 CI 以使用带有场景测试的新仓库,而不是当前的 Sahara 仓库。
开发者影响¶
无
Sahara-image-elements impact¶
无
Sahara-dashboard / Horizon 影响¶
无
实现¶
负责人¶
- 主要负责人
esikachev
工作项¶
这将需要以下更改
实现测试的安装机制。
将测试迁移到独立的仓库(包含 scenario_unit 测试)。
更新 sahara-ci 作业以使用新的场景测试仓库。
为每个插件和版本添加默认模板。
更新场景框架以正确测试之前的版本。
在 sahara-ci 上添加新的作业,用于在之前的版本上测试 Sahara。
添加测试打包功能。
依赖项¶
无
测试¶
无
文档影响¶
需要添加文档,其中包含“如何运行 Sahara 场景测试”的描述。
参考资料¶
无