From dbc68a4e04b8df7ea1d0611062f6b8d1cfd787a9 Mon Sep 17 00:00:00 2001 From: Laurent Peuch Date: Mon, 3 Sep 2018 06:18:51 +0200 Subject: [PATCH] [enh] new api end point to delete a job --- run.py | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/run.py b/run.py index 92d533d..c9b4289 100644 --- a/run.py +++ b/run.py @@ -410,6 +410,28 @@ async def api_list_job(request): return response.json([model_to_dict(x) for x in query.order_by(-Job.id)]) +@app.route("/api/job/", methods=['DELETE']) +@require_token() +async def api_delete_job(request, job_id): + # need to stop a job before deleting it + await api_stop_job(request, job_id) + + # no need to check if job exist, api_stop_job will do it for us + job = Job.select().where(Job.id == job_id)[0] + + api_logger.info(f"Request to delete job '{job.name}' [{job.id}]") + + data = model_to_dict(job) + job.delete_instance() + + await broadcast({ + "action": "delete_job", + "data": data, + }, "jobs") + + return response.text("ok") + + @app.route("/api/job//stop", methods=['POST']) async def api_stop_job(request, job_id): # TODO auth or some kind