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