The workflow client is a command line interface that allows users to register workflows, check their status, and retrieve results. The workflow client is encapsulated in a java jar file. Thus, assuming that we have a variable called $CLASSPATH with the location of the required jar files, the usage of the workflow client is as follows:
java -cp $CLASSPATH tassl.application.workflow.WorkflowClient -serverPort <port> -serverAddress <serverAddress> (-regWorkflow <workflowFile> | -checkStatus <workflowId> | -cancelWorkflow <workflowId> | -getSupportedApps | -getResults <workflowId> -user <remoteUserId> -path <local path>) Parenthesis means that you need to specify one of the options.
|-help||Shows help information and exit.|
|-serverPort <port>||Specify the port where the workflow manager is listening.|
|-serverAddress <serverAddress>||Specify the IP address/FQDN where the workflow manager is listening.|
|-regWorkflow <workflowFile>||Register a workflow described by the file indicated as argument. Returns a unique workflow ID.|
|-checkStatus <workflowId>||Check the status of a previously register workflow using its unique workflow ID.|
|-cancelWorkflow <workflowId>||Cancel a workflow. If the workflow is in execution, it will release all allocated resources.|
|-getSupportedApps||Return the list of applications (i.e. worker) supported by each site of our federation. This name is used in the Application field of our XML workflow description.|
|-getResults <workflowId> -user <remoteUserId> -path <local path>||Retrive result files generated by the workflow using scp. -user option indicates the username to be used by scp to retrieve the files from the remote machine. -path option indicates the directory where the retrieved files will be placed.|
For simplicity we keep a script called workflowClient.sh in the directory simple_run/client/. The content of this script is described as follows:
export CLASSPATH=../../dist/*:../../lib/* java -cp $CLASSPATH tassl.application.workflow.WorkflowClient $@
This service requires Java runtime 1.7+ and rsync.
Let us consider that the workflow manager is hosted in machine1.domain.com and it is listening in the port number 8888.
Register a workflow
$ workflowClient.sh -serverAddress machine1.domain.com -serverPort 8888 ‐regWorkflow myworkflow.xml
Check status of the workflow identified by the ID 21312541
$ workflowClient.sh -serverAddress machine1.domain.com -serverPort 8888 ‐checkStatus 21312541
Retrieve results from workflow identified by the ID 21312541. The user in the remote machine is jdiaz and I would like to get the results in my local directory /home/jdiaz/results/
$ workflowClient.sh -serverAddress machine1.domain.com -serverPort 8888 ‐retrieveResutls 21312541 -user jdiaz -path /home/jdiaz/results/