__ __
.,-;-;-,. /'_\ +-----------------------------------------------+ /_'\.,-;-;-,.
_/_/_/_|_\_\) / | CROMSHELL : run Cromwell jobs from the shell | \ (/_/__|_\_\_
'-<_><_><_><_>=/\ +-----------------------------------------------+ /\=<_><_><_><_>-'
`/_/====/_/-'\_\ /_/'-\_\====\_\'
"" "" "" "" "" ""
Cromshell is a CLI for submitting workflows to a Cromwell server and monitoring/querying their results.
cromshell submit workflow.wdl inputs.json options.json dependencies.zip
cromshell status
cromshell -t 20 metadata
cromshell logs -2
--no_turtle
or --I_hate_turtles
--cromwell_url [TEXT]
TEXT
Example: http://65.61.654.8:8000
-t [TIMEOUT]
TIMEOUT
must be a positive integer.--gcloud_token_email [TEXT]
gcloud auth print-access-token
with
this email and add the token as an auth header to requests.--referer_header_url [TEXT]
Referer:
header.One of --machine_processable
or --colorful_output
submit [-w] <wdl> <inputs_json> [options_json] [included_wdl_zip_file]
-w
[COMING SOON] Wait for workflow to transition from 'Submitted' to some other status before ${SCRIPTNAME} exits.included_wdl_zip_file
Zip file containing any WDL files included in the input WDLabort [workflow-id] [[workflow-id]...]
alias <workflow-id> <alias_name>
alias_name
(e.g. alias <workflow-id> ""
)
status [workflow-id] [[workflow-id]...]
metadata [workflow-id] [[workflow-id]...]
slim-metadata [workflow-id] [[workflow-id]...]
counts [-j] [-x] [workflow-id] [[workflow-id]...]
-j
prints a JSON instead of a pretty summary of the execution status (compresses subworkflows)-x
compress sub-workflows for less detailed summarizationtiming
[workflow-id] [[workflow-id]...]
logs [workflow-id] [[workflow-id]...]
fetch-logs [workflow-id] [[workflow-id]...]
list-outputs [workflow-id] [[workflow-id]...]
fetch-all [workflow-id] [[workflow-id]...]
list [-c] [-u]
-c
Color the output by completion status.-u
Check completion status of all unfinished jobs.cleanup [-s STATUS]
Succeeded
, Failed
, Aborted
-s [STATUS]
If provided, will only remove jobs with the given [STATUS]
from the local list.update-server
cost [-c] [-d] [workflow-id] [[workflow-id]...]
bq_cost_table
key to exist in the cromshell
configuration file and have a value equal to the BigQuery cost table
for your GCP billing project.For example, your ~/.cromshell/cromshell_config.json
should contain:
{
"cromwell_server": "<cromwell_server_url>",
"requests_timeout": 5,
"bq_cost_table": "<table_name>"
}
where <table_name>
can be found by navigating to BigQuery, selecting the appropriate google project, and locating the table containing cost information.
Clicking on the table and opening the "DETAILS" tab, you'll find the exact path to the table in the "Table ID" section. Everything after the google project name (after the first .
) should be included in <table_name>
.
-c/--color
Color outliers in task level cost results.-d/--detailed
Get the cost for a workflow at the task level.validate [wdl] [input json] --dependencies-zip [wdl_zip_file]
--dependencies-zip
MiniWDL option: ZIP file or directory containing workflow source files that are used to resolve local imports.submit
will create a new folder in the ~/.cromshell/${CROMWELL_URL}/
directory named with the cromwell job id of the newly submitted job../cromshell/
--cromwell_url
to the appropriate URL.CROMSHELL_CONFIG
to the appropriate directory.cromshell status -- -1 -2 -3 c2db2989-2e09-4f2c-8a7f-c3733ae5ba7b
). cromshell alias -- -1 myAliasName
).
Once the Alias command is used to attach an alias to a workflow id, the alias name can be used instead of the id (i.e. cromshell status myAliasName
).From brew
brew tap broadinstitute/dsp
brew install cromshell
From pypi
pip install cromshell
From source
git clone git@github.com:broadinstitute/cromshell.git
cd cromshell
pip install .
cromshell --help
From brew
brew uninstall cromshell
From pypi/source
pip uninstall cromshell
See the Developer Docs
The original Cromshell shell script is still available in the legacy_cromshell folder and in the cromshell1
branch of this repository.
It is no longer maintained, but is still available for use. The original Cromshell contains some commands not yet available in Cromshell2,
such as fetch-logs
, fetch-all
, notify
, and cleanup
. These commands will be added to Cromshell2 in the future.