From 20dbf2e231f3c46a6b999f21f4a6f016454081e5 Mon Sep 17 00:00:00 2001 From: Ubuntu <ubuntu@ubuntu-2204.linuxvmimages.local> Date: Fri, 15 Sep 2023 09:03:03 -0400 Subject: [PATCH] NAT-243: added custom fields filter to get interfaces --- gso/services/netbox_client.py | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/gso/services/netbox_client.py b/gso/services/netbox_client.py index 601787e1..efbf9d10 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) -- GitLab