diff --git a/inventory_provider/routes/poller.py b/inventory_provider/routes/poller.py index 4de3d461ecd74470ebe57394e6951c5269aa6f5d..0838f0bf32bd98e19d57c7301416be2d5e3982b4 100644 --- a/inventory_provider/routes/poller.py +++ b/inventory_provider/routes/poller.py @@ -914,6 +914,13 @@ def interfaces(hostname=None): return Response(result, mimetype="application/json") +def get_router_vendor_by_fqdn(router: str) -> str | None: + """Gets the vendor of a router by its FQDN from cache.""" + current_redis = common.get_current_redis() + netdash_equipment = json.loads(current_redis.get('netdash').decode('utf-8')) + return netdash_equipment.get(router) + + def load_error_report_interfaces( config, hostname=None, use_next_redis=False ): @@ -932,17 +939,12 @@ def load_error_report_interfaces( ) ) - def get_vendor(router: str) -> str | None: - current_redis = common.get_current_redis() - netdash_equipment = json.loads(current_redis.get('netdash').decode('utf-8')) - return netdash_equipment.get(router) - def transform_interface(interface: dict) -> dict: return { "router": interface["router"], "name": interface["name"], "description": interface["description"], - "vendor": get_vendor(interface["router"]), + "vendor": get_router_vendor_by_fqdn(interface["router"]), } return sorted( diff --git a/test/test_worker.py b/test/test_worker.py index d8628ff40da93f2d95d813e38ed78ff84fb30e39..481d33b34593aefd6ff232b20ed9c95d5e812fb9 100644 --- a/test/test_worker.py +++ b/test/test_worker.py @@ -1017,7 +1017,12 @@ def test_populate_error_report_interfaces_cache(mocker, data_config, mocked_redi mocker.patch( 'inventory_provider.tasks.worker.InventoryTask.config' ) - mocker.patch('inventory_provider.routes.poller.load_error_report_interfaces.get_vendor', return_value='juniper') + + def mock_get_router_vendor_by_fqdn(fqdn): + return 'nokia' if fqdn == 'rt0.geant.net' else 'juniper' + + mocker.patch('inventory_provider.routes.poller.get_router_vendor_by_fqdn', + side_effect=mock_get_router_vendor_by_fqdn) exp_router_a_interfaces = [ { "router": "router_a.geant.net",