14198: Add --always-submit-runner
authorPeter Amstutz <pamstutz@veritasgenetics.com>
Wed, 7 Nov 2018 21:24:02 +0000 (16:24 -0500)
committerPeter Amstutz <pamstutz@veritasgenetics.com>
Wed, 21 Nov 2018 18:05:26 +0000 (13:05 -0500)
Arvados-DCO-1.1-Signed-off-by: Peter Amstutz <pamstutz@veritasgenetics.com>

sdk/cwl/arvados_cwl/__init__.py
sdk/cwl/arvados_cwl/context.py
sdk/cwl/arvados_cwl/executor.py

index a29bafb2234c1eed153289d07e6da4f085ed7351..605d3300520e78ec47eabf9d7e3af12ed11fa8e7 100644 (file)
@@ -145,6 +145,10 @@ def arg_parser():  # type: () -> argparse.ArgumentParser
                         help="Docker image for workflow runner job, default arvados/jobs:%s" % __version__,
                         default=None)
 
+    parser.add_argument("--always-submit-runner", action="store_true",
+                        help="Always submit a runner to manage the workflow, even when running only a single CommandLineTool",
+                        default=False)
+
     exgroup = parser.add_mutually_exclusive_group()
     exgroup.add_argument("--submit-request-uuid", type=str,
                         default=None,
index 48f92b77f471439c6e1dd7e7db930e08e263a0da..8af3f20c863fccc0cb252d70d19dcac8a44733dd 100644 (file)
@@ -35,6 +35,7 @@ class ArvRuntimeContext(RuntimeContext):
         self.http_timeout = 300
         self.submit_runner_cluster = None
         self.cluster_target_id = 0
+        self.always_submit_runner = False
 
         super(ArvRuntimeContext, self).__init__(kwargs)
 
index c6dc716298cc51182c9dee29a685c4e102dd5746..994594023a1c36fdd08d17088d5793b713fdceb0 100644 (file)
@@ -586,7 +586,7 @@ http://doc.arvados.org/install/install-api-server.html#disable_api_methods
         if runtimeContext.submit:
             # Submit a runner job to run the workflow for us.
             if self.work_api == "containers":
-                if tool.tool["class"] == "CommandLineTool" and runtimeContext.wait:
+                if tool.tool["class"] == "CommandLineTool" and runtimeContext.wait and (not runtimeContext.always_submit_runner):
                     runtimeContext.runnerjob = tool.tool["id"]
                     runnerjob = tool.job(job_order,
                                          self.output_callback,