[Patchew-devel] [PATCH v2 09/12] maintainer: Add MessageQueued and MessageDropping events
Fam Zheng
fam at euphon.net
Wed Nov 28 14:35:02 UTC 2018
From: Fam Zheng <famz at redhat.com>
These events are not used internally but is an interesting point where
users can receive notifications when the watched queue is updated.
Signed-off-by: Fam Zheng <famz at redhat.com>
---
mods/maintainer.py | 14 ++++++++++++--
1 file changed, 12 insertions(+), 2 deletions(-)
diff --git a/mods/maintainer.py b/mods/maintainer.py
index d342748..6b09057 100644
--- a/mods/maintainer.py
+++ b/mods/maintainer.py
@@ -16,7 +16,7 @@ from mod import PatchewModule
from api.models import Message, Queue, WatchedQuery
from django.shortcuts import render
from api.search import SearchEngine
-from event import register_handler
+from event import declare_event, register_handler, emit_event
class MaintainerModule(PatchewModule):
""" Project maintainer related tasks """
@@ -25,14 +25,24 @@ class MaintainerModule(PatchewModule):
def __init__(self):
register_handler("ResultUpdate", self.on_result_update)
+ declare_event("MessageQueued",
+ message="Message added",
+ queue="The updated queue")
+ declare_event("MessageDropping",
+ message="Message to be dropped",
+ queue="Message is about to be dropping from a queue")
def _add_to_queue(self, user, m, queue):
for x in [m] + list(m.get_patches()):
- Queue.objects.get_or_create(user=user, message=x, name=queue)
+ q, created = Queue.objects.get_or_create(user=user, message=x, name=queue)
+ if created:
+ emit_event("MessageQueued", message=x, queue=q)
def _drop_from_queue(self, user, m, queue):
query = Queue.objects.filter(user=user, message__in=m.get_patches() + [m],
name=queue)
+ for q in query:
+ emit_event("MessageDropping", message=q.message, queue=q)
q.delete()
def _update_watch_queue(self, series):
--
2.17.2
More information about the Patchew-devel
mailing list