diff --git a/brian_dashboard_manager/templating/services.py b/brian_dashboard_manager/templating/services.py new file mode 100644 index 0000000000000000000000000000000000000000..1cad10ca828a83da7c1e9547a289fcdccbb152c5 --- /dev/null +++ b/brian_dashboard_manager/templating/services.py @@ -0,0 +1,35 @@ +from typing import Dict, List +from brian_dashboard_manager.templating.helpers import get_dashboard_data + + +def get_panel_data(services): + result: Dict[str, List[Dict]] = {} + + for service in services: + + customers = service.get('customers') + name = service.get('name') + sid = service.get('sid') + scid = service.get('scid') + + measurement = 'scid_rates' + title = f'{name} ({sid})' + + for customer in customers: + result.setdefault(customer, []).append({ + 'measurement': measurement, + 'title': title, + 'scid': scid, + 'has_v6': False + }) + return result + + +def create_service_panels(services, datasource): + + panel_data = get_panel_data(services) + for dash in get_dashboard_data( + data=panel_data, + datasource=datasource, + tag='SERVICE'): + yield dash diff --git a/brian_dashboard_manager/templating/templates/shared/panel_target.json.j2 b/brian_dashboard_manager/templating/templates/shared/panel_target.json.j2 index c3534c113d8c2da805e9b27b41e5f5a32ec002b7..d4d928108350317601b045a489bc1c5ea3f50cd0 100644 --- a/brian_dashboard_manager/templating/templates/shared/panel_target.json.j2 +++ b/brian_dashboard_manager/templating/templates/shared/panel_target.json.j2 @@ -79,6 +79,13 @@ "operator": "=", "value": "{{ subscription }}" } + {% elif scid %} + { + "condition": null, + "key": "scid", + "operator": "=", + "value": "{{ scid }}" + } {% else %} { "condition": null,