From a559646333fe34e46605001b3715b125f3fff0e6 Mon Sep 17 00:00:00 2001
From: Neda Moeini <neda.moeini@geant.org>
Date: Thu, 4 Apr 2024 11:56:56 +0200
Subject: [PATCH] Updated delete Netbox device functionality to delete the
 device if it exists and don't raise AttributeError.

---
 gso/services/netbox_client.py | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/gso/services/netbox_client.py b/gso/services/netbox_client.py
index 74f56982..3f49a095 100644
--- a/gso/services/netbox_client.py
+++ b/gso/services/netbox_client.py
@@ -125,9 +125,8 @@ class NetboxClient:
     def delete_interface(self, device_name: str, iface_name: str) -> None:
         """Delete an interface from a device by name."""
         interface = self.get_interface_by_name_and_device(iface_name, device_name)
-        if interface:
+        if interface is not None:
             return interface.delete()
-        return None
 
     def create_device_type(self, manufacturer: str, model: str, slug: str) -> DeviceTypes:
         """Create a new device type in Netbox."""
@@ -199,8 +198,11 @@ class NetboxClient:
         return device
 
     def delete_device(self, device_name: str) -> None:
-        """Delete device by name."""
-        self.netbox.dcim.devices.get(name=device_name).delete()
+        """Delete device by name if exists."""
+        try:
+            self.netbox.dcim.devices.get(name=device_name).delete()
+        except AttributeError:
+            pass
 
     def attach_interface_to_lag(
         self,
-- 
GitLab