diff --git a/gso/services/netbox_client.py b/gso/services/netbox_client.py index 601787e12ea72b600cefd0fd9c8512f3d813ce65..efbf9d10977da9f51b4c5bb20828ffb12de3dd04 100644 --- a/gso/services/netbox_client.py +++ b/gso/services/netbox_client.py @@ -74,19 +74,22 @@ def get_all_devices(nbclient): # We need sometimes a specific device # for creating devices def get_device_by_name(nbclient, device_name): - return nbclient.dcim.devices.get(name=device_name) + device = nbclient.dcim.devices.get(name=device_name) + + if device is None: + raise ValueError(f"Device: {device_name} not found") + else: + return device # get all interfaces for a device def get_interfaces_by_device(nbclient, device_name): device = get_device_by_name(nbclient, device_name) - if device is None: - raise ValueError(f"Device: {device_name} not found") - return list(nbclient.dcim.interfaces.filter(device_id=device.id, - enabled=False, - mark_connected=False, + # enabled=False, + # mark_connected=False, + custom_fields={"states": "UNUSED"} )) @@ -105,13 +108,11 @@ def create_interface(nbclient, """ device = get_device_by_name(nbclient, device_name) - if device is None: - raise ValueError(f"Device: {device_name} not found") - new_iface = nbclient.dcim.interfaces.create(name=iface_name, type=type, enabled=False, mark_connected=False, + custom_fields={"states": "RESERVED"}, device=device.id) return dict(new_iface)