Skip to content
Snippets Groups Projects

workflow and capability request submission

Merged Charlotte Hausman requested to merge SWS-29-workflow_and_capability_requests into main
1 file
+ 18
9
Compare changes
  • Side-by-side
  • Inline
@@ -4,6 +4,7 @@ from pyramid.renderers import JSONP
from pyramid.request import Request
from pyramid.view import view_config, view_defaults
from pyramid_beaker import session_factory_from_settings
import json
from workspaces.system.schema import get_engine, get_session_factory
from workspaces.workflow.services.workflow_info import WorkflowInfo
@@ -27,6 +28,11 @@ def lookup_workflow(request):
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):
return request.info.lookup_workflow_request(request.matchdict["request_id"])
@@ -94,12 +100,9 @@ class WorkflowRequestRestService:
Audience: front-end and CLI
: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
# workflows and workflow requests right now
request = self.request.info.create_workflow_request(
self.request.context, self.request.GET.getall("args")
)
req = self.request.json_body
request = self.request.info.create_workflow_request(req["workflow"], req["args"])
return request
@view_config(request_method="POST", route_name="submit_workflow_request")
@@ -111,8 +114,9 @@ class WorkflowRequestRestService:
:return:
"""
print(f"Submitting workflow {self.request.context}")
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):
config.add_route("workflows", "/workflows")
config.add_route("workflow", "/workflows/{name}", factory=lookup_workflow)
# parameters are passed with json: {workflow:<name>, args: <args>}
config.add_route(
"create_workflow_request",
"/workflows/{name}/requests/create",
factory=lookup_workflow,
"/workflows/requests/create",
factory=lookup_workflow_json,
)
config.add_route(
"workflow_request",
@@ -266,6 +272,9 @@ def main(global_config, **settings):
"/workflows/requests/{request_id}/files/{filename}",
factory=lookup_request,
)
# parameters are passed with json: {files:{<name>}}.
# Use empty braces for no additional files
config.add_route(
"submit_workflow_request",
"/workflows/requests/{request_id}/submit",
Loading