17984: Improve error reporting a bit
authorPeter Amstutz <peter.amstutz@curii.com>
Tue, 10 Aug 2021 19:44:27 +0000 (15:44 -0400)
committerPeter Amstutz <peter.amstutz@curii.com>
Tue, 10 Aug 2021 19:44:27 +0000 (15:44 -0400)
Arvados-DCO-1.1-Signed-off-by: Peter Amstutz <peter.amstutz@curii.com>

sdk/cwl/arvados_cwl/__init__.py
sdk/cwl/arvados_cwl/arvtool.py

index 04db611fbef349692bca2dd38a4988225d980917..2e491fe5ba80e0dc66d6fc69fd9d3b2df84ff895 100644 (file)
@@ -22,6 +22,7 @@ import cwltool.main
 import cwltool.workflow
 import cwltool.process
 import cwltool.argparser
+from cwltool.errors import WorkflowException
 from cwltool.process import shortname, UnsupportedRequirement, use_custom_schema
 from cwltool.utils import adjustFileObjs, adjustDirObjs, get_listing
 
@@ -301,6 +302,9 @@ def main(args, stdout, stderr, api_client=None, keep_client=None,
         if keep_client is None:
             keep_client = arvados.keep.KeepClient(api_client=api_client, num_retries=4)
         executor = ArvCwlExecutor(api_client, arvargs, keep_client=keep_client, num_retries=4)
+    except WorkflowException as e:
+        logger.error(e, exc_info=(sys.exc_info()[1] if arvargs.debug else False))
+        return 1
     except Exception:
         logger.exception("Error creating the Arvados CWL Executor")
         return 1
index c79b1e67b6fcfa0d0ea81e2719dca9b42a0fa017..13664a8dfb0d57df0477d4c627928b9be17ad8d7 100644 (file)
@@ -19,7 +19,7 @@ def validate_cluster_target(arvrunner, runtimeContext):
     if runtimeContext.project_uuid:
         cluster_target = runtimeContext.submit_runner_cluster or arvrunner.api._rootDesc["uuidPrefix"]
         if not runtimeContext.project_uuid.startswith(cluster_target):
-            raise WorkflowException("Project uuid '%s' must be for target cluster '%s'" % (runtimeContext.project_uuid, cluster_target))
+            raise WorkflowException("Project uuid '%s' should start with id of target cluster '%s'" % (runtimeContext.project_uuid, cluster_target))
 
         try:
             if runtimeContext.project_uuid[5:12] == '-tpzed-':
@@ -29,7 +29,7 @@ def validate_cluster_target(arvrunner, runtimeContext):
                 if proj["group_class"] != "project":
                     raise Exception("not a project, group_class is '%s'" % (proj["group_class"]))
         except Exception as e:
-            raise WorkflowException("Invalid value for project uuid '%s': %s" % (runtimeContext.project_uuid, e))
+            raise WorkflowException("Invalid project uuid '%s': %s" % (runtimeContext.project_uuid, e))
 
 def set_cluster_target(tool, arvrunner, builder, runtimeContext):
     cluster_target_req = None