X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/84d86c1721bf549c2dc38df95f29f3579b36a5ae..b9d2799dfebae724dda3b3e28641116ca5daf5c7:/sdk/cwl/arvados_cwl/__init__.py diff --git a/sdk/cwl/arvados_cwl/__init__.py b/sdk/cwl/arvados_cwl/__init__.py index 46850b3889..7ebb13f1bb 100644 --- a/sdk/cwl/arvados_cwl/__init__.py +++ b/sdk/cwl/arvados_cwl/__init__.py @@ -24,7 +24,7 @@ import arvados.config from .arvcontainer import ArvadosContainer, RunnerContainer from .arvjob import ArvadosJob, RunnerJob, RunnerTemplate -from. runner import Runner +from. runner import Runner, upload_instance from .arvtool import ArvadosCommandTool from .arvworkflow import ArvadosWorkflow, upload_workflow from .fsaccess import CollectionFsAccess @@ -32,7 +32,7 @@ from .perf import Perf from .pathmapper import FinalOutputPathMapper from cwltool.pack import pack -from cwltool.process import shortname, UnsupportedRequirement +from cwltool.process import shortname, UnsupportedRequirement, getListing from cwltool.pathmapper import adjustFileObjs, adjustDirObjs from cwltool.draft2tool import compute_checksums from arvados.api import OrderedJsonModel @@ -64,6 +64,8 @@ class ArvCwlRunner(object): self.pipeline = None self.final_output_collection = None self.output_name = output_name + self.project_uuid = None + if keep_client is not None: self.keep_client = keep_client else: @@ -266,6 +268,8 @@ class ArvCwlRunner(object): kwargs["docker_outdir"] = "$(task.outdir)" kwargs["tmpdir"] = "$(task.tmpdir)" + upload_instance(self, shortname(tool.tool["id"]), tool, job_order) + runnerjob = None if kwargs.get("submit"): if self.work_api == "containers": @@ -289,7 +293,7 @@ class ArvCwlRunner(object): logger.info("Pipeline instance %s", self.pipeline["uuid"]) if runnerjob and not kwargs.get("wait"): - runnerjob.run() + runnerjob.run(wait=kwargs.get("wait")) return runnerjob.uuid self.poll_api = arvados.api('v1') @@ -365,6 +369,7 @@ class ArvCwlRunner(object): self.make_output_collection(self.output_name, self.final_output) if kwargs.get("compute_checksum"): + adjustDirObjs(self.final_output, partial(getListing, self.fs_access)) adjustFileObjs(self.final_output, partial(compute_checksums, self.fs_access)) return self.final_output