From acbb1a604e57e3f99ef489dcfd4aee7e04685877 Mon Sep 17 00:00:00 2001 From: Fahrudin Halilovic <fahrudin.halilovic@ess.eu> Date: Tue, 24 Sep 2024 10:29:25 +0200 Subject: [PATCH] refactoring --- netbox_awx_plugin/__init__.py | 2 +- netbox_awx_plugin/signals.py | 34 ++++++++-------------------- netbox_awx_plugin/synchronization.py | 2 +- 3 files changed, 12 insertions(+), 26 deletions(-) diff --git a/netbox_awx_plugin/__init__.py b/netbox_awx_plugin/__init__.py index 716e465..2abb51b 100644 --- a/netbox_awx_plugin/__init__.py +++ b/netbox_awx_plugin/__init__.py @@ -12,7 +12,7 @@ class AWXConfig(PluginConfig): name = "netbox_awx_plugin" verbose_name = "NetBox AWX Plugin" description = "NetBox plugin for AWX integration." - version = "version" + version = __version__ # Ensure the version is tied to the correct variable base_url = "netbox_awx_plugin" def ready(self): diff --git a/netbox_awx_plugin/signals.py b/netbox_awx_plugin/signals.py index 7d0546c..a4d0fd3 100644 --- a/netbox_awx_plugin/signals.py +++ b/netbox_awx_plugin/signals.py @@ -38,21 +38,17 @@ def process_inventory_task(task_name, sender, instance): ### Signal Handlers for Group-Related Models ### -@receiver([post_save], sender=Site) -@receiver([post_save], sender=DeviceRole) -@receiver([post_save], sender=DeviceType) -@receiver([post_save], sender=Prefix) -def handle_group_post_save(sender, instance, created, **kwargs): +@receiver(post_save, sender=[Site, DeviceRole, DeviceType, Prefix, Tag]) +def handle_group_post_save(sender, instance, **kwargs): """ - Handles post-save events for group-related models like Site, DeviceRole, etc. - This synchronizes AWX groups when the object is saved. + Handles post-save events for group-related models. + Synchronizes AWX groups when the object is saved. """ process_inventory_task("sync_group", sender, instance) -@receiver([pre_save], sender=Site) -@receiver([pre_save], sender=DeviceRole) -@receiver([pre_save], sender=DeviceType) -@receiver([pre_save], sender=Prefix) + + +@receiver(pre_save, sender=[Site, DeviceRole, DeviceType, Prefix]) def handle_group_pre_save(sender, instance, **kwargs): """ Handles pre-save events for group-related models to store the original instance for comparison. @@ -62,10 +58,8 @@ def handle_group_pre_save(sender, instance, **kwargs): logger.debug(f"Original object stored for {sender.__name__} instance {instance.pk}") -@receiver([post_delete], sender=Site) -@receiver([post_delete], sender=DeviceRole) -@receiver([post_delete], sender=DeviceType) -@receiver([post_delete], sender=Prefix) + +@receiver(post_save, sender=[Site, DeviceRole, DeviceType, Prefix]) def handle_group_post_delete(sender, instance, **kwargs): """ Handles post-delete events for group-related models to remove AWX groups when objects are deleted. @@ -73,8 +67,7 @@ def handle_group_post_delete(sender, instance, **kwargs): process_inventory_task("delete_group", sender, instance) ### Signal Handlers for Device and VirtualMachine ### -@receiver([post_save], sender=Device) -@receiver([post_save], sender=VirtualMachine) +@receiver(post_save, sender=[Device, VirtualMachine]) def handle_device_post_save(sender, instance, **kwargs): """ Handles post-save events for Devices and Virtual Machines. @@ -98,13 +91,6 @@ def handle_interface_post_save(sender, instance, **kwargs): logger.debug(f"Interface {instance.pk} saved, delegating sync to associated Device.") handle_device_post_save(Device, instance.device, **kwargs) -### Tag Synchronization ### -@receiver(post_save, sender=Tag) -def handle_tag_post_save(sender, instance, created, **kwargs): - """ - Handles post-save events for Tags. Synchronizes AWX groups when a Tag is saved. - """ - process_inventory_task("sync_group", sender, instance) @receiver(m2m_changed, sender=Device.tags.through) @receiver(m2m_changed, sender=VirtualMachine.tags.through) diff --git a/netbox_awx_plugin/synchronization.py b/netbox_awx_plugin/synchronization.py index f5fd96f..17a72a0 100644 --- a/netbox_awx_plugin/synchronization.py +++ b/netbox_awx_plugin/synchronization.py @@ -163,7 +163,7 @@ serializers = { def sync_host(inventory, sender, instance): serializer = serializers[sender](instance) - host = inventory.get_host(serializer.data["name"]) + host = inventory.get_host(serializer.data["name"]) if host is None: # If the host doesn't exist, create it. inventory.create_host(serializer.data) -- GitLab