From 904c456ae87a627e68e97cba7c5dfec7973fa949 Mon Sep 17 00:00:00 2001
From: Charlotte Hausman <chausman@nrao.edu>
Date: Fri, 5 Feb 2021 11:57:02 -0500
Subject: [PATCH] SWS-6: workflows now start correctly with correct arguments

---
 services/capability/src/capability/server.py       |  2 +-
 shared/workspaces/workspaces/capability/helpers.py | 11 +++++++----
 2 files changed, 8 insertions(+), 5 deletions(-)

diff --git a/services/capability/src/capability/server.py b/services/capability/src/capability/server.py
index 518baa3b1..fd99f5876 100644
--- a/services/capability/src/capability/server.py
+++ b/services/capability/src/capability/server.py
@@ -51,7 +51,7 @@ class CapabilityRestService:
     def create(self):
         # create a capability request for this ... request
         req = self.request.json_body
-        request = self.request.capabilities.create_request(req["capability"])
+        request = self.request.capabilities.create_request(req["capability"], req["args"])
         return request
 
     @view_config(
diff --git a/shared/workspaces/workspaces/capability/helpers.py b/shared/workspaces/workspaces/capability/helpers.py
index 33aa82189..13b42bc83 100644
--- a/shared/workspaces/workspaces/capability/helpers.py
+++ b/shared/workspaces/workspaces/capability/helpers.py
@@ -114,12 +114,15 @@ class CapabilitySequence(CapabilitySequenceIF):
 class PrepareAndRunWorkflow(CapabilityStep):
     def execute(self, engine: CapabilityEngineIF, execution: CapabilityExecutionIF):
         workflow_name = self.step_value
-        workflow_args = self.step_args
+        parameters = execution.capability_request.parameters
         # FIXME: Add support for files
         files = []
-        if workflow_args is not None:
-            workflow_args = json.loads(workflow_args)
-        engine.submit_workflow_request(workflow_name, workflow_args, files)
+        if parameters is not None:
+            # convert to json string because json cares about single vs. double quotes.
+            # DO NOT TAKE THIS OUT! Python will yell at you.
+            parameters = json.dumps(parameters)
+            workflow_args = json.loads(parameters)
+        engine.submit_workflow_request(execution.id, workflow_name, workflow_args, files)
 
 
 class AwaitQa(CapabilityStep):
-- 
GitLab