From f5e526e0bd062f45ec181d8158f19974dcd0381e Mon Sep 17 00:00:00 2001 From: Robert Latta <robert.latta@geant.org> Date: Fri, 16 Feb 2024 11:08:32 +0000 Subject: [PATCH] added retrieval of router vendor --- inventory_provider/db/ims.py | 1 + inventory_provider/db/ims_data.py | 14 ++++++++++++++ 2 files changed, 15 insertions(+) diff --git a/inventory_provider/db/ims.py b/inventory_provider/db/ims.py index b27f6773..6932166b 100644 --- a/inventory_provider/db/ims.py +++ b/inventory_provider/db/ims.py @@ -61,6 +61,7 @@ CUSTOMER_RELATED_CONTACT_PROPERTIES = { } # http://149.210.162.190:81/ImsVersions/4.19.9/html/a8dc6266-d934-8162-4a55-9e1648187f2c.htm # noqa EQUIP_DEF_PROPERTIES = { + 'Vendor': 8, 'Nodes': 4096 } # http://149.210.162.190:81/ImsVersions/20.1/html/6fd3a968-26e2-e40f-e3cd-c99afa34c3e6.htm diff --git a/inventory_provider/db/ims_data.py b/inventory_provider/db/ims_data.py index 9763f70e..43f65cc3 100644 --- a/inventory_provider/db/ims_data.py +++ b/inventory_provider/db/ims_data.py @@ -633,3 +633,17 @@ def lookup_geant_nodes(ds: IMS): 'Node', 'customer.Name == "GEANT"', ims.EQUIP_DEF_PROPERTIES['Nodes'])) + + +@log_entry_and_exit +def get_router_vendors(ds: IMS): + ed_nav_properties = [ + ims.EQUIP_DEF_PROPERTIES['Nodes'], + ims.EQUIP_DEF_PROPERTIES['Vendor'] + ] + for ed in ds.get_filtered_entities( + 'equipmentdefinition', + 'equipmentkind == ROUTER', + ed_nav_properties): + for r in ed.get('nodes', []): + yield r['name'], ed.get('vendor', {}).get('name', None) -- GitLab