Project

General

Profile

Actions

Bug #12875

closed

arvados-cwl-runner fails to validate when InitialWorkDirRequirement File is referenced by keep locator

Added by Joshua Randall about 8 years ago. Updated about 8 years ago.

Status:
Closed
Priority:
Normal
Assigned To:
-
Category:
-
Target version:
-
Story points:
-

Description

When an InitialWorkDirRequirement references a file which is specified by keep locator, I get the error:

Anonymous file object must have 'contents' and 'basename' fields.

If a CWL uses InitialWorkDirRequirement such as:

- class: InitialWorkDirRequirement
  listing:
  - entry: $(inputs.input)
    entryname: $(inputs.input.basename)

This works with arvados-cwl-runner when providing input as a local file (which is then staged to keep). However, it does not work when provided as a keep reference.

For example:

$ cat arvados_faidx_test.yaml
input:
  class: File
  locator: keep:1747025feb654a015d8c3728df0aa1cc+2129/Homo_sapiens.GRCh38_full_analysis_set_plus_decoy_hla.fa
$ arvados-cwl-runner --api containers tools/samtools/samtools-faidx.cwl arvados_faidx_test.yaml
2017-12-28 20:36:17 cwltool INFO: /usr/bin/arvados-cwl-runner dc78526ba494973df7d298825e20503353e92adf 1.0.20171116210428, arvados-python-client 0.1.20171109204045, cwltool 1.0.20170928192020
2017-12-28 20:36:17 cwltool INFO: Resolved 'tools/samtools/samtools-faidx.cwl' to 'file:///tmp/arvados-pipelines/cwl/tools/samtools/samtools-faidx.cwl'
Traceback (most recent call last):
  File "/usr/bin/arvados-cwl-runner", line 10, in <module>
    sys.exit(main(sys.argv[1:], sys.stdout, sys.stderr))
  File "/usr/lib/python2.7/dist-packages/arvados_cwl/__init__.py", line 773, in main
    custom_schema_callback=add_arv_hints)
  File "/usr/lib/python2.7/dist-packages/cwltool/main.py", line 898, in main
    fetcher_constructor=fetcher_constructor)
  File "/usr/lib/python2.7/dist-packages/cwltool/main.py", line 615, in load_job_order
    normalizeFilesDirs(job_order_object)
  File "/usr/lib/python2.7/dist-packages/cwltool/pathmapper.py", line 91, in normalizeFilesDirs
    visit_class(job, ("File", "Directory"), addLocation)
  File "/usr/lib/python2.7/dist-packages/cwltool/pathmapper.py", line 48, in visit_class
    visit_class(rec[d], cls, op)
  File "/usr/lib/python2.7/dist-packages/cwltool/pathmapper.py", line 46, in visit_class
    op(rec)
  File "/usr/lib/python2.7/dist-packages/cwltool/pathmapper.py", line 67, in addLocation
    raise validate.ValidationException("Anonymous file object must have 'contents' and 'basename' fields.")
schema_salad.validate.ValidationException: Anonymous file object must have 'contents' and 'basename' fields.

Actions #1

Updated by Joshua Randall about 8 years ago

  • Status changed from New to Closed

Oops - the problem here was that the input parameter specified "locator" instead of "location"

Actions

Also available in: Atom PDF