diff --git a/inventory_provider/gap.py b/inventory_provider/gap.py index bd91ea5f1c5d455979cada418a1544321d51f489..b4333fa9f3cf8d021dbbd033d61aca1533df815f 100644 --- a/inventory_provider/gap.py +++ b/inventory_provider/gap.py @@ -1,7 +1,9 @@ import logging +import time import requests from flask import current_app +import concurrent.futures logger = logging.getLogger(__name__) @@ -110,14 +112,16 @@ def load_routers_from_orchestrator() -> dict: """ routers = {} response = make_request(body={'query': query}) - + print(time.time()) try: devices = response['data']['subscriptions']['page'] except (TypeError, KeyError): devices = [] - for device in devices: - router_info = extract_router_info(device) - if router_info is not None: - routers[router_info['fqdn']] = router_info['vendor'] + with concurrent.futures.ThreadPoolExecutor() as executor: + futures = [executor.submit(extract_router_info, device) for device in devices] + for future in concurrent.futures.as_completed(futures): + router_info = future.result() + if router_info is not None: + routers[router_info['fqdn']] = router_info['vendor'] return routers