mirror of
https://github.com/netbox-community/netbox.git
synced 2025-08-09 00:58: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.dispatch import receiver
|
||||||
from django.utils import timezone
|
from django.utils import timezone
|
||||||
|
|
||||||
|
from extras.signals import disable_for_loaddata
|
||||||
|
|
||||||
from .models import Circuit, CircuitTermination
|
from .models import Circuit, CircuitTermination
|
||||||
|
|
||||||
|
|
||||||
|
@disable_for_loaddata
|
||||||
@receiver((post_save, post_delete), sender=CircuitTermination)
|
@receiver((post_save, post_delete), sender=CircuitTermination)
|
||||||
def update_circuit(instance, **kwargs):
|
def update_circuit(instance, **kwargs):
|
||||||
"""
|
"""
|
||||||
|
@ -1,9 +1,12 @@
|
|||||||
from django.db.models.signals import post_save, pre_delete
|
from django.db.models.signals import post_save, pre_delete
|
||||||
from django.dispatch import receiver
|
from django.dispatch import receiver
|
||||||
|
|
||||||
|
from extras.signals import disable_for_loaddata
|
||||||
|
|
||||||
from .models import Cable, Device, VirtualChassis
|
from .models import Cable, Device, VirtualChassis
|
||||||
|
|
||||||
|
|
||||||
|
@disable_for_loaddata
|
||||||
@receiver(post_save, sender=VirtualChassis)
|
@receiver(post_save, sender=VirtualChassis)
|
||||||
def assign_virtualchassis_master(instance, created, **kwargs):
|
def assign_virtualchassis_master(instance, created, **kwargs):
|
||||||
"""
|
"""
|
||||||
@ -17,6 +20,7 @@ def assign_virtualchassis_master(instance, created, **kwargs):
|
|||||||
device.save()
|
device.save()
|
||||||
|
|
||||||
|
|
||||||
|
@disable_for_loaddata
|
||||||
@receiver(pre_delete, sender=VirtualChassis)
|
@receiver(pre_delete, sender=VirtualChassis)
|
||||||
def clear_virtualchassis_members(instance, **kwargs):
|
def clear_virtualchassis_members(instance, **kwargs):
|
||||||
"""
|
"""
|
||||||
@ -29,6 +33,7 @@ def clear_virtualchassis_members(instance, **kwargs):
|
|||||||
device.save()
|
device.save()
|
||||||
|
|
||||||
|
|
||||||
|
@disable_for_loaddata
|
||||||
@receiver(post_save, sender=Cable)
|
@receiver(post_save, sender=Cable)
|
||||||
def update_connected_endpoints(instance, **kwargs):
|
def update_connected_endpoints(instance, **kwargs):
|
||||||
"""
|
"""
|
||||||
@ -54,6 +59,7 @@ def update_connected_endpoints(instance, **kwargs):
|
|||||||
endpoint_b.save()
|
endpoint_b.save()
|
||||||
|
|
||||||
|
|
||||||
|
@disable_for_loaddata
|
||||||
@receiver(pre_delete, sender=Cable)
|
@receiver(pre_delete, sender=Cable)
|
||||||
def nullify_connected_endpoints(instance, **kwargs):
|
def nullify_connected_endpoints(instance, **kwargs):
|
||||||
"""
|
"""
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
from cacheops.signals import cache_invalidated, cache_read
|
from cacheops.signals import cache_invalidated, cache_read
|
||||||
from django.dispatch import Signal
|
from django.dispatch import Signal
|
||||||
from prometheus_client import Counter
|
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')
|
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):
|
def cache_read_collector(sender, func, hit, **kwargs):
|
||||||
if hit:
|
if hit:
|
||||||
cacheops_cache_hit.inc()
|
cacheops_cache_hit.inc()
|
||||||
|
Loading…
Reference in New Issue
Block a user