diff --git a/apiserver/bll/task/task_operations.py b/apiserver/bll/task/task_operations.py index 0edd018..1e34d4d 100644 --- a/apiserver/bll/task/task_operations.py +++ b/apiserver/bll/task/task_operations.py @@ -162,6 +162,8 @@ def delete_task( force: bool, return_file_urls: bool, delete_output_models: bool, + status_message: str, + status_reason: str, ) -> Tuple[int, Task, CleanupResult]: task = TaskBLL.get_task_with_access( task_id, company_id=company_id, requires_write_access=True @@ -179,6 +181,17 @@ def delete_task( current=task.status, ) + try: + TaskBLL.dequeue_and_change_status( + task, + company_id=company_id, + status_message=status_message, + status_reason=status_reason, + ) + except APIError: + # dequeue may fail if the task was not enqueued + pass + cleanup_res = cleanup_task( task, force=force, @@ -354,6 +367,7 @@ def stop_task( "system_tags", "last_worker", "last_update", + "execution.queue", ), requires_write_access=True, ) diff --git a/apiserver/services/tasks.py b/apiserver/services/tasks.py index a1520f5..d80513e 100644 --- a/apiserver/services/tasks.py +++ b/apiserver/services/tasks.py @@ -1050,6 +1050,8 @@ def delete(call: APICall, company_id, request: DeleteRequest): force=request.force, return_file_urls=request.return_file_urls, delete_output_models=request.delete_output_models, + status_message=request.status_message, + status_reason=request.status_reason, ) if deleted: _reset_cached_tags(company_id, projects=[task.project] if task.project else []) @@ -1066,6 +1068,8 @@ def delete_many(call: APICall, company_id, request: DeleteManyRequest): force=request.force, return_file_urls=request.return_file_urls, delete_output_models=request.delete_output_models, + status_message=request.status_message, + status_reason=request.status_reason, ), ids=request.ids, )