In addition to the API and the GUI, VRE Middleware provides a command-line interface (CLI) to some of the functions available with the other two interfaces.
The wfengine command-line tool
The wfengine tool allows loading workflows from a launchpad or from a file and running them. If other workflow management functions are needed, then the API or the GUI should be used.
Syntax
The command wfengine --help yields this help:
usage: wfengine [-h] [-l LAUNCHPAD_FILE] [-q QADAPTER_FILE]
[-n WORKER_NAME] [-d LAUNCHDIR] [-s SLEEP_TIME]
[-c {all,interactive,batch}] [-f WORKFLOW_FILE]
[--wf-query WF_QUERY]
[--unique-launchdir | --no-unique-launchdir]
[-r] [--loop | --no-loop]
[--load-from-file LOAD_FROM_FILE]
[--dump-to-file DUMP_TO_FILE] [--enable-logging]
[--logging-level {NOTSET,DEBUG,INFO,WARNING,ERROR,CRITICAL}]
run a simple workflow engine from the command line
optional arguments:
-h, --help show this help message and exit
-l LAUNCHPAD_FILE, --launchpad-file LAUNCHPAD_FILE
path to launchpad file
-q QADAPTER_FILE, --qadapter-file QADAPTER_FILE
path to default qadapter file
-n WORKER_NAME, --worker-name WORKER_NAME
worker name
-d LAUNCHDIR, --launchdir LAUNCHDIR
path to launch directory
-s SLEEP_TIME, --sleep-time SLEEP_TIME
sleep time for background evaluation in seconds
-c {all,interactive,batch}, --category {all,interactive,batch}
category of nodes to run
-f WORKFLOW_FILE, --workflow-file WORKFLOW_FILE
path to a workflow file
--wf-query WF_QUERY workflow query as JSON string
--unique-launchdir, --no-unique-launchdir
use unique launchdir (default: True)
-r, --autorun run workflow nodes
--loop, --no-loop run nodes in an endless loop (default: True)
--load-from-file LOAD_FROM_FILE
load a wfengine from file
--dump-to-file DUMP_TO_FILE
dump the wfengine to file
--enable-logging enable logging messages
--logging-level {NOTSET,DEBUG,INFO,WARNING,ERROR,CRITICAL}
logging level
Adding workflows
The wfengine program can be used to create an engine object and add workflows to it. Existing workflows on the launchpad can be added with the --wf_query option. For example:
Example:
wfengine --wf_query '{"metadata.uuid": "29f5f01a974c4c0b891c070d42a829c9"}'
The option -f, --workflow-file can be used to add a new workflow from a file to the negine and to the launchpad.
Example:
wfengine --workflow_file my_fireworks.yaml
The two latter flags can be combined to select workflows from the database and add one new workflow.
Running nodes
To activate the launcher loop, the -r, --autorun flag must be set. The launcher searches for nodes managed by the engine in READY state and runs those nodes of interactive category in a sequence immediately and submits the nodes of batch category as Slurm jobs. After that the launcher waits 30 seconds (that can be changed by using the -s, --sleep-time option) and then performs a new iteration. By default this loop is endless. The loop can be interrupted by pressing Ctrl+C or, if the process is running in background, by sending a SIGINT or SIGTERM signal. Then wfengine will terminate normally after a maximum delay of 30 seconds (or the time set by the -s, --sleep-time option). To only perform one iteration, use the flag --no-loop. Then wfengine will terminate itself. By default, both interactive and batch nodes are processed. One of these two node categories can be selected using the flag -c, --category.
Example: Add a workflow from a file and run only the interactive nodes in a loop with 10 seconds sleep time
wfengine --workflow_file my_fireworks.yaml -r -c interactive -s 10