diff --git a/inventory_provider/routes/poller.py b/inventory_provider/routes/poller.py index 0838f0bf32bd98e19d57c7301416be2d5e3982b4..0bbbc3b8d98a8194576507c5a71a872705bfdc86 100644 --- a/inventory_provider/routes/poller.py +++ b/inventory_provider/routes/poller.py @@ -914,17 +914,17 @@ 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.""" +def get_netdash_equipment() -> dict[str, str]: + """Get the netdash equipment mapping from redis.""" current_redis = common.get_current_redis() - netdash_equipment = json.loads(current_redis.get('netdash').decode('utf-8')) - return netdash_equipment.get(router) + return json.loads(current_redis.get('netdash').decode('utf-8')) def load_error_report_interfaces( config, hostname=None, use_next_redis=False ): interfaces = _load_interfaces(config, hostname, use_next_redis=use_next_redis) + netdash_equipment = get_netdash_equipment() def filter_interface(interface: dict): return all( @@ -944,7 +944,7 @@ def load_error_report_interfaces( "router": interface["router"], "name": interface["name"], "description": interface["description"], - "vendor": get_router_vendor_by_fqdn(interface["router"]), + "vendor": netdash_equipment.get(interface["router"]), } return sorted( diff --git a/test/test_worker.py b/test/test_worker.py index 481d33b34593aefd6ff232b20ed9c95d5e812fb9..0cad8a59947a86c0a438629d4bfff52741f57a57 100644 --- a/test/test_worker.py +++ b/test/test_worker.py @@ -1018,11 +1018,12 @@ def test_populate_error_report_interfaces_cache(mocker, data_config, mocked_redi 'inventory_provider.tasks.worker.InventoryTask.config' ) - def mock_get_router_vendor_by_fqdn(fqdn): - return 'nokia' if fqdn == 'rt0.geant.net' else 'juniper' + netdash_equipment = { + "router_a.geant.net": "juniper", + "rt0.geant.net": "nokia" + } - mocker.patch('inventory_provider.routes.poller.get_router_vendor_by_fqdn', - side_effect=mock_get_router_vendor_by_fqdn) + mocker.patch('inventory_provider.routes.poller.get_netdash_equipment', return_value=netdash_equipment) exp_router_a_interfaces = [ { "router": "router_a.geant.net",