Files
NetBox-VM-Import/netbox_vmware_importer/signals.py
T
2026-07-20 14:24:28 +02:00

26 lines
811 B
Python

from django.db import transaction
from django.db.models.signals import post_save, pre_delete
from django.dispatch import receiver
from .jobs import clear_endpoint_sync_schedule, schedule_endpoint_sync
from .models import VCenterEndpoint
AUTOMATIC_SYNC_FIELDS = {"enabled", "provider", "sync_interval_minutes"}
@receiver(post_save, sender=VCenterEndpoint)
def schedule_vcenter_endpoint_sync(sender, instance, raw=False, update_fields=None, **kwargs):
if raw:
return
if update_fields is not None and not AUTOMATIC_SYNC_FIELDS.intersection(update_fields):
return
transaction.on_commit(lambda: schedule_endpoint_sync(instance))
@receiver(pre_delete, sender=VCenterEndpoint)
def clear_vcenter_endpoint_sync(sender, instance, **kwargs):
clear_endpoint_sync_schedule(instance)