From fee9186b62c23aa8a112b65626a44fab6b34b3fd Mon Sep 17 00:00:00 2001 From: Peter Amstutz Date: Fri, 13 May 2022 17:27:11 -0400 Subject: [PATCH] 17004: Fix setting properties on final collection Arvados-DCO-1.1-Signed-off-by: Peter Amstutz --- sdk/cwl/arvados_cwl/arvcontainer.py | 4 ++-- sdk/cwl/arvados_cwl/executor.py | 5 +++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/sdk/cwl/arvados_cwl/arvcontainer.py b/sdk/cwl/arvados_cwl/arvcontainer.py index ec9c52c59a..f3e122e603 100644 --- a/sdk/cwl/arvados_cwl/arvcontainer.py +++ b/sdk/cwl/arvados_cwl/arvcontainer.py @@ -349,8 +349,8 @@ class ArvadosContainer(JobBase): for pr in output_properties_req["outputProperties"]: container_request["output_properties"][pr["propertyName"]] = self.builder.do_eval(pr["propertyValue"]) else: - logger.warning("%s API server is too old to support setting properties on output collections.", - self.arvrunner.label(self)) + logger.warning("%s API revision is %s, revision %s is required to support setting properties on output collections.", + self.arvrunner.label(self), self.arvrunner.api._rootDesc["revision"], "20220510") if runtimeContext.runnerjob.startswith("arvwf:"): wfuuid = runtimeContext.runnerjob[6:runtimeContext.runnerjob.index("#")] diff --git a/sdk/cwl/arvados_cwl/executor.py b/sdk/cwl/arvados_cwl/executor.py index 7fdf07de25..fe078e3227 100644 --- a/sdk/cwl/arvados_cwl/executor.py +++ b/sdk/cwl/arvados_cwl/executor.py @@ -32,7 +32,7 @@ from arvados.errors import ApiError import arvados_cwl.util from .arvcontainer import RunnerContainer -from .runner import Runner, upload_docker, upload_job_order, upload_workflow_deps +from .runner import Runner, upload_docker, upload_job_order, upload_workflow_deps, make_builder from .arvtool import ArvadosCommandTool, validate_cluster_target, ArvadosExpressionTool from .arvworkflow import ArvadosWorkflow, upload_workflow from .fsaccess import CollectionFsAccess, CollectionFetcher, collectionResolver, CollectionCache, pdh_size @@ -795,8 +795,9 @@ The 'jobs' API is no longer supported. output_properties = {} output_properties_req, _ = tool.get_requirement("http://arvados.org/cwl#OutputCollectionProperties") if output_properties_req: + builder = make_builder(job_order, tool.hints, tool.requirements, runtimeContext, tool.metadata) for pr in output_properties_req["outputProperties"]: - output_properties[pr["propertyName"]] = self.builder.do_eval(pr["propertyValue"]) + output_properties[pr["propertyName"]] = builder.do_eval(pr["propertyValue"]) self.final_output, self.final_output_collection = self.make_output_collection(self.output_name, storage_classes, self.output_tags, output_properties, -- 2.30.2