用于将OpenStack Mistral工作流转换为StackStorm或Questa工作流的工具
orquestaconvert的Python项目详细描述
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。在
转换工作流,输出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-chain
,mistral-v2
对于Mistral,或者对于Orquesta工作流,必须是orquesta
或{}) --actions-dir <dir>
-指定要扫描和转换的目录
示例
转换包中的所有工作流
尝试将所有工作流从Mistral转换为Orquesta,在新的任务转换中使用Jinja表达式(Jinja是默认值)。在
./bin/orquestaconvert-pack.shMistral工作流列表
列出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
特点
- 将
direct
Mistral工作流转换为Orquesta工作流(常规结构) - 句柄
input
,output
,tasks
- 对于每个任务,
action
、input
、publish
、on-success
、^{和{ }都将被转换 - 转换simpleJinja和YAQL表达式
- 在Jinja和YAQL exp中转换
task()
、st2kv
、_.xxx
/$.xxx
等压力 - 转换
with-items
和concurrency
属性 - 转换{37{cdm>
局限性
- 不转换
{% %}
Jinja表达式 - 不转换复杂的Jinja/YAQL表达式
- 不转换
reverse
类型的工作流 - 不转换工作簿(同一文件中有多个工作流
- 不将
task('xxx')
引用转换为非本地任务,始终假定为当前任务。在 - 不转换具有
output-on-error
节的工作流 - 如果任务包含以下一个或多个属性,则不转换工作流
keep-result
pause-before
safe-rerun
target
timeout
wait-after
wait-before
workflow
- 项目
标签: