From 5b6badfb18e02871ad6d057b8bd5913028f0a9c4 Mon Sep 17 00:00:00 2001 From: Erik Reid <erik.reid@geant.org> Date: Tue, 1 Feb 2022 18:14:13 +0100 Subject: [PATCH] create thread on-demand connections --- inventory_provider/tasks/worker.py | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/inventory_provider/tasks/worker.py b/inventory_provider/tasks/worker.py index 52c2807b..b866a70a 100644 --- a/inventory_provider/tasks/worker.py +++ b/inventory_provider/tasks/worker.py @@ -711,11 +711,9 @@ def ims_task(self, use_current=False): def extract_ims_data(): c = InventoryTask.config["ims"] - ds1 = IMS(c['api'], c['username'], c['password']) - ds2 = IMS(c['api'], c['username'], c['password']) - ds3 = IMS(c['api'], c['username'], c['password']) - ds4 = IMS(c['api'], c['username'], c['password']) - ds5 = IMS(c['api'], c['username'], c['password']) + + def _ds() -> IMS: + return IMS(c['api'], c['username'], c['password']) locations = {} lg_routers = [] @@ -729,26 +727,26 @@ def extract_ims_data(): def _populate_locations(): nonlocal locations - locations = {k: v for k, v in ims_data.get_node_locations(ds1)} + locations = {k: v for k, v in ims_data.get_node_locations(ds=_ds())} def _populate_lg_routers(): nonlocal lg_routers - lg_routers = list(ims_data.lookup_lg_routers(ds5)) + lg_routers = list(ims_data.lookup_lg_routers(ds=_ds())) def _populate_customer_contacts(): nonlocal customer_contacts customer_contacts = \ - {k: v for k, v in ims_data.get_customer_service_emails(ds2)} + {k: v for k, v in ims_data.get_customer_service_emails(ds=_ds())} def _populate_circuit_ids_to_monitor(): nonlocal circuit_ids_to_monitor circuit_ids_to_monitor = \ - list(ims_data.get_monitored_circuit_ids(ds3)) + list(ims_data.get_monitored_circuit_ids(ds=_ds())) def _populate_additional_circuit_customer_ids(): nonlocal additional_circuit_customer_ids additional_circuit_customer_ids = \ - ims_data.get_circuit_related_customer_ids(ds4) + ims_data.get_circuit_related_customer_ids(ds=_ds()) exceptions = {} with concurrent.futures.ThreadPoolExecutor() as executor: @@ -771,18 +769,19 @@ def extract_ims_data(): def _populate_hierarchy(): nonlocal hierarchy - hierarchy = {d['id']: d for d in ims_data.get_circuit_hierarchy(ds1)} + hierarchy = { + d['id']: d for d in ims_data.get_circuit_hierarchy(ds=_ds())} logger.debug("hierarchy complete") def _populate_port_id_details(): nonlocal port_id_details - for x in ims_data.get_port_details(ds2): + for x in ims_data.get_port_details(ds=_ds()): pd = port_id_details[x['port_id']] pd.append(x) logger.debug("Port details complete") def _populate_circuit_info(): - for x in ims_data.get_port_id_services(ds3): + for x in ims_data.get_port_id_services(ds=_ds()): port_id_services[x['port_a_id']].append(x) logger.debug("port circuits complete") -- GitLab