| 12345678910111213141516171819202122232425 |
- from contextlib import contextmanager
- from netbox.context import current_request, events_queue
- from .events import flush_events
- @contextmanager
- def event_tracking(request):
- """
- Queue interesting events in memory while processing a request, then flush that queue for processing by the
- events pipline before returning the response.
- :param request: WSGIRequest object with a unique `id` set
- """
- current_request.set(request)
- events_queue.set([])
- yield
- # Flush queued webhooks to RQ
- flush_events(events_queue.get())
- # Clear context vars
- current_request.set(None)
- events_queue.set([])
|