projects
/
arvados.git
/ blobdiff
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch '16850-s3-keycount'
[arvados.git]
/
sdk
/
cwl
/
arvados_cwl
/
runner.py
diff --git
a/sdk/cwl/arvados_cwl/runner.py
b/sdk/cwl/arvados_cwl/runner.py
index 71e499ebcab0cca29ccbee7a350cfbbb5aaa6e19..b10f02d1401b9e31014eb30b32e18adfdcb394d2 100644
(file)
--- a/
sdk/cwl/arvados_cwl/runner.py
+++ b/
sdk/cwl/arvados_cwl/runner.py
@@
-83,7
+83,7
@@
def find_defaults(d, op):
for i in viewvalues(d):
find_defaults(i, op)
for i in viewvalues(d):
find_defaults(i, op)
-def make_builder(joborder, hints, requirements, runtimeContext):
+def make_builder(joborder, hints, requirements, runtimeContext
, metadata
):
return Builder(
job=joborder,
files=[], # type: List[Dict[Text, Text]]
return Builder(
job=joborder,
files=[], # type: List[Dict[Text, Text]]
@@
-106,6
+106,7
@@
def make_builder(joborder, hints, requirements, runtimeContext):
outdir="", # type: Text
tmpdir="", # type: Text
stagedir="", # type: Text
outdir="", # type: Text
tmpdir="", # type: Text
stagedir="", # type: Text
+ cwlVersion=metadata.get("http://commonwl.org/cwltool#original_cwlVersion") or metadata.get("cwlVersion")
)
def search_schemadef(name, reqs):
)
def search_schemadef(name, reqs):
@@
-172,7
+173,10
@@
def set_secondary(fsaccess, builder, inputschema, secondaryspec, primary, discov
specs = []
primary["secondaryFiles"] = secondaryspec
for i, sf in enumerate(aslist(secondaryspec)):
specs = []
primary["secondaryFiles"] = secondaryspec
for i, sf in enumerate(aslist(secondaryspec)):
- pattern = builder.do_eval(sf["pattern"], context=primary)
+ if builder.cwlVersion == "v1.0":
+ pattern = builder.do_eval(sf, context=primary)
+ else:
+ pattern = builder.do_eval(sf["pattern"], context=primary)
if pattern is None:
continue
if isinstance(pattern, list):
if pattern is None:
continue
if isinstance(pattern, list):
@@
-263,6
+267,8
@@
def upload_dependencies(arvrunner, name, document_loader,
# that external references in $include and $mixin are captured.
scanobj = loadref("", workflowobj["id"])
# that external references in $include and $mixin are captured.
scanobj = loadref("", workflowobj["id"])
+ metadata = scanobj
+
sc_result = scandeps(uri, scanobj,
loadref_fields,
set(("$include", "$schemas", "location")),
sc_result = scandeps(uri, scanobj,
loadref_fields,
set(("$include", "$schemas", "location")),
@@
-354,7
+360,8
@@
def upload_dependencies(arvrunner, name, document_loader,
builder = make_builder(builder_job_order,
obj.get("hints", []),
obj.get("requirements", []),
builder = make_builder(builder_job_order,
obj.get("hints", []),
obj.get("requirements", []),
- ArvRuntimeContext())
+ ArvRuntimeContext(),
+ metadata)
discover_secondary_files(arvrunner.fs_access,
builder,
obj["inputs"],
discover_secondary_files(arvrunner.fs_access,
builder,
obj["inputs"],
@@
-516,7
+523,8
@@
def upload_job_order(arvrunner, name, tool, job_order):
builder = make_builder(builder_job_order,
tool.hints,
tool.requirements,
builder = make_builder(builder_job_order,
tool.hints,
tool.requirements,
- ArvRuntimeContext())
+ ArvRuntimeContext(),
+ tool.metadata)
# Now update job_order with secondaryFiles
discover_secondary_files(arvrunner.fs_access,
builder,
# Now update job_order with secondaryFiles
discover_secondary_files(arvrunner.fs_access,
builder,