X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/7cd03709ba594237b9cf88afac76d39f28011b35..a08e3bb86caa758df7d33a3df3f6b8c333e47838:/sdk/cwl/arvados_cwl/arvtool.py?ds=sidebyside diff --git a/sdk/cwl/arvados_cwl/arvtool.py b/sdk/cwl/arvados_cwl/arvtool.py index 0601fa656b..b667dac1ca 100644 --- a/sdk/cwl/arvados_cwl/arvtool.py +++ b/sdk/cwl/arvados_cwl/arvtool.py @@ -1,3 +1,7 @@ +# Copyright (C) The Arvados Authors. All rights reserved. +# +# SPDX-License-Identifier: Apache-2.0 + from cwltool.draft2tool import CommandLineTool from .arvjob import ArvadosJob from .arvcontainer import ArvadosContainer @@ -9,22 +13,34 @@ class ArvadosCommandTool(CommandLineTool): def __init__(self, arvrunner, toolpath_object, **kwargs): super(ArvadosCommandTool, self).__init__(toolpath_object, **kwargs) self.arvrunner = arvrunner - self.crunch2 = (kwargs["work_api"] == "containers") + self.work_api = kwargs["work_api"] - def makeJobRunner(self): - if self.crunch2: + def makeJobRunner(self, **kwargs): + if self.work_api == "containers": return ArvadosContainer(self.arvrunner) - else: + elif self.work_api == "jobs": return ArvadosJob(self.arvrunner) - def makePathMapper(self, reffiles, **kwargs): - if self.crunch2: + def makePathMapper(self, reffiles, stagedir, **kwargs): + # type: (List[Any], unicode, **Any) -> PathMapper + if self.work_api == "containers": return ArvPathMapper(self.arvrunner, reffiles, kwargs["basedir"], "/keep/%s", "/keep/%s/%s", **kwargs) - else: + elif self.work_api == "jobs": return ArvPathMapper(self.arvrunner, reffiles, kwargs["basedir"], "$(task.keep)/%s", "$(task.keep)/%s/%s", **kwargs) + + def job(self, joborder, output_callback, **kwargs): + if self.work_api == "containers": + kwargs["outdir"] = "/var/spool/cwl" + kwargs["docker_outdir"] = "/var/spool/cwl" + elif self.work_api == "jobs": + kwargs["outdir"] = "$(task.outdir)" + kwargs["docker_outdir"] = "$(task.outdir)" + kwargs["tmpdir"] = "$(task.tmpdir)" + kwargs["docker_tmpdir"] = "$(task.tmpdir)" + return super(ArvadosCommandTool, self).job(joborder, output_callback, **kwargs)