10460: Add check for 'dockerOutputDirectory' and raise UnsupportedError for now.
authorPeter Amstutz <peter.amstutz@curoverse.com>
Tue, 8 Nov 2016 22:15:19 +0000 (17:15 -0500)
committerPeter Amstutz <peter.amstutz@curoverse.com>
Tue, 8 Nov 2016 22:15:19 +0000 (17:15 -0500)
sdk/cwl/arvados_cwl/arvjob.py
sdk/cwl/arvados_cwl/runner.py

index 4336c0fb1000d0848f3decaf58e03ab88e353796..8a62204f8fb9ec22298abec15529411ace70ed9e 100644 (file)
@@ -85,6 +85,8 @@ class ArvadosJob(object):
         with Perf(metrics, "arv_docker_get_image %s" % self.name):
             (docker_req, docker_is_req) = get_feature(self, "DockerRequirement")
             if docker_req and kwargs.get("use_container") is not False:
+                if docker_req.get("dockerOutputDirectory"):
+                    raise UnsupportedRequirement("Option 'dockerOutputDirectory' of DockerRequirement not supported.")
                 runtime_constraints["docker_image"] = arv_docker_get_image(self.arvrunner.api, docker_req, pull_image, self.arvrunner.project_uuid)
             else:
                 runtime_constraints["docker_image"] = arvados_jobs_image(self.arvrunner)
index ba41d7d97ea8085e1898daf075f327b8dd26d5cc..a1142544f5bf2e16150d56dd4d0b707cfd4db984 100644 (file)
@@ -110,6 +110,9 @@ def upload_docker(arvrunner, tool):
     if isinstance(tool, CommandLineTool):
         (docker_req, docker_is_req) = get_feature(tool, "DockerRequirement")
         if docker_req:
+            if docker_req.get("dockerOutputDirectory"):
+                # TODO: can be supported by containers API, but not jobs API.
+                raise UnsupportedRequirement("Option 'dockerOutputDirectory' of DockerRequirement not supported.")
             arv_docker_get_image(arvrunner.api, docker_req, True, arvrunner.project_uuid)
     elif isinstance(tool, cwltool.workflow.Workflow):
         for s in tool.steps: