From 19da180f63977195b7ed7038b69f700d9ba0cb67 Mon Sep 17 00:00:00 2001 From: chausman <chausman@nrao.edu> Date: Fri, 12 May 2023 11:43:37 -0600 Subject: [PATCH] - make intentionally Failed requests closable - make sure closing requests saves the change --- .../request-operations/request-operations.component.ts | 8 ++++---- .../capability/capability/views/capability_request.py | 6 ++++++ 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/apps/web/src/app/workspaces/components/capability-request/components/request-operations/request-operations.component.ts b/apps/web/src/app/workspaces/components/capability-request/components/request-operations/request-operations.component.ts index 104b083a8..2f541bed3 100644 --- a/apps/web/src/app/workspaces/components/capability-request/components/request-operations/request-operations.component.ts +++ b/apps/web/src/app/workspaces/components/capability-request/components/request-operations/request-operations.component.ts @@ -152,14 +152,14 @@ export class RequestOperationsComponent implements OnInit { } /** - * The request is closable if it's failed in an error state. + * The request is closable if it's failed or in an error state. */ isRequestCloseable(): boolean { return ( this.selectedVersion && - this.selectedVersion.state === 'Error' && - this.selectedVersion.current_execution.state_name === 'Error' - ) + (this.selectedVersion.state === 'Error' || this.selectedVersion.state === 'Failed') && + (this.selectedVersion.current_execution.state_name === 'Error' || this.selectedVersion.current_execution.state_name === 'Failed') + ); } public loadDefaultCC() { diff --git a/services/capability/capability/views/capability_request.py b/services/capability/capability/views/capability_request.py index a6e453adf..0f5453b80 100644 --- a/services/capability/capability/views/capability_request.py +++ b/services/capability/capability/views/capability_request.py @@ -227,6 +227,12 @@ def close_capability_request(request: Request) -> Response: if capability_request: if capability_request.state == "Failed": capability_request.update_sealed(True) + try: + request.capability_info.save_entity(capability_request) + except Exception as exc: + detail = f"sealing of {capability_request.id} failed: {exc}" + return HTTPBadRequest(detail=detail) + return Response(body=f"Capability request with ID {request_id} successfully closed.") else: not_failed_msg = f"Capability with ID {request_id} is not in a failed state and cannot be closed." -- GitLab