Feature #14322
Updated by Peter Amstutz about 6 years ago
Arvados-cwl-runner should allow users to provide uuids in input documents. For example:
<pre>
{
"file1": {
"class": "File",
"location": "keep:zzzzz-4zz18-zzzzzzzzzzzzz/file1.txt"
}
}
</pre>
Arvados-cwl-runner should replace the value in "location" with the portable data hash and record the UUID in the "arv:collection" field. This applies to both File and Directory objects. Implementation note: this should probably happen somewhere in @upload_workflow_deps()@ which is responsible for updating File references for uploaded files.
<pre>
{
"file1": {
"class": "File",
"location": "keep:abc+123/file1.txt",
"arv:collection": "zzzzz-4zz18-zzzzzzzzzzzzz/file1.txt"
}
}
</pre>
Users may provide both "location" by PDH and "arv:collection" in the input. If both portable data hash and arv:collection are present, the portable data hash will take precedence. Print a warning (or error???) if the collection uuid is not readable or the does not match the PDH that was provided.
When constructing container requests, if "arv:collection" is known for a File or Directory object, include it in the mount object alongside the portable data hash.
Implementation note: code paths that test @startswith("keep:")@ will need to be updated to distinguish keep identifiers by UUID or PDH. (Alternately, we could use a different uri scheme for uuids).
Stretch goals (to propagate uuids through):
Uploaded files have "arv:collection" set.
When collecting outputs from a container request, set "arv:collection" on the File and Directory objects sourced from the container request output.