class ArvadosCommandTool(CommandLineTool):
"""Wrap cwltool CommandLineTool to override selected methods."""
- def __init__(self, arvrunner, toolpath_object, crunch2, **kwargs):
+ def __init__(self, arvrunner, toolpath_object, **kwargs):
super(ArvadosCommandTool, self).__init__(toolpath_object, **kwargs)
self.arvrunner = arvrunner
- self.crunch2 = crunch2
+ self.work_api = kwargs["work_api"]
def makeJobRunner(self):
- if self.crunch2:
+ 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)