diff --git a/brian_dashboard_manager/grafana/provision.py b/brian_dashboard_manager/grafana/provision.py index ac7b1beaf3bf13d862fc11a1bff4baffdfcb6ec8..55faf80ed1dd47562b06d1b44667f3379b80d8fb 100644 --- a/brian_dashboard_manager/grafana/provision.py +++ b/brian_dashboard_manager/grafana/provision.py @@ -195,6 +195,11 @@ AGG_DASHBOARDS = { 'dashboard_name': 'ANA', 'interfaces': [] }, + 'EAP': { + 'tag': 'eap', + 'dashboard_name': 'EAP Aggregate', + 'interfaces': [] + } } NREN_CATEGORIES = { @@ -470,6 +475,17 @@ def _provision_interfaces(config, org_config, ds_name, token): ifaces = AGG_DASHBOARDS[dash_name]['interfaces'] ifaces.append(iface) + # aggregate dashboards based on dashboards_info + # there is no way for inventory provider to identify an interface as + # belonging to an EAP NREN at the level 'dashboards' is set + # (based on description and without access to service data) + # so we have to do this as an extra check on 'dashboards_info' + for dashboard in iface['dashboards_info']: + dash_name = dashboard['name'] + if dash_name in AGG_DASHBOARDS: + ifaces = AGG_DASHBOARDS[dash_name]['interfaces'] + ifaces.append(iface) + # provision dashboards and their folders with ThreadPoolExecutor(max_workers=MAX_WORKERS) as executor: provisioned = []