diff --git a/brian_dashboard_manager/templating/helpers.py b/brian_dashboard_manager/templating/helpers.py index 649179452a6de94805496aa2f00a9eda9d396fd0..78dfa48bce2ab516a6aeb167223ddbcdcded58f2 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()]