X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/20d3523229805ee800ec11bf4ab6e41c4e18eea6..78889e115e6fffd5eb82e54a541bd4858f804f91:/sdk/cwl/arvados_cwl/arvjob.py diff --git a/sdk/cwl/arvados_cwl/arvjob.py b/sdk/cwl/arvados_cwl/arvjob.py index b706d9f1e0..1afb9afc0e 100644 --- a/sdk/cwl/arvados_cwl/arvjob.py +++ b/sdk/cwl/arvados_cwl/arvjob.py @@ -308,7 +308,7 @@ class RunnerTemplate(object): 'string': 'text', } - def __init__(self, runner, tool, job_order, enable_reuse): + def __init__(self, runner, tool, job_order, enable_reuse, uuid): self.runner = runner self.tool = tool self.job = RunnerJob( @@ -318,6 +318,7 @@ class RunnerTemplate(object): enable_reuse=enable_reuse, output_name=None, output_tags=None) + self.uuid = uuid def pipeline_component_spec(self): """Return a component that Workbench and a-r-p-i will understand. @@ -380,13 +381,21 @@ class RunnerTemplate(object): return spec def save(self): - job_spec = self.pipeline_component_spec() - response = self.runner.api.pipeline_templates().create(body={ + body = { "components": { - self.job.name: job_spec, + self.job.name: self.pipeline_component_spec(), }, "name": self.job.name, - "owner_uuid": self.runner.project_uuid, - }, ensure_unique_name=True).execute(num_retries=self.runner.num_retries) - self.uuid = response["uuid"] - logger.info("Created template %s", self.uuid) + } + if self.runner.project_uuid: + body["owner_uuid"] = self.runner.project_uuid + if self.uuid: + self.runner.api.pipeline_templates().update( + uuid=self.uuid, body=body).execute( + num_retries=self.runner.num_retries) + logger.info("Updated template %s", self.uuid) + else: + self.uuid = self.runner.api.pipeline_templates().create( + body=body, ensure_unique_name=True).execute( + num_retries=self.runner.num_retries)['uuid'] + logger.info("Created template %s", self.uuid)