Skip to content
Snippets Groups Projects

WS-858: fix bugs in `create_follow_on_capability_request`, hopefully for the last time

Merged Janet Goldstein requested to merge WS-858-cap-req-followon-debug-2022-01-12 into main
All threads resolved!
Files
2
@@ -21,6 +21,8 @@
File containing definitions for the other half of the capability side of the Workspaces REST API,
concerning capability requests
"""
# pylint: disable=E0401
import json
from capability.views.capability_version import submit_capability_version
@@ -133,25 +135,30 @@ def create_follow_on_capability_request(request: Request) -> Response:
requested
"""
request_id = request.matchdict["request_id"]
followon_type = request.matchdict["followon_type"]
request_id = request.matchdict["request_id"]
capability_info = request.capability_info
capability_request = request.capability_info.lookup_capability_request(request_id)
parameters = capability_request.current_version.parameters
version_number = int(request.matchdict["version"])
current_version = capability_info.lookup_version(request_id, version_number)
parameters = current_version.parameters
user_email = parameters["user_email"]
previous_workflow_id = capability_request.current_execution.current_workflow_request_id
previous_workflow_id = current_version.current_execution.current_workflow_request_id
metadata_content = request.workflow_service.retrieve_file_content(
followon_type, previous_workflow_id, "metadata.json"
)
metadata = json.loads(metadata_content)
cms_path = metadata["destinationDirectory"] + "/working"
sdm_id = metadata["fileSetIds"][0] if isinstance(metadata["fileSetIds"], list) else metadata["fileSetIds"]
new_capability_request = request.capability_info.create_capability_request(
followon_type, parameters={"cms_path": cms_path, "sdmId": sdm_id, "user_email": user_email}
capability_name=followon_type,
parameters={
"user_email": user_email,
"sdm_id": sdm_id,
"cms_path": cms_path,
},
)
return Response(json_body=new_capability_request.__json__())
@@ -172,6 +179,12 @@ def edit_capability_request(request: Request) -> Response:
@view_config(route_name="create_and_submit_capability_request", renderer="json")
def create_and_submit_capability_request(request: Request) -> Response:
"""
Pyramid view to create and submit a capability request
:param request: dummy POST request
:return:
"""
response = create_capability_request(request)
capability_request = request.capability_info.lookup_capability_request(response.json_body["id"])
request.matchdict = {
Loading