Skip to content
Snippets Groups Projects
Commit ecb845b3 authored by JORGE SASIAIN's avatar JORGE SASIAIN Committed by Neda Moeini
Browse files

NAT-244: raise NotFoundError when device/interface not found

parent d7acdd0f
No related branches found
No related tags found
1 merge request!94Feature/Netbox integration terminate ip trunk
...@@ -67,8 +67,7 @@ class NetboxClient: ...@@ -67,8 +67,7 @@ class NetboxClient:
return self.netbox.dcim.devices.get(name=device_name) return self.netbox.dcim.devices.get(name=device_name)
def get_interfaces_by_device(self, device_name: str, speed: str) -> list[Interfaces]: 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) device = self.get_device_by_name(device_name)
return list( return list(
self.netbox.dcim.interfaces.filter(device_id=device.id, enabled=False, mark_connected=False, speed=speed) self.netbox.dcim.interfaces.filter(device_id=device.id, enabled=False, mark_connected=False, speed=speed)
...@@ -84,6 +83,7 @@ class NetboxClient: ...@@ -84,6 +83,7 @@ class NetboxClient:
Returns the new interface object as dict. Returns the new interface object as dict.
""" """
device = self.get_device_by_name(device_name) device = self.get_device_by_name(device_name)
return self.netbox.dcim.interfaces.create( return self.netbox.dcim.interfaces.create(
name=iface_name, name=iface_name,
type=type, type=type,
...@@ -228,6 +228,7 @@ class NetboxClient: ...@@ -228,6 +228,7 @@ class NetboxClient:
def allocate_interface(self, device_name: str, iface_name: str) -> Interfaces: def allocate_interface(self, device_name: str, iface_name: str) -> Interfaces:
"""Allocate an interface by marking it as connected.""" """Allocate an interface by marking it as connected."""
# First get interface from device
device = self.get_device_by_name(device_name) device = self.get_device_by_name(device_name)
interface = self.netbox.dcim.interfaces.get(device_id=device.id, name=iface_name) interface = self.netbox.dcim.interfaces.get(device_id=device.id, name=iface_name)
...@@ -248,6 +249,7 @@ class NetboxClient: ...@@ -248,6 +249,7 @@ class NetboxClient:
def free_interface(self, device_name: str, iface_name: str) -> Interfaces: def free_interface(self, device_name: str, iface_name: str) -> Interfaces:
"""Free interface by marking disconnect and disable it.""" """Free interface by marking disconnect and disable it."""
# First get interface from device
device = self.get_device_by_name(device_name) device = self.get_device_by_name(device_name)
interface = self.netbox.dcim.interfaces.get(device_id=device.id, name=iface_name) interface = self.netbox.dcim.interfaces.get(device_id=device.id, name=iface_name)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment