This provides client and server implementations of the GA4GH Workflow Execution Service API for the Common Workflow Language.
It provides an Arvados backend. It
also works with any cwl-runner
that supports the CWL standard command line
interface: http://www.commonwl.org/v1.0/CommandLineTool.html#Executing_CWL_documents_as_scripts
pip install wes-service
Run a standalone server with default cwl-runner
backend:
$ wes-server
Note! All inputs files must be accessible from the filesystem.
$ wes-client --host=localhost:8080 --proto=http --attachments="testdata/dockstore-tool-md5sum.cwl,testdata/md5sum.input" testdata/md5sum.cwl testdata/md5sum.cwl.json
$ wes-client --proto http --host=locahost:8080 --list
$ wes-client --proto http --host=locahost:8080 --get <workflow-id>
$ wes-client --proto http --host=locahost:8080 --log <workflow-id>
$ wes-server --backend=wes_service.arvados_wes
$ pip install toil[all]
$ wes-server --backend=wes_service.toil_wes --opt extra=--clean=never
$ pip install toil[all]
$ wes-server --backend=wes_service.cwl_runner --opt runner=cwltoil --opt extra=--logLevel=CRITICAL
$ wes-server --backend=wes_service.cwl_runner --opt extra=--workDir=/
These options will be read in as defaults when running the client from the command line. The default protocol is https, to support secure communications, but the server starts using http, to ease development.
Set service endpoint:
$ export WES_API_HOST=localhost:8080
Set the value to pass in the Authorization
header:
$ export WES_API_AUTH=my_api_token
Set the protocol (one of http, https)
$ export WES_API_PROTO=http
Then, when you call wes-client
these defaults will be used in place of the
flags, --host
, --auth
, and proto
respectively.
If you would like to develop against workflow-service
make sure you pass the provided test and it is flake8 compliant
$ virtualenv venv && source venv/bin/activate && pip install toil[all] && pip install . --process-dependency-links && pip install -r dev-requirements.txt
From path workflow-service
run
$ pytest && flake8