Whitebox Tempest 插件¶
https://blueprints.launchpad.net/tempest/+spec/whitebox-tempest-plugin
问题描述¶
Tempest 将其范围定义为仅可通过各种 REST API 访问的内容。仅使用 REST API 无法正确测试某些云功能。例如,在 Nova 使用 libvirt 驱动程序的上下文中,某些功能只能通过检查实例的 XML 来完全测试。具体来说,带有专用 CPU 的实例的实时迁移可能看起来成功,但实际上实时迁移导致实例不再具有专用 CPU。只有通过查看实例的 XML,我们才能验证是否遵守了专用 CPU SLA。
提议的变更¶
whitebox-tempest-plugin 是一个 Tempest 插件,其范围明确要求窥探幕后。换句话说,如果仅使用 REST API 可以完全测试某个功能或行为,则此类测试不属于 whitebox-tempest-plugin。另一方面,如果完全测试某个功能或行为需要访问控制平面,就像人工操作员或管理员一样,则此类测试属于 whitebox-tempest 插件。
该插件为测试提供了一个窥探幕后的框架。它当前包含 Tempest 样式的客户端,可以检查实例的 XML、检查数据库、读取和写入 INI 配置文件以及重启服务。所有这些都用于集中在 Nova NFV 功能(如 CPU 固定和 NUMA 感知实时迁移)周围的测试。
虽然目前主要集中在 Nova 和 NFV 上,但 whitebox-tempest-plugin 旨在对测试任何 OpenStack 项目都很有用。
替代方案¶
虽然存在各种团队特定或项目特定的 Tempest 插件,其范围有时与 whitebox-tempest-plugin 相交,但白盒测试用例目前没有替代的社区解决方案。
项目¶
Whitebox-tempest-plugin 是自包含的。它包含一个 devstack 插件,用于将 whitebox 特定选项添加到 tempest.conf。
实现¶
负责人¶
当前的 whitebox-tempest-plugin 团队由 Joe Hakim Rahme (rahmu)、Sean Mooney (sean-k-mooney) 和 Artom Lifshitz (notartom) 组成。
里程碑¶
Ussuri。
工作项¶
当前路线图包括
开始在 Nova NFV Zuul 作业中使用 whitebox-tempest-plugin。
Whitebox 支持 undercloud/overcloud TripleO 部署,但目前没有为此提供上游 CI 覆盖。正在进行的工作是添加一个 TripleO CI 作业。新的作业将使用多节点独立 TripleO 部署,该部署也在开发过程中。
依赖项¶
Whitebox 需要以下 Python 模块
sshtunnel(需要访问 overcloud 数据库,将在完成 TripleO CI 作业后删除,因为独立 TripleO 部署没有 undercloud/overcloud 之分)。
pymysql(需要与数据库交互)
参考资料¶
Nova NFV Zuul 作业:https://review.opendev.org/#/c/679656/
TripleO CI 作业:https://review.opendev.org/#/c/705113/