Skip to content

Cost estimation not working with new version of Cromwell (v87) #43

@malachig

Description

@malachig

Running the following command no longer works for immuno.wdl workflow runs that were performed with v87 of Cromwell. Previous testing was primarily with v71.

To reproduce the error:

cd /storage1/fs1/gillandersw/Active/Project_0001_Clinical_Trials/pancreas_leidos/analysis/TWJF-5120-39/gcp_immuno/final_results/workflow_artifacts/costs

export WORKFLOW_ID=b033e4be-8d5a-4bc1-9f6b-efa9387bd255

bsub -Is -q general-interactive -G $GROUP -a "docker(mgibio/cloudize-workflow:latest)" /bin/bash

python3 $WORKING_BASE/git/cloud-workflows/scripts/estimate_billing.py $WORKFLOW_ID $GCS_BUCKET_PATH/workflow_artifacts/$WORKFLOW_ID/artifacts/metadata/ > costs.json

The error encountered:

Traceback (most recent call last):
  File "/storage1/fs1/gillandersw/Active/Project_0001_Clinical_Trials/pancreas_leidos/analysis/TWJF-5120-39/gcp_immuno/git/cloud-workflows/scripts/estimate_billing.py", line 265, in <module>
    cost = cost_workflow(args.metadata_dir.rstrip('/'), args.workflow_id)
  File "/storage1/fs1/gillandersw/Active/Project_0001_Clinical_Trials/pancreas_leidos/analysis/TWJF-5120-39/gcp_immuno/git/cloud-workflows/scripts/estimate_billing.py", line 231, in cost_workflow
    call_costs_by_name[ck] = cost_workflow(location, call["subWorkflowId"])
  File "/storage1/fs1/gillandersw/Active/Project_0001_Clinical_Trials/pancreas_leidos/analysis/TWJF-5120-39/gcp_immuno/git/cloud-workflows/scripts/estimate_billing.py", line 231, in cost_workflow
    call_costs_by_name[ck] = cost_workflow(location, call["subWorkflowId"])
  File "/storage1/fs1/gillandersw/Active/Project_0001_Clinical_Trials/pancreas_leidos/analysis/TWJF-5120-39/gcp_immuno/git/cloud-workflows/scripts/estimate_billing.py", line 227, in cost_workflow
    call_costs_by_name[ck] = cost_task(call)
  File "/storage1/fs1/gillandersw/Active/Project_0001_Clinical_Trials/pancreas_leidos/analysis/TWJF-5120-39/gcp_immuno/git/cloud-workflows/scripts/estimate_billing.py", line 151, in cost_task
    duration = from_iso(end_time) - from_iso(start_time)
  File "/storage1/fs1/gillandersw/Active/Project_0001_Clinical_Trials/pancreas_leidos/analysis/TWJF-5120-39/gcp_immuno/git/cloud-workflows/scripts/estimate_billing.py", line 79, in from_iso
    return datetime.fromisoformat(datetime_str.rstrip('Z'))
AttributeError: type object 'datetime.datetime' has no attribute 'fromisoformat'

The .json files being parsed do seem to generally have the expected data, but perhaps the structure of this output has changed with Cromwell versions and is no longer meeting the expectations of estimate_billing.py

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions