diff --git a/brian_dashboard_manager/grafana/provision.py b/brian_dashboard_manager/grafana/provision.py index 5d9fae1a559455c706ba4bdb24b3b29f4f64b0e2..bf48ce0b6913aae0f77e1263cb655e978ce5c381 100644 --- a/brian_dashboard_manager/grafana/provision.py +++ b/brian_dashboard_manager/grafana/provision.py @@ -57,6 +57,11 @@ DASHBOARDS = { 'folder_name': 'NREN Access', 'interfaces': [] }, + 'EAP': { + 'tag': ['eap'], + 'folder_name': 'EAP', + 'interfaces': [] + }, 'RE_PEER': { 'tag': 'RE_PEER', 'folder_name': 'RE Peer', @@ -228,16 +233,21 @@ def provision_folder(token_request, folder_name, dash, services, is_nren_legacy = folder_name == "NREN Access LEGACY" is_nren = folder_name == "NREN Access" + is_eap = folder_name == "EAP" # POL1-430 is_re_peer = folder_name == "RE Peer" is_service = 'service_type' in dash - has_aggregate_panels = is_nren or is_nren_legacy or is_re_peer or is_service + has_aggregate_panels = is_nren or is_nren_legacy or is_eap or is_re_peer or is_service if is_nren_legacy: data = get_nren_interface_data_old(interfaces) dash_data = get_nren_dashboard_data(data, ds_name, tag) elif is_nren: - data = get_nren_interface_data( - services, interfaces, excluded_dashboards) + data = {k: v for k, v in get_nren_interface_data( + services, interfaces, excluded_dashboards).items() if 'EAP' not in v['TAGS']} + dash_data = get_nren_dashboard_data(data, ds_name, tag) + elif is_eap: + data = {k: v for k, v in get_nren_interface_data( + services, interfaces, excluded_dashboards).items() if 'EAP' in v['TAGS']} dash_data = get_nren_dashboard_data(data, ds_name, tag) elif is_re_peer: data = get_re_peer_interface_data(interfaces) diff --git a/brian_dashboard_manager/templating/helpers.py b/brian_dashboard_manager/templating/helpers.py index a5aa9e9ed6d8058af115767aaa4144e041a25b8c..e49063c8244fc014cad4a747e6b572f2908ee098 100644 --- a/brian_dashboard_manager/templating/helpers.py +++ b/brian_dashboard_manager/templating/helpers.py @@ -251,7 +251,8 @@ def get_nren_interface_data(services, interfaces, excluded_dashboards): dashboard = result.setdefault(customer, { 'AGGREGATES': [], 'SERVICES': [], - 'PHYSICAL': [] + 'PHYSICAL': [], + 'TAGS': set() }) for service in services: @@ -331,7 +332,8 @@ def get_nren_interface_data(services, interfaces, excluded_dashboards): dashboard = result.get(dashboard_name, { 'AGGREGATES': [], 'SERVICES': [], - 'PHYSICAL': [] + 'PHYSICAL': [], + 'TAGS': set() }) _covered_by_service = _check_in_aggregate(router, interface_name) @@ -357,6 +359,8 @@ def get_nren_interface_data(services, interfaces, excluded_dashboards): 'hostname': host, 'interface': interface_name }) + for tag in interface.get('dashboards', []): + dashboard['TAGS'].add(tag) result[dashboard_name] = dashboard