Bugfix submitting cwl jobs with arvados-cwl-runner refs #9275
authorPeter Amstutz <peter.amstutz@curoverse.com>
Tue, 7 Jun 2016 20:43:19 +0000 (16:43 -0400)
committerPeter Amstutz <peter.amstutz@curoverse.com>
Tue, 7 Jun 2016 20:43:19 +0000 (16:43 -0400)
sdk/cwl/arvados_cwl/__init__.py

index adf93722fecbf1651c0ad203cd5f8ba07b7800b9..371dd4fb8c5252ac7f37bddb240176dd389405d4 100644 (file)
@@ -406,6 +406,14 @@ class RunnerJob(object):
 
         logger.info("Submitted job %s", response["uuid"])
 
+        if kwargs.get("submit"):
+            self.pipeline = self.arvrunner.api.pipeline_instances().create(
+                body={
+                    "owner_uuid": self.arvrunner.project_uuid,
+                    "name": shortname(self.tool.tool["id"]),
+                    "components": {"cwl-runner": {"job": {"uuid": self.uuid, "state": response["state"]} } },
+                    "state": "RunningOnClient"}).execute(num_retries=self.arvrunner.num_retries)
+
         if response["state"] in ("Complete", "Failed", "Cancelled"):
             self.done(response)
 
@@ -673,16 +681,13 @@ class ArvCwlRunner(object):
         if kwargs.get("submit"):
             runnerjob = RunnerJob(self, tool, job_order, kwargs.get("enable_reuse"))
 
-        components = {}
-        if kwargs.get("submit"):
-            components[os.path.basename(tool.tool["id"])] = {"job": runnerjob}
-
-        if "cwl_runner_job" not in kwargs:
+        if not kwargs.get("submit") and "cwl_runner_job" not in kwargs:
+            # Create pipeline for local run
             self.pipeline = self.api.pipeline_instances().create(
                 body={
                     "owner_uuid": self.project_uuid,
                     "name": shortname(tool.tool["id"]),
-                    "components": components,
+                    "components": {},
                     "state": "RunningOnClient"}).execute(num_retries=self.num_retries)
             logger.info("Pipeline instance %s", self.pipeline["uuid"])