跳转到主要内容

将OpenStack Mistral工作流转换为StackStorm Orquesta工作流的工具

项目描述

Build Status codecov License

orquestaconvert

将Mistral工作流转换为Orquesta工作流

用法

入门指南

脚本会自动设置一个virtualenv(如果不存在),其中包含运行所需的所有依赖项。

只需第一次运行命令,所有设置都会为你完成

git clone https://github.com/EncoreTechnologies/orquestaconvert.git
cd orquestaconvert
./bin/orquestaconvert.sh --help

orquestaconvert.sh - 转换单个工作流并将其打印到标准输出

您必须指定一个或多个要转换的工作流YAML文件作为脚本的最后一个参数。

还有一些您可以使用选项

  • -e <type> - 插入新表达式(例如when子句中的任务转换)时使用的表达式类型(YAQL或Jinja)
  • --force - 强制脚本转换并打印工作流,即使它未成功验证Orquesta YAML模式。
  • --validate - 仅运行脚本的验证部分,对于使用--force部分转换工作流然后手动完成转换的情况非常有用。

示例

转换单个工作流

使用 Jinja 表达式(默认)在任务转换条件中,将nasa_apod_twitter_post.yaml工作流从 Mistral 转换为 Orquesta。

./bin/orquestaconvert.sh ./tests/fixtures/mistral/nasa_apod_twitter_post.yaml

转换工作流,输出 YAQL 表达式

使用 YAQL 表达式为新任务转换条件转换工作流,并跳过 Orquesta 工作流验证。请注意,这可能会生成既不是有效 Mistral 也不是有效 Orquesta 工作流的工作流。

./bin/orquestaconvert.sh -e yaql --force ./tests/fixtures/mistral/nasa_apod_twitter_post.yaml

验证 Orquesta 工作流

在文件上运行 Orquesta YAML 架构验证。验证成功时返回 0,验证失败时返回非零值。还可以使用--verbose选项明确打印文件的验证结果。

./bin/orquestaconvert.sh --validate ./tests/fixtures/orquesta/nasa_apod_twitter_post.yaml

orquestaconvert-pack.sh - 转换包中的所有 Mistral 工作流

此脚本扫描包中的所有操作元数据文件,并尝试使用orquestaconvert.sh脚本将所有 Mistral 工作流转换为 Orquesta,并/或使用该脚本验证包中的所有 Orquesta 工作流。此脚本将所有未识别的参数传递给orquestaconvert.sh,因此您可以使用该脚本对单个工作流执行的所有操作,都可以通过使用此脚本来对整个包执行。

您必须从包的基本目录运行此命令,或者您必须使用--actions-dir选项指定包含操作元数据文件的目录。

支持的选项包括

  • --list-workflows <type> - 列出指定类型的所有工作流(必须是 ActionChain 的action-chain,Mistral 的mistral-v2,或者 Orquesta 工作流的orquestaorchestra
  • --actions-dir <dir> - 指定要扫描和转换的目录

示例

转换包中的所有工作流

尝试使用 Jinja 表达式(默认)在新任务转换中转换所有工作流从 Mistral 到 Orquesta。

./bin/orquestaconvert-pack.sh

列出包中的 Mistral 工作流

列出剩余的 Mistral 工作流。

./bin/orquestaconvert-pack.sh --list-workflows mistral-v2

转换包中的所有工作流,输出 YAQL 表达式

mypack/actions中的所有 Mistral 工作流(在生成任务转换条件时使用 YAQL 表达式)转换为 Orquesta 并跳过验证。请注意,使用此选项可能会创建既不是有效 Mistral 也不是有效 Orquesta 工作流的工作流。

./bin/orquestaconvert-pack.sh --expressions yaql --force --action-dir mypack/actions

验证包中的所有 Orquesta 工作流

明确打印所有 Orquesta 工作流的验证结果。

./bin/orquestaconvert-pack.sh --validate --verbose

特性

  • direct Mistral 工作流转换为 Orquesta 工作流(通用结构)
  • 处理inputoutputtasks
  • 对于每个任务,都转换了actioninputpublishon-successon-erroron-complete
  • 转换简单的 Jinja 和 YAQL 表达式
  • 转换 Jinja 和 YAQL 表达式中的task()st2kv_.xxx / $.xxx
  • 转换with-itemsconcurrency属性
  • 转换大多数retry属性,包括continue-on简单break-on表达式

限制

  • 不转换{% %} Jinja 表达式
  • 不转换复杂的 Jinja / YAQL 表达式
  • 不转换reverse类型的工作流
  • 不转换工作簿(同一文件中的多个工作流)
  • 不转换对非本地任务的task('xxx')引用,当前任务始终假定。
  • 不转换具有output-on-error段的工作流
  • 不转换如果任务包含以下属性之一的工作流
    • keep-result
    • pause-before
    • safe-rerun
    • target
    • timeout
    • wait-after
    • wait-before
    • 工作流程

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源代码分发

orquestaconvert-0.1.tar.gz (27.6 kB 查看哈希值)

上传时间 源代码

构建分发

orquestaconvert-0.1-py3-none-any.whl (40.1 kB 查看哈希值)

上传时间 Python 3

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面