Skip to content
Snippets Groups Projects
Commit 575c21b5 authored by Charlotte Hausman's avatar Charlotte Hausman Committed by Charlotte Hausman
Browse files

SWS-29: make workflow and capability requests handle arguments/parameters the same

parent df79a180
No related branches found
No related tags found
1 merge request!66workflow and capability request submission
This commit is part of merge request !66. Comments created here will be created in the context of that merge request.
...@@ -4,6 +4,7 @@ from pyramid.renderers import JSONP ...@@ -4,6 +4,7 @@ from pyramid.renderers import JSONP
from pyramid.request import Request from pyramid.request import Request
from pyramid.view import view_config, view_defaults from pyramid.view import view_config, view_defaults
from pyramid_beaker import session_factory_from_settings from pyramid_beaker import session_factory_from_settings
import json
from workspaces.system.schema import get_engine, get_session_factory from workspaces.system.schema import get_engine, get_session_factory
from workspaces.workflow.services.workflow_info import WorkflowInfo from workspaces.workflow.services.workflow_info import WorkflowInfo
...@@ -27,6 +28,11 @@ def lookup_workflow(request): ...@@ -27,6 +28,11 @@ def lookup_workflow(request):
return request.info.lookup_workflow_definition(request.matchdict["name"]) return request.info.lookup_workflow_definition(request.matchdict["name"])
def lookup_workflow_json(request):
req = request.json_body
return request.info.lookup_workflow_definition(req["workflow"])
def lookup_request(request): def lookup_request(request):
return request.info.lookup_workflow_request(request.matchdict["request_id"]) return request.info.lookup_workflow_request(request.matchdict["request_id"])
...@@ -94,12 +100,9 @@ class WorkflowRequestRestService: ...@@ -94,12 +100,9 @@ class WorkflowRequestRestService:
Audience: front-end and CLI Audience: front-end and CLI
:return: :return:
""" """
# all we should have to do here is take the WorkflowRequest from the context and
# hand it to WorkflowInfo to save it, but we're still conflating req = self.request.json_body
# workflows and workflow requests right now request = self.request.info.create_workflow_request(req["workflow"], req["args"])
request = self.request.info.create_workflow_request(
self.request.context, self.request.GET.getall("args")
)
return request return request
@view_config(request_method="POST", route_name="submit_workflow_request") @view_config(request_method="POST", route_name="submit_workflow_request")
...@@ -111,8 +114,9 @@ class WorkflowRequestRestService: ...@@ -111,8 +114,9 @@ class WorkflowRequestRestService:
:return: :return:
""" """
print(f"Submitting workflow {self.request.context}") print(f"Submitting workflow {self.request.context}")
return self.request.workflows.execute( return self.request.workflows.execute(
self.request.context, self.request.GET.getall("files") self.request.context, self.request.json_body["files"]
) )
...@@ -246,10 +250,12 @@ def main(global_config, **settings): ...@@ -246,10 +250,12 @@ def main(global_config, **settings):
config.add_route("workflows", "/workflows") config.add_route("workflows", "/workflows")
config.add_route("workflow", "/workflows/{name}", factory=lookup_workflow) config.add_route("workflow", "/workflows/{name}", factory=lookup_workflow)
# parameters are passed with json: {workflow:<name>, args: <args>}
config.add_route( config.add_route(
"create_workflow_request", "create_workflow_request",
"/workflows/{name}/requests/create", "/workflows/requests/create",
factory=lookup_workflow, factory=lookup_workflow_json,
) )
config.add_route( config.add_route(
"workflow_request", "workflow_request",
...@@ -266,6 +272,9 @@ def main(global_config, **settings): ...@@ -266,6 +272,9 @@ def main(global_config, **settings):
"/workflows/requests/{request_id}/files/{filename}", "/workflows/requests/{request_id}/files/{filename}",
factory=lookup_request, factory=lookup_request,
) )
# parameters are passed with json: {files:{<name>}}.
# Use empty braces for no additional files
config.add_route( config.add_route(
"submit_workflow_request", "submit_workflow_request",
"/workflows/requests/{request_id}/submit", "/workflows/requests/{request_id}/submit",
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment