将 tempest 编排场景测试变为 heat 功能测试

包含您的 Launchpad 蓝图的 URL

https://blueprints.launchpad.net/heat/+spec/functional-tests

将所有 OpenStack 功能测试都放在 tempest 中不再具有可扩展性,因此 heat 功能测试需要位于 heat 仓库中。

问题描述

现有的 tempest 编排场景测试需要迁移到 heat 仓库中,方式是无需依赖 tempest 代码,并且以最少的开发工作量完成。

heat gate 需要切换到运行 heat 功能测试,以及 tempest 中剩余的任何编排测试。

提议的变更

这项工作的计划方案如下

  • 将 tempest.scenario.orchestration 移植到 heat functionaltests

  • 复制并修改任何支持性的 tempest 代码到 functionaltests 的子包中,以使测试能够运行

  • 替换从 tempest.conf 加载的配置,最初无需配置文件,具体来说

    • 测试将使用从环境变量中获取的凭据运行,heatclient 默认情况下也是这样做的

    • 引用云资源的配置将硬编码与 devstack 设置的值相对应的数值,如果云资源名称不匹配,测试将失败。 这适用于配置值:image_ref、keypair_name、instance_type、network_for_ssh

    • build_timeout 将被赋予一个默认值,该值可以从环境变量中覆盖

  • 修改 devstack、devstack-gate 和 openstack-infra/config 以检查和 gate heat 功能测试。 此作业将替换当前的 heat-slow 作业

  • 确保 heat-slow 作业中没有 tempest.api.orchestration 测试运行,具体来说

    • 不要将 test_nova_keypair_resources 标记为慢速测试

    • 修改 test_neutron_resources 以使用 cirros 运行,或将其重写为功能测试

  • 删除 heat-slow 作业和 tempest.scenario.orchestration 中的测试

备选方案

可以考虑以下替代设计方案

  • 一个专用的 conf 文件来替换当前的 tempest.conf,或者从 heat.conf 读取测试配置值

  • 在缺少凭据或所需的云资源时,测试失败而不是跳过

  • 修改 tox.ini 以在单元测试运行时过滤掉功能测试,而不是根据当前环境跳过

实现

负责人

主要负责人

Steve Baker <sbaker@redhat.com>

里程碑

完成目标里程碑

Juno-3,但工作可以在功能冻结期间继续

工作项

工作项目或任务 – 将该功能分解为实施它需要完成的事情。这些部分可能最终由不同的人完成,但我们主要试图了解实施的时间表。

依赖项

  • devstack