From 921ee88746582e1c76e575e97af900ae6b69e489 Mon Sep 17 00:00:00 2001 From: Erik Reid <erik.reid@geant.org> Date: Thu, 7 Oct 2021 15:12:48 +0200 Subject: [PATCH] added a provisioning stanza for eumetsat multicast --- brian_dashboard_manager/grafana/provision.py | 26 ++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/brian_dashboard_manager/grafana/provision.py b/brian_dashboard_manager/grafana/provision.py index d9a608d..f96acad 100644 --- a/brian_dashboard_manager/grafana/provision.py +++ b/brian_dashboard_manager/grafana/provision.py @@ -24,7 +24,8 @@ from brian_dashboard_manager.grafana.datasource import \ from brian_dashboard_manager.grafana.folder import find_folder, \ delete_folder, get_folders from brian_dashboard_manager.inventory_provider.interfaces import \ - get_gws_direct, get_gws_indirect, get_interfaces + get_gws_direct, get_gws_indirect, get_interfaces, \ + get_eumetsat_multicast_subscriptions from brian_dashboard_manager.templating.helpers import \ get_aggregate_dashboard_data, get_interface_data, \ @@ -33,7 +34,7 @@ from brian_dashboard_manager.templating.helpers import \ from brian_dashboard_manager.templating.gws import generate_gws, \ generate_indirect - +from brian_dashboard_manager.templating.eumetsat import generate_eumetsat_multicast from brian_dashboard_manager.templating.render import render_dashboard logger = logging.getLogger(__name__) @@ -409,6 +410,27 @@ def provision(config): update_dash_list(provisioned) + # fetch EUMETSAT multicast provision related dashboards + logger.info('Provisioning EUMETSAT Multicast dashboards') + folder_name = 'EUMETSAT Multicast' + exclude_eumet_mc = excluded_folders.get(folder_name, False) + if isinstance(exclude_eumet_mc, bool) and exclude_eumet_mc: + # don't provision EUMETSAT Multicast folder + delete_folder(token_request, folder_name) + else: + folder = find_folder(token_request, folder_name) + with ThreadPoolExecutor(max_workers=4) as executor: + subscriptions = get_eumetsat_multicast_subscriptions(config['inventory_provider']) + provisioned = [] + + for dashboard in generate_eumetsat_multicast(subscriptions, ds_name): + rendered = render_dashboard(dashboard) + provisioned.append(executor.submit(create_dashboard, + token_request, + rendered, folder['id'])) + + update_dash_list(provisioned) + exclude_agg = excluded_folders.get('Aggregates', []) if isinstance(exclude_agg, bool) and exclude_agg: -- GitLab