8442: Fix error reporting on missing Docker image
authorPeter Amstutz <peter.amstutz@curoverse.com>
Tue, 21 Jun 2016 20:10:46 +0000 (16:10 -0400)
committerPeter Amstutz <peter.amstutz@curoverse.com>
Tue, 21 Jun 2016 20:10:46 +0000 (16:10 -0400)
sdk/cwl/arvados_cwl/__init__.py
sdk/cwl/arvados_cwl/arvdocker.py
sdk/cwl/arvados_cwl/done.py

index 9b30611f621ca60df7bfa22614f5ce0961bcb672..962a690d6813cb96e14f06c7d5fb430d5d5c8e98 100644 (file)
@@ -212,7 +212,7 @@ class ArvCwlRunner(object):
             raise UnsupportedRequirement("Check log for details.")
 
         if self.final_output is None:
-            raise cwltool.workflow.WorkflowException("Workflow did not return a result.")
+            raise WorkflowException("Workflow did not return a result.")
 
         return self.final_output
 
index 3cc1a42ae2a0693ae0b7494fed9849eadc417e89..c75e783ac2de0a0cdf967386983681ff4e5da678 100644 (file)
@@ -1,7 +1,10 @@
 import logging
+import sys
+
 import cwltool.docker
+from cwltool.errors import WorkflowException
 import arvados.commands.keepdocker
-import sys
+
 
 logger = logging.getLogger('arvados.cwl-runner')
 
@@ -25,7 +28,10 @@ def arv_docker_get_image(api_client, dockerRequirement, pull_image, project_uuid
         if image_tag:
             args.append(image_tag)
         logger.info("Uploading Docker image %s", ":".join(args[1:]))
-        arvados.commands.keepdocker.main(args, stdout=sys.stderr)
+        try:
+            arvados.commands.keepdocker.main(args, stdout=sys.stderr)
+        except SystemExit:
+            raise WorkflowException()
 
     images = arvados.commands.keepdocker.list_images_in_arv(api_client, 3,
                                                             image_name=image_name,
index 8a6fc9d7346b471101de1b3c8a495195348b17a7..31f353e5d8e0395028d50b86973fd4bb6e197e8f 100644 (file)
@@ -1,3 +1,5 @@
+from cwltool.errors import WorkflowException
+
 def done(self, record, tmpdir, outdir, keepdir):
     colname = "Output %s of %s" % (record["output"][0:7], self.name)