From ecb845b3ad3ebb036582853874028ecd8b63263c Mon Sep 17 00:00:00 2001
From: Jorge Sasiain <jorge.sasiain@ehu.eus>
Date: Wed, 4 Oct 2023 08:33:06 +0000
Subject: [PATCH] NAT-244: raise NotFoundError when device/interface not found

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

diff --git a/gso/services/netbox_client.py b/gso/services/netbox_client.py
index 178f6996..e1c3b84a 100644
--- a/gso/services/netbox_client.py
+++ b/gso/services/netbox_client.py
@@ -67,8 +67,7 @@ class NetboxClient:
         return self.netbox.dcim.devices.get(name=device_name)
 
     def get_interfaces_by_device(self, device_name: str, speed: str) -> list[Interfaces]:
-        """Get all interfaces of a device by name and speed."""
-
+        """Get all interfaces of a device by name and speed that are free and not allocated."""
         device = self.get_device_by_name(device_name)
         return list(
             self.netbox.dcim.interfaces.filter(device_id=device.id, enabled=False, mark_connected=False, speed=speed)
@@ -84,6 +83,7 @@ class NetboxClient:
         Returns the new interface object as dict.
         """
         device = self.get_device_by_name(device_name)
+
         return self.netbox.dcim.interfaces.create(
             name=iface_name,
             type=type,
@@ -228,6 +228,7 @@ class NetboxClient:
     def allocate_interface(self, device_name: str, iface_name: str) -> Interfaces:
         """Allocate an interface by marking it as connected."""
 
+        # First get interface from device
         device = self.get_device_by_name(device_name)
         interface = self.netbox.dcim.interfaces.get(device_id=device.id, name=iface_name)
 
@@ -248,6 +249,7 @@ class NetboxClient:
     def free_interface(self, device_name: str, iface_name: str) -> Interfaces:
         """Free interface by marking disconnect and disable it."""
 
+        # First get interface from device
         device = self.get_device_by_name(device_name)
         interface = self.netbox.dcim.interfaces.get(device_id=device.id, name=iface_name)
 
-- 
GitLab