From c603f52f9ea1256382d43f59b9ef21d52899bd81 Mon Sep 17 00:00:00 2001 From: Bjarke Madsen <bjarke@nordu.net> Date: Tue, 5 Nov 2024 17:26:06 +0100 Subject: [PATCH] reuse data from api calls --- brian_dashboard_manager/grafana/provision.py | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/brian_dashboard_manager/grafana/provision.py b/brian_dashboard_manager/grafana/provision.py index 69da36b..a034dc6 100644 --- a/brian_dashboard_manager/grafana/provision.py +++ b/brian_dashboard_manager/grafana/provision.py @@ -390,7 +390,7 @@ def _interfaces_to_keep(interface, excluded_nrens): return should_keep -def _provision_interfaces(thread_executor: ThreadPoolExecutor, config, org_config, ds_name, token): +def _provision_interfaces(thread_executor: ThreadPoolExecutor, config, org_config, ds_name, token, interfaces, services, regions): """ This function is used to provision most dashboards, overwriting existing ones. @@ -403,10 +403,6 @@ def _provision_interfaces(thread_executor: ThreadPoolExecutor, config, org_confi :return: generator of dashboards that were created """ - interfaces = get_interfaces(config['inventory_provider']) - services = fetch_services(config['reporting_provider']) - regions = get_nren_regions(config['inventory_provider']) - excluded_nrens = org_config['excluded_nrens'] excluded_folders = org_config.get('excluded_folders', {}) @@ -779,7 +775,7 @@ def _provision_orgs(config): return all_orgs -def _provision_org(config, org, org_config): +def _provision_org(config, org, org_config, interfaces, services, regions): try: request = AdminRequest(**config) org_id = org['id'] @@ -812,7 +808,7 @@ def _provision_org(config, org, org_config): # call to list is needed to queue up the futures managed_dashboards = list(itertools.chain( - _provision_interfaces(*args), + _provision_interfaces(*args, interfaces, services, regions), _provision_gws_indirect(*args), _provision_gws_direct(*args), _provision_eumetsat_multicast(*args), @@ -901,9 +897,11 @@ def provision(config): return None orgs = list(filter(lambda t: t[1] is not None, [(org, _find_org_config(org)) for org in all_orgs])) - + interfaces = get_interfaces(config['inventory_provider']) + services = fetch_services(config['reporting_provider']) + regions = get_nren_regions(config['inventory_provider']) for org, org_config in orgs: - _provision_org(config, org, org_config) + _provision_org(config, org, org_config, interfaces, services, regions) logger.info(f'Time to complete: {time.time() - start}') -- GitLab