From bea445d5d02adb035a126582e5c0358ec5db5c75 Mon Sep 17 00:00:00 2001 From: Peter Amstutz Date: Thu, 9 Jun 2016 15:16:09 -0400 Subject: [PATCH] 8442: raise UnsupportedRequirement for unsupported features in the conformance tests. Bump cwltool dependency. --- sdk/cwl/arvados_cwl/__init__.py | 8 +++++--- sdk/cwl/arvados_cwl/arvcontainer.py | 10 ++++++---- sdk/cwl/setup.py | 2 +- 3 files changed, 12 insertions(+), 8 deletions(-) diff --git a/sdk/cwl/arvados_cwl/__init__.py b/sdk/cwl/arvados_cwl/__init__.py index 171d92db74..af74808e1d 100644 --- a/sdk/cwl/arvados_cwl/__init__.py +++ b/sdk/cwl/arvados_cwl/__init__.py @@ -31,7 +31,7 @@ from .arvcontainer import ArvadosContainer from .arvjob import ArvadosJob from .arvdocker import arv_docker_get_image -from cwltool.process import shortname, get_feature, adjustFiles, adjustFileObjs, scandeps +from cwltool.process import shortname, get_feature, adjustFiles, adjustFileObjs, scandeps, UnsupportedRequirement from arvados.api import OrderedJsonModel logger = logging.getLogger('arvados.cwl-runner') @@ -477,7 +477,7 @@ class ArvCwlRunner(object): if kwargs.get("submit"): runnerjob = RunnerJob(self, tool, job_order, kwargs.get("enable_reuse")) - if not kwargs.get("submit") and "cwl_runner_job" not in kwargs: + if not kwargs.get("submit") and "cwl_runner_job" not in kwargs and not self.crunch2: # Create pipeline for local run self.pipeline = self.api.pipeline_instances().create( body={ @@ -543,11 +543,13 @@ class ArvCwlRunner(object): self.cond.wait(1) events.close() + except UnsupportedRequirement: + raise except: if sys.exc_info()[0] is KeyboardInterrupt: logger.error("Interrupted, marking pipeline as failed") else: - logger.error("Caught unhandled exception, marking pipeline as failed. Error was: %s", sys.exc_info()[0], exc_info=(sys.exc_info()[1] if self.debug else False)) + logger.error("Caught unhandled exception, marking pipeline as failed. Error was: %s", sys.exc_info()[1], exc_info=(sys.exc_info()[1] if self.debug else False)) if self.pipeline: self.api.pipeline_instances().update(uuid=self.pipeline["uuid"], body={"state": "Failed"}).execute(num_retries=self.num_retries) diff --git a/sdk/cwl/arvados_cwl/arvcontainer.py b/sdk/cwl/arvados_cwl/arvcontainer.py index 0cb885f59b..17fe8cb5c4 100644 --- a/sdk/cwl/arvados_cwl/arvcontainer.py +++ b/sdk/cwl/arvados_cwl/arvcontainer.py @@ -4,6 +4,7 @@ from cwltool.process import get_feature, adjustFiles from .arvdocker import arv_docker_get_image from . import done from cwltool.errors import WorkflowException +from cwltool.process import UnsupportedRequirement logger = logging.getLogger('arvados.cwl-runner') @@ -42,6 +43,8 @@ class ArvadosContainer(object): } if self.generatefiles: + raise UnsupportedRequirement("Stdin redirection currently not suppported") + vwd = arvados.collection.Collection() container_request["task.vwd"] = {} for t in self.generatefiles: @@ -60,13 +63,12 @@ class ArvadosContainer(object): if self.environment: container_request["environment"].update(self.environment) - # TODO, not supported by crunchv2 yet - #if self.stdin: - # container_request["task.stdin"] = self.pathmapper.mapper(self.stdin)[1] + if self.stdin: + raise UnsupportedRequirement("Stdin redirection currently not suppported") if self.stdout: mounts["stdout"] = {"kind": "file", - "path": self.stdout} + "path": "/var/spool/cwl/%s" % (self.stdout)} (docker_req, docker_is_req) = get_feature(self, "DockerRequirement") if not docker_req: diff --git a/sdk/cwl/setup.py b/sdk/cwl/setup.py index 591bddefee..b1ff7f34b8 100644 --- a/sdk/cwl/setup.py +++ b/sdk/cwl/setup.py @@ -30,7 +30,7 @@ setup(name='arvados-cwl-runner', 'bin/arvados-cwl-runner' ], install_requires=[ - 'cwltool==1.0.20160519182434', + 'cwltool==1.0.20160609160402', 'arvados-python-client>=0.1.20160322001610' ], data_files=[ -- 2.30.2