用于将OpenStack Mistral工作流转换为StackStorm或Questa工作流的工具

orquestaconvert的Python项目详细描述


Build StatuscodecovLicense

orquestaconvert公司

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

使用

入门

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

只需第一次运行命令,一切都将为您设置:

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

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

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

您还可以使用以下选项:

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

示例

转换单个工作流

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

^{pr2}$

转换工作流,输出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工作流

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

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

公认的选项有:

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

示例

转换包中的所有工作流

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

./bin/orquestaconvert-pack.sh
Mistral工作流列表

列出Mistral剩余的工作流。在

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

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

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

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

验证包中的所有Orquesta工作流

显式打印所有Orquesta工作流的验证结果。在

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

特点

  • directMistral工作流转换为Orquesta工作流(常规结构)
  • 句柄inputoutputtasks
  • 对于每个任务,actioninputpublishon-success、^{和{}都将被转换
  • 转换simpleJinja和YAQL表达式
  • 在Jinja和YAQL exp中转换task()st2kv_.xxx/$.xxx等压力
  • 转换with-itemsconcurrency属性
  • 转换{37{cdm>

局限性

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

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
传递Java处理类类型参数的方式的参数   java安卓中间层admob在logcat中导致大量GC_FOR_ALLOC释放消息   java Vert。x Http请求未将参数分配为配置   java中多线程的输出不正确   如何减少java本地线程的冗余   java不完全分块结果   使用OpenCv时java中的Mat数据类型不受支持错误   Java中的正则表达式不工作,而同一正则表达式在shell中工作   java如何从数组中删除元素?   JDBCJava。sql。SQLException:[Microsoft][ODBC Microsoft Access驱动程序]操作必须使用可更新的查询   java如何以对角线打印字符串变量的字符?   SonarQube 5.2的java自定义插件生成NoClassDefFoundError   macos使用Java应用程序打开浏览器选项卡