From 88d70b6d852d2347a958b7e76de3f47df2699e70 Mon Sep 17 00:00:00 2001 From: Peter Amstutz Date: Fri, 11 Nov 2022 09:53:18 -0500 Subject: [PATCH] 19688: Make sure CommandLineTool gets wrapped properly Arvados-DCO-1.1-Signed-off-by: Peter Amstutz --- sdk/cwl/arvados_cwl/arvworkflow.py | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/sdk/cwl/arvados_cwl/arvworkflow.py b/sdk/cwl/arvados_cwl/arvworkflow.py index c0b479c37f..7f9c3c3483 100644 --- a/sdk/cwl/arvados_cwl/arvworkflow.py +++ b/sdk/cwl/arvados_cwl/arvworkflow.py @@ -61,10 +61,26 @@ def make_wrapper_workflow(arvRunner, main, packed, project_uuid, name): "run": "keep:%s/workflow.json#main" % pdh } + newinputs = [] + for i in main["inputs"]: + inp = {} + # Make sure to only copy known fields that are meaningful at + # the workflow level. In practice this ensures that if we're + # wrapping a CommandLineTool we don't grab inputBinding. + # Right now also excludes extension fields, which is fine, + # Arvados doesn't currently look for any extension fields on + # input parameters. + for f in ("type", "label", "secondaryFiles", "streamable", + "doc", "id", "format", "loadContents", + "loadListing", "default"): + if f in i: + inp[f] = i[f] + newinputs.append(inp) + wrapper = { "class": "Workflow", "id": "#main", - "inputs": main["inputs"], + "inputs": newinputs, "outputs": [], "steps": [step] } -- 2.30.2