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