Skip to content
Snippets Groups Projects

Aggregate Dashboard Service Filtering

Closed Sam Roberts requested to merge feature/pol1-855-further-EAP-tweaks into develop
3 files
+ 44
9
Compare changes
  • Side-by-side
  • Inline
Files
3
@@ -194,6 +194,7 @@ AGG_DASHBOARDS = {
@@ -194,6 +194,7 @@ AGG_DASHBOARDS = {
'EAP': {
'EAP': {
'tag': 'eap',
'tag': 'eap',
'dashboard_name': 'EAP Aggregate',
'dashboard_name': 'EAP Aggregate',
 
'service_prefix': 'GA',
'interfaces': []
'interfaces': []
}
}
}
}
@@ -289,7 +290,7 @@ def provision_folder(thread_executor: ThreadPoolExecutor, token_request, folder_
@@ -289,7 +290,7 @@ def provision_folder(thread_executor: ThreadPoolExecutor, token_request, folder_
def provision_aggregate(token_request, folder,
def provision_aggregate(token_request, folder,
dash, ds_name, folder_dashboards_by_name):
dash, services, ds_name, folder_dashboards_by_name):
"""
"""
Function to provision an aggregate dashboard within a folder.
Function to provision an aggregate dashboard within a folder.
@@ -297,6 +298,7 @@ def provision_aggregate(token_request, folder,
@@ -297,6 +298,7 @@ def provision_aggregate(token_request, folder,
:param folder: the folder to provision dashboards in
:param folder: the folder to provision dashboards in
:param dash: the dashboards to provision, with interface data to generate
:param dash: the dashboards to provision, with interface data to generate
the dashboards from
the dashboards from
 
:param services: service data from reporting provider
:param ds_name: the name of the datasource to query in the dashboard panels
:param ds_name: the name of the datasource to query in the dashboard panels
:return: dashboard definition for the created dashboard
:return: dashboard definition for the created dashboard
@@ -306,7 +308,8 @@ def provision_aggregate(token_request, folder,
@@ -306,7 +308,8 @@ def provision_aggregate(token_request, folder,
tag = dash['tag']
tag = dash['tag']
interfaces = dash['interfaces']
interfaces = dash['interfaces']
group_field = dash.get('group_by', 'remote')
group_field = dash.get('group_by', 'remote')
data = get_aggregate_interface_data(interfaces, name, group_field)
service_prefix = dash.get('service_prefix', None)
 
data = get_aggregate_interface_data(services, interfaces, name, group_field, service_prefix)
dashboard = get_aggregate_dashboard_data(
dashboard = get_aggregate_dashboard_data(
f'Aggregate - {name}', data, ds_name, tag)
f'Aggregate - {name}', data, ds_name, tag)
@@ -574,7 +577,7 @@ def _provision_eumetsat_multicast(thread_executor: ThreadPoolExecutor, config, o
@@ -574,7 +577,7 @@ def _provision_eumetsat_multicast(thread_executor: ThreadPoolExecutor, config, o
yield from provisioned
yield from provisioned
def _provision_aggregates(thread_executor: ThreadPoolExecutor, config, org_config, ds_name, token):
def _provision_aggregates(thread_executor: ThreadPoolExecutor, config, org_config, ds_name, token, services):
"""
"""
This function is used to provision Aggregate dashboards,
This function is used to provision Aggregate dashboards,
overwriting existing ones.
overwriting existing ones.
@@ -584,6 +587,7 @@ def _provision_aggregates(thread_executor: ThreadPoolExecutor, config, org_confi
@@ -584,6 +587,7 @@ def _provision_aggregates(thread_executor: ThreadPoolExecutor, config, org_confi
:param org_config: the organisation config
:param org_config: the organisation config
:param ds_name: the name of the datasource to query in the dashboards
:param ds_name: the name of the datasource to query in the dashboards
:param token: a token_request object
:param token: a token_request object
 
:param services: service data from reporting provider
:return: generator of futures of dashboards that were created
:return: generator of futures of dashboards that were created
"""
"""
@@ -609,7 +613,8 @@ def _provision_aggregates(thread_executor: ThreadPoolExecutor, config, org_confi
@@ -609,7 +613,8 @@ def _provision_aggregates(thread_executor: ThreadPoolExecutor, config, org_confi
logger.info(f'Provisioning {org_config["name"]}/Aggregate {dash["dashboard_name"]} dashboards')
logger.info(f'Provisioning {org_config["name"]}/Aggregate {dash["dashboard_name"]} dashboards')
provisioned.append(
provisioned.append(
thread_executor.submit(provision_aggregate, token, agg_folder, dash, ds_name, folder_dashboards_by_name)
thread_executor.submit(provision_aggregate, token, agg_folder, dash, services, ds_name,
 
folder_dashboards_by_name)
)
)
yield from provisioned
yield from provisioned
@@ -813,7 +818,7 @@ def _provision_org(config, org, org_config, interfaces, services, regions):
@@ -813,7 +818,7 @@ def _provision_org(config, org, org_config, interfaces, services, regions):
_provision_gws_indirect(*args),
_provision_gws_indirect(*args),
_provision_gws_direct(*args),
_provision_gws_direct(*args),
_provision_eumetsat_multicast(*args),
_provision_eumetsat_multicast(*args),
_provision_aggregates(*args),
_provision_aggregates(*args, services),
_provision_service_dashboards(*args),
_provision_service_dashboards(*args),
_provision_static_dashboards(*args),
_provision_static_dashboards(*args),
_get_ignored_dashboards(*args)
_get_ignored_dashboards(*args)
Loading