From 29f8a91bb09ec2340461e06817d0cd38073fc012 Mon Sep 17 00:00:00 2001 From: Bjarke Madsen <bjarke@nordu.net> Date: Tue, 3 Jun 2025 10:40:40 +0200 Subject: [PATCH] Fix service-based aggregates for RE peers --- brian_dashboard_manager/templating/helpers.py | 23 +++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/brian_dashboard_manager/templating/helpers.py b/brian_dashboard_manager/templating/helpers.py index 6491794..78dfa48 100644 --- a/brian_dashboard_manager/templating/helpers.py +++ b/brian_dashboard_manager/templating/helpers.py @@ -458,7 +458,8 @@ def get_service_data(service_type, services, interfaces, excluded_dashboards): for customer, services in customers.items(): dashboard = result.setdefault(customer, { - 'SERVICES': [] + 'SERVICES': [], + 'AGGREGATES': [], }) for service in services: @@ -469,6 +470,8 @@ def get_service_data(service_type, services, interfaces, excluded_dashboards): measurement = 'scid_rates' is_lambda = service_type.lower() in ['geant managed wavelength service', 'geant lambda'] + is_re_peer = service_type.lower() in ['ip peering - r&e'] + if len(_interfaces) == 0: continue @@ -476,19 +479,31 @@ def get_service_data(service_type, services, interfaces, excluded_dashboards): if 'interface' in _interfaces[0]: if_name = _interfaces[0].get('interface') router = _interfaces[0].get('hostname') + addresses = _interfaces[0].get('addresses', []) + has_v6_interface = any(':' in addr for addr in addresses) else: if_name = _interfaces[0].get('port') router = _interfaces[0].get('equipment') + has_v6_interface = False + router = router.replace('.geant.net', '') title = f'{router} - {{}} - {if_name} - {name} ({sid})' - dashboard['SERVICES'].append({ + dash_info = { 'measurement': measurement, 'title': title, 'scid': scid, 'sort': (sid[:2], name), - 'is_lambda': is_lambda - }) + 'is_lambda': is_lambda, + 'has_v6': has_v6_interface + } + + dashboard['SERVICES'].append(dash_info) + + if is_re_peer: + agg_data = dash_info.copy() + agg_data['alias'] = title.replace(' - {}', '') + dashboard['AGGREGATES'].append(agg_data) for customer in list(result.keys()): lengths = [len(val) for val in result[customer].values()] -- GitLab