diff --git a/brian_dashboard_manager/grafana/provision.py b/brian_dashboard_manager/grafana/provision.py index 5f56a4a7b5809adcb5b228edd8d7378c25891cfd..69da36bf491509215fec9a4a55a6b3d7c281f86f 100644 --- a/brian_dashboard_manager/grafana/provision.py +++ b/brian_dashboard_manager/grafana/provision.py @@ -9,7 +9,7 @@ from concurrent.futures import Future from concurrent.futures import ThreadPoolExecutor from brian_dashboard_manager.config import DEFAULT_ORGANIZATIONS from brian_dashboard_manager.grafana.utils.request import AdminRequest, \ - TokenRequest + TokenRequest, MAX_THREADS from brian_dashboard_manager.services.api import fetch_services @@ -41,7 +41,6 @@ from brian_dashboard_manager.templating.render import ( render_simple_dashboard, ) -MAX_THREADS = 16 logger = logging.getLogger(__name__) DASHBOARDS = { @@ -810,7 +809,9 @@ def _provision_org(config, org, org_config): with ThreadPoolExecutor(max_workers=MAX_THREADS) as thread_executor: args = (thread_executor, config, org_config, ds_name, token_request) - managed_dashboards = itertools.chain( + + # call to list is needed to queue up the futures + managed_dashboards = list(itertools.chain( _provision_interfaces(*args), _provision_gws_indirect(*args), _provision_gws_direct(*args), @@ -819,7 +820,7 @@ def _provision_org(config, org, org_config): _provision_service_dashboards(*args), _provision_static_dashboards(*args), _get_ignored_dashboards(*args) - ) + )) managed_dashboard_uids = {} for dashboard in managed_dashboards: diff --git a/brian_dashboard_manager/grafana/utils/request.py b/brian_dashboard_manager/grafana/utils/request.py index 8baa5e95199a5843df0e26c996c16c9b522d4604..c126690c0bd83725df4c8bf3a96d52963fb1fc57 100644 --- a/brian_dashboard_manager/grafana/utils/request.py +++ b/brian_dashboard_manager/grafana/utils/request.py @@ -4,13 +4,15 @@ from requests.adapters import HTTPAdapter logger = logging.getLogger(__name__) +MAX_THREADS = 16 + class Request(requests.Session): def __init__(self, url, headers=None): super().__init__() # allow using up to 16 connections - adapter = HTTPAdapter(pool_maxsize=16) + adapter = HTTPAdapter(pool_maxsize=MAX_THREADS) self.mount(url, adapter) self.headers.update({