mirror of
https://github.com/netbox-community/netbox.git
synced 2025-08-08 16:48:16 -06:00
Fixes: #3016 - Add wrapper for post_save and post_delete signals
This commit is contained in:
parent
4522a285e0
commit
12db28fab6
@ -2,9 +2,12 @@ from django.db.models.signals import post_delete, post_save
|
||||
from django.dispatch import receiver
|
||||
from django.utils import timezone
|
||||
|
||||
from extras.signals import disable_for_loaddata
|
||||
|
||||
from .models import Circuit, CircuitTermination
|
||||
|
||||
|
||||
@disable_for_loaddata
|
||||
@receiver((post_save, post_delete), sender=CircuitTermination)
|
||||
def update_circuit(instance, **kwargs):
|
||||
"""
|
||||
|
@ -1,9 +1,12 @@
|
||||
from django.db.models.signals import post_save, pre_delete
|
||||
from django.dispatch import receiver
|
||||
|
||||
from extras.signals import disable_for_loaddata
|
||||
|
||||
from .models import Cable, Device, VirtualChassis
|
||||
|
||||
|
||||
@disable_for_loaddata
|
||||
@receiver(post_save, sender=VirtualChassis)
|
||||
def assign_virtualchassis_master(instance, created, **kwargs):
|
||||
"""
|
||||
@ -17,6 +20,7 @@ def assign_virtualchassis_master(instance, created, **kwargs):
|
||||
device.save()
|
||||
|
||||
|
||||
@disable_for_loaddata
|
||||
@receiver(pre_delete, sender=VirtualChassis)
|
||||
def clear_virtualchassis_members(instance, **kwargs):
|
||||
"""
|
||||
@ -29,6 +33,7 @@ def clear_virtualchassis_members(instance, **kwargs):
|
||||
device.save()
|
||||
|
||||
|
||||
@disable_for_loaddata
|
||||
@receiver(post_save, sender=Cable)
|
||||
def update_connected_endpoints(instance, **kwargs):
|
||||
"""
|
||||
@ -54,6 +59,7 @@ def update_connected_endpoints(instance, **kwargs):
|
||||
endpoint_b.save()
|
||||
|
||||
|
||||
@disable_for_loaddata
|
||||
@receiver(pre_delete, sender=Cable)
|
||||
def nullify_connected_endpoints(instance, **kwargs):
|
||||
"""
|
||||
|
@ -1,6 +1,7 @@
|
||||
from cacheops.signals import cache_invalidated, cache_read
|
||||
from django.dispatch import Signal
|
||||
from prometheus_client import Counter
|
||||
from functools import wraps
|
||||
|
||||
|
||||
#
|
||||
@ -12,6 +13,15 @@ cacheops_cache_miss = Counter('cacheops_cache_miss', 'Number of cache misses')
|
||||
cacheops_cache_invalidated = Counter('cacheops_cache_invalidated', 'Number of cache invalidations')
|
||||
|
||||
|
||||
def disable_for_loaddata(signal_handler):
|
||||
@wraps(signal_handler)
|
||||
def wrapper(*args, **kwargs):
|
||||
if kwargs['raw']:
|
||||
return
|
||||
signal_handler(*args, **kwargs)
|
||||
return wrapper
|
||||
|
||||
|
||||
def cache_read_collector(sender, func, hit, **kwargs):
|
||||
if hit:
|
||||
cacheops_cache_hit.inc()
|
||||
|
Loading…
Reference in New Issue
Block a user