Skip to content
Snippets Groups Projects
Commit c3ca8e0f authored by Pelle Koster's avatar Pelle Koster
Browse files

paralellize requests to inprov and reporting provider

parent 80d6b2ad
No related tags found
1 merge request!20Use asyncio for provisioning
import asyncio
import dataclasses import dataclasses
import logging import logging
from collections import defaultdict from collections import defaultdict
...@@ -226,17 +227,23 @@ class BrianData: ...@@ -226,17 +227,23 @@ class BrianData:
reporting_provider = HttpClient( reporting_provider = HttpClient(
base_url=config["reporting_provider"], base_url=config["reporting_provider"],
) )
async with asyncio.TaskGroup() as tg:
services = tg.create_task(get_services(reporting_provider))
interfaces = tg.create_task(get_interfaces(inventory_provider))
regions = tg.create_task(get_nren_regions(inventory_provider))
gws_direct_data = tg.create_task(get_gws_direct(inventory_provider))
gws_indirect_data = tg.create_task(get_gws_indirect(inventory_provider))
eumetsat_multicast_data = tg.create_task(
get_eumetsat_multicast_subscriptions(inventory_provider)
)
# TODO: make concurrent
return BrianData( return BrianData(
services=await get_services(reporting_provider), services=services.result(),
interfaces=await get_interfaces(inventory_provider), interfaces=interfaces.result(),
regions=await get_nren_regions(inventory_provider), regions=regions.result(),
gws_direct_data=await get_gws_direct(inventory_provider), gws_direct_data=gws_direct_data.result(),
gws_indirect_data=await get_gws_indirect(inventory_provider), gws_indirect_data=gws_indirect_data.result(),
eumetsat_multicast_data=await get_eumetsat_multicast_subscriptions( eumetsat_multicast_data=eumetsat_multicast_data.result(),
inventory_provider
),
) )
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment