From 7b54cca08f555a461da6ab3a4c90bf6011deceed Mon Sep 17 00:00:00 2001 From: Audrius Mecionis Date: Thu, 22 Oct 2020 11:42:30 +0200 Subject: [PATCH] rest: prevent opening a session on a deleted workflow --- reana_workflow_controller/rest/workflows_session.py | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/reana_workflow_controller/rest/workflows_session.py b/reana_workflow_controller/rest/workflows_session.py index 4aa41c65..8140561c 100644 --- a/reana_workflow_controller/rest/workflows_session.py +++ b/reana_workflow_controller/rest/workflows_session.py @@ -11,7 +11,7 @@ from flask import Blueprint, jsonify, request from reana_db.utils import _get_workflow_with_uuid_or_name -from reana_db.models import WorkflowSession, InteractiveSessionType +from reana_db.models import WorkflowSession, InteractiveSessionType, RunStatus from reana_workflow_controller.workflow_run_manager import KubernetesWorkflowRunManager @@ -125,6 +125,17 @@ def open_interactive_session(workflow_id_or_name, interactive_session_type): # user_uuid = request.args["user"] workflow = None workflow = _get_workflow_with_uuid_or_name(workflow_id_or_name, user_uuid) + + if workflow.status == RunStatus.deleted: + return ( + jsonify( + { + "message": "Interactive session can't be opened from a deleted workflow" + } + ), + 404, + ) + kwrm = KubernetesWorkflowRunManager(workflow) access_path = kwrm.start_interactive_session( interactive_session_type,