send events on abort

This commit is contained in:
rmanach 2023-09-22 22:47:24 +02:00
parent 89396ebac9
commit 5d68e355f8

View File

@ -9,6 +9,7 @@ from django.http import (
HttpResponseBadRequest, HttpResponseBadRequest,
) )
from django.shortcuts import render, get_object_or_404 from django.shortcuts import render, get_object_or_404
from django_eventstream import send_event
from deployment.forms import DeploymentForm from deployment.forms import DeploymentForm
from deployment.models import Deployment, Status from deployment.models import Deployment, Status
@ -64,6 +65,7 @@ def abort(request, deployment_id):
return HttpResponseBadRequest("deployment is unabortable") return HttpResponseBadRequest("deployment is unabortable")
res = AbortableAsyncResult(str(deployment.task_id)) res = AbortableAsyncResult(str(deployment.task_id))
progress = res.info.get("progress", 0)
res.abort() res.abort()
res.revoke(terminate=True) res.revoke(terminate=True)
@ -72,6 +74,24 @@ def abort(request, deployment_id):
deployment.task_id = None deployment.task_id = None
deployment.save() deployment.save()
# first event in details
send_event(
f"deployment-{deployment.id}",
"message",
{
"id": deployment.id,
"status": deployment.status,
"progress": progress,
},
)
# global event
send_event(
"deployment",
"message",
{"id": deployment.id, "status": deployment.status},
)
return HttpResponseRedirect(f"/deployment/{deployment.id}") return HttpResponseRedirect(f"/deployment/{deployment.id}")