From 916caa1214f81bb15bd326f9b3ed6431440b0ffa Mon Sep 17 00:00:00 2001 From: "Janet L. Goldstein" <jgoldste@nrao.edu> Date: Wed, 12 Jan 2022 16:45:41 -0700 Subject: [PATCH] WS-858: fix bugs in `create_follow_on_capability_request`. TODO next: fix unit test --- .../services/capability-request.service.ts | 3 +- .../capability/views/capability_request.py | 32 +++++++++++-------- 2 files changed, 19 insertions(+), 16 deletions(-) diff --git a/apps/web/src/app/workspaces/services/capability-request.service.ts b/apps/web/src/app/workspaces/services/capability-request.service.ts index e59f035d1..b9400abf4 100644 --- a/apps/web/src/app/workspaces/services/capability-request.service.ts +++ b/apps/web/src/app/workspaces/services/capability-request.service.ts @@ -113,8 +113,7 @@ export class CapabilityRequestService { } /** - * Add file to latest version of capability request - * + * Add file to selected capability request version * @param requestId ID of request whose latest version will receive the file * @param filename Name of file * @param content Content of file diff --git a/services/capability/capability/views/capability_request.py b/services/capability/capability/views/capability_request.py index e14d93e77..e59e74d62 100644 --- a/services/capability/capability/views/capability_request.py +++ b/services/capability/capability/views/capability_request.py @@ -31,8 +31,6 @@ from pyramid.request import Request from pyramid.response import Response from pyramid.view import view_config -from workspaces.capability.schema import CapabilityVersion - @view_config(route_name="view_capability_request", renderer="json") def view_capability_request(request: Request) -> Response: @@ -125,7 +123,7 @@ def create_capability_request(request: Request) -> Response: @view_config(route_name="create_follow_on_capability_request", renderer="json") -def create_follow_on_capability_request(request: Request, version: CapabilityVersion) -> Response: +def create_follow_on_capability_request(request: Request) -> Response: """ Pyramid view that accepts a request to create a follow-on capability request from a previous request URL: capability/request/{request_id}/followon/{followon_type} @@ -138,26 +136,32 @@ def create_follow_on_capability_request(request: Request, version: CapabilityVer 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 = capability_info.lookup_capability_request(request_id) - previous_workflow_id = request_id - - metadata_content = request.workflow_service.retrieve_file_content(previous_workflow_id, "metadata.json") + current_version = capability_request.current_version + parameters = current_version.parameters + user_email = parameters["user_email"] + version_number = request.matchdict["version"] + 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, + followon_type=followon_type, parameters={ - "cms_path": cms_path, - "sdmId": sdm_id, - "user_email": "jgoldste@nrao.edu", - "version": version.version_number, + "user_email": user_email, + "version": version_number, "previous_workflow_request_id": previous_workflow_id, - "capability_name": version.capability_name, + "sdm_id": sdm_id, + "cms_path": cms_path, }, ) return Response(json_body=new_capability_request.__json__()) @@ -180,7 +184,7 @@ 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 reate and submit a capability request + Pyramid view to create and submit a capability request :param request: dummy POST request :return: -- GitLab