X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/d353e9be958d39a1aaf6ca83f269d077c74c8848..2c3a6a67bc01241f57e815f4f7e4678bd6eadb03:/sdk/cwl/arvados_cwl/arvjob.py diff --git a/sdk/cwl/arvados_cwl/arvjob.py b/sdk/cwl/arvados_cwl/arvjob.py index 9a03372d32..69fe7e2a8f 100644 --- a/sdk/cwl/arvados_cwl/arvjob.py +++ b/sdk/cwl/arvados_cwl/arvjob.py @@ -2,6 +2,10 @@ # # SPDX-License-Identifier: Apache-2.0 +from past.builtins import basestring +from builtins import object +from future.utils import viewitems + import logging import re import copy @@ -67,7 +71,7 @@ class ArvadosJob(JobBase): keep_client=self.arvrunner.keep_client, num_retries=self.arvrunner.num_retries) script_parameters["task.vwd"] = {} - generatemapper = VwdPathMapper([self.generatefiles], "", "", + generatemapper = VwdPathMapper(self.generatefiles["listing"], "", "", separateDirs=False) with Perf(metrics, "createfiles %s" % self.name): @@ -243,7 +247,7 @@ class ArvadosJob(JobBase): api_client=self.arvrunner.api, keep_client=self.arvrunner.keep_client, num_retries=self.arvrunner.num_retries) - log = logc.open(logc.keys()[0]) + log = logc.open(list(logc.keys())[0]) dirs = { "tmpdir": "/tmpdir", "outdir": "/outdir", @@ -296,10 +300,10 @@ class RunnerJob(Runner): a pipeline template or pipeline instance. """ - if self.tool.tool["id"].startswith("keep:"): - self.job_order["cwl:tool"] = self.tool.tool["id"][5:] + if self.embedded_tool.tool["id"].startswith("keep:"): + self.job_order["cwl:tool"] = self.embedded_tool.tool["id"][5:] else: - packed = packed_workflow(self.arvrunner, self.tool, self.merged_map) + packed = packed_workflow(self.arvrunner, self.embedded_tool, self.merged_map) wf_pdh = upload_workflow_collection(self.arvrunner, self.name, packed) self.job_order["cwl:tool"] = "%s/workflow.cwl#main" % wf_pdh @@ -343,7 +347,7 @@ class RunnerJob(Runner): find_or_create=self.enable_reuse ).execute(num_retries=self.arvrunner.num_retries) - for k,v in job_spec["script_parameters"].items(): + for k,v in viewitems(job_spec["script_parameters"]): if v is False or v is None or isinstance(v, dict): job_spec["script_parameters"][k] = {"value": v} @@ -386,19 +390,21 @@ class RunnerTemplate(object): } def __init__(self, runner, tool, job_order, enable_reuse, uuid, - submit_runner_ram=0, name=None, merged_map=None): + submit_runner_ram=0, name=None, merged_map=None, + loadingContext=None): self.runner = runner - self.tool = tool + self.embedded_tool = tool self.job = RunnerJob( runner=runner, tool=tool, - job_order=job_order, enable_reuse=enable_reuse, output_name=None, output_tags=None, submit_runner_ram=submit_runner_ram, name=name, - merged_map=merged_map) + merged_map=merged_map, + loadingContext=loadingContext) + self.job.job_order = job_order self.uuid = uuid def pipeline_component_spec(self): @@ -420,7 +426,7 @@ class RunnerTemplate(object): job_params = spec['script_parameters'] spec['script_parameters'] = {} - for param in self.tool.tool['inputs']: + for param in self.embedded_tool.tool['inputs']: param = copy.deepcopy(param) # Data type and "required" flag...