GUI: 导入/导出部署计划

为 TripleO UI 添加两个功能

  • 导入带有 Mistral 环境的部署计划

  • 导出带有 Mistral 环境的部署计划

蓝图: https://blueprints.launchpad.net/tripleo/+spec/gui-plan-import-export

问题描述

目前,UI 仅支持简单的计划创建。用户需要上传计划文件,选择环境并设置参数。我们希望添加一个计划导入功能,允许用户导入计划以及完整的 Mistral 环境。 这样,环境的选择和参数将被存储并自动导入,无需手动配置。

相反,我们希望允许用户使用 UI 导出计划以及 Mistral 环境。

提议的变更

概述

为了识别导入计划时的 Mistral 环境,我建议我们使用 JSON 格式的文件并将其命名为 ‘plan-environment.json’。 该文件应与其余部署计划文件一起上传到 Swift 容器。 使用固定名称调用文件足以被检测到。 一旦 tripleo-common 工作流处理计划导入时检测到此文件,该工作流将使用文件内容创建(或更新)Mistral 环境。 为了避免将来可能意外覆盖环境,工作流应在用其内容创建(或更新)Mistral 环境后删除此文件。

导出计划应包括从 swift 容器下载所有计划文件,添加 plan-environment.json,然后将所有内容打包成 tarball。

替代方案

另一种选择是现在的情况,即每次都让用户手动执行所有环境配置设置和参数设置。 显然,这非常繁琐,用户体验因此受到很大的影响。

在处理 plan-environment.json 文件后将其保留在 swift 容器中并使其与所有可能发生的更新保持同步,是另一种选择。 这可能会变得非常复杂,而且完全没有必要,因此删除文件是更好的选择。

安全影响

其他最终用户影响

性能影响

导入和导出功能仅在需要时(用户单击按钮或类似操作)触发,因此它们不会对应用程序的其余部分产生性能影响。

其他部署者影响

开发人员影响

实现

负责人

主要负责人

akrivoka

其他贡献者

jtomasek d0ugal

工作项

注意:我们不需要额外的 UI(既不需要 GUI 也不需要 CLI)来进行计划导入 - 现有的 GUI 元素和 CLI 命令可以用于计划创建,也可以用于导入。

依赖项

测试

这些更改应在 tripleo-ui、tripleo-common 和 python-tripleoclient 中通过单元测试覆盖。

文档影响

用户文档应通过添加有关如何使用这两个功能的说明来增强。

参考资料