diff --git a/docs/openapi.json b/docs/openapi.json index 2586ded1..21f794be 100644 --- a/docs/openapi.json +++ b/docs/openapi.json @@ -585,13 +585,10 @@ }, { "description": "Required. New workflow status.", - "in": "body", + "in": "query", "name": "status", "required": true, - "schema": { - "description": "Required. New status.", - "type": "string" - } + "type": "string" }, { "description": "Required. The API access_token of workflow owner.", @@ -599,6 +596,15 @@ "name": "access_token", "required": true, "type": "string" + }, + { + "description": "Optional. Extra parameters for workflow status.", + "in": "body", + "name": "parameters", + "required": false, + "schema": { + "type": "object" + } } ], "produces": [ diff --git a/reana_server/openapi_connections/reana_workflow_controller.json b/reana_server/openapi_connections/reana_workflow_controller.json index 08235dbb..abc3dab7 100644 --- a/reana_server/openapi_connections/reana_workflow_controller.json +++ b/reana_server/openapi_connections/reana_workflow_controller.json @@ -469,12 +469,18 @@ }, { "description": "Required. New status.", - "in": "body", + "in": "query", "name": "status", "required": true, + "type": "string" + }, + { + "description": "Optional. Extra parameters for workflow status.", + "in": "body", + "name": "parameters", + "required": false, "schema": { - "description": "Required. New status.", - "type": "string" + "type": "object" } } ], diff --git a/reana_server/rest/workflows.py b/reana_server/rest/workflows.py index c86702c2..2d626146 100644 --- a/reana_server/rest/workflows.py +++ b/reana_server/rest/workflows.py @@ -519,17 +519,21 @@ def set_workflow_status(workflow_id_or_name): # noqa required: true type: string - name: status - in: body + in: query description: Required. New workflow status. required: true - schema: - type: string - description: Required. New status. + type: string - name: access_token in: query description: Required. The API access_token of workflow owner. required: true type: string + - name: parameters + in: body + description: Optional. Extra parameters for workflow status. + required: false + schema: + type: object responses: 200: description: >- @@ -613,13 +617,14 @@ def set_workflow_status(workflow_id_or_name): # noqa if not workflow_id_or_name: raise KeyError("workflow_id_or_name is not supplied") - - status = request.json + status = request.args.get('status') + parameters = request.json response, http_response = rwc_api_client.api.set_workflow_status( user=user_id, workflow_id_or_name=workflow_id_or_name, - status=status).result() + status=status, + parameters=parameters).result() return jsonify(response), http_response.status_code except HTTPError as e: