Bug #10308
closed
Output glob "./" doesn't work as output from CWL workflow
Added by michael kotliar about 8 years ago.
Updated over 3 years ago.
Estimated time:
(Total: 0.00 h)
Description
Hello! Found a problem while trying return directory from cwl. Tested the following cwl on both cwl-runner and arvados-cwl-runner. According to documentation both support cwl v1.0. On cwl-runner all works fine: receive file according to the parameter set in $(inputs.fileName).
When trying to run the same cwl with arvados-cwl-runner get an error:
WorkflowException: Error collecting output for parameter 'dir': Did not find output file with glob pattern: '['./']'
Example that I tested
task.cwl
cwlVersion: v1.0
class: CommandLineTool
hints:
DockerRequirement:
dockerPull: ubuntu
baseCommand: echo
arguments: ["return dir"]
requirements:
InitialWorkDirRequirement:
listing:
- entryname: $(inputs.fileName)
entry: Some text inside the file
inputs:
fileName:
type: string
outputs:
dir:
type: Directory
outputBinding:
glob: "./"
job.yml
fileName: textfile.txt
Works fine with
glob: "."
- Subject changed from Set glob to return Directory as output form cwl workflow to Output glob "./" doesn't work as output from CWL workflow
- Target version set to Arvados Future Sprints
Since both forms ("./" and ".") are equivalent, it seems like they should both be supported.
- Target version changed from Arvados Future Sprints to 2021-04-28 bughunt sprint
17521-dot-slash-glob @ 60b22bcd41053a641c8157367a1589287f706674
Fixes both #17521 and #10380
Cleans up the path, removing leading ./, trailing slashes, redundant '.' and blank path segments, and other stuff that potentially confuses the path matching. Adds two integration tests based on bug reports, the fix should fix both of them.
developer-run-tests: #2438
- Status changed from New to In Progress
- Related to Bug #17521: Handling of ./ in arvados-cwl-runner added
Just one question:
- Shouldn't normpath() be used also at
fsaccess.py
line 106?
The rest LGTM, thanks.
Lucas Di Pentima wrote:
Just one question:
- Shouldn't normpath() be used also at
fsaccess.py
line 106?
I did a quick scan through, it doesn't seem like there are any places where it actually uses "rest" when "collection" is None.
The rest LGTM, thanks.
I will merge.
- Status changed from In Progress to Resolved
Also available in: Atom
PDF