diff --git a/mapping_provider/__init__.py b/mapping_provider/__init__.py index bce382c88b8cf4f7f02458b6d9e943da84b3fd05..0e871170c847936329e00e020bb7c23864699209 100644 --- a/mapping_provider/__init__.py +++ b/mapping_provider/__init__.py @@ -12,7 +12,7 @@ from fastapi import FastAPI from mapping_provider import config, environment from mapping_provider.api import common, map -from mapping_provider.backends import correlator, services, cache +from mapping_provider.backends import correlator, inventory, cache logger = logging.getLogger(__name__) @@ -23,8 +23,6 @@ async def lifespan(app: FastAPI, app_config: config.Configuration) -> AsyncItera if not app_config.rmq: return # don't start any background tasks - assert cache.cache_dir is None # sanity - with tempfile.TemporaryDirectory() as _tmp_working_dir: cache.init(_tmp_working_dir) @@ -41,7 +39,7 @@ async def lifespan(app: FastAPI, app_config: config.Configuration) -> AsyncItera _correlator_thread.start() _inventory_thread = threading.Thread( - target=services.worker_proc, + target=inventory.worker_proc, daemon=True, kwargs={ 'inventory_base_uri': app_config.inventory, diff --git a/mapping_provider/backends/cache.py b/mapping_provider/backends/cache.py index 16c81c6fc47cf11179b0d8fa641e344ec0338624..879ce54f07dee75dd13e93c10aaeb59a030619df 100644 --- a/mapping_provider/backends/cache.py +++ b/mapping_provider/backends/cache.py @@ -32,11 +32,11 @@ def set(filename: str, data: dict[str, Any]) -> None: logger.debug(f"wrote cached data: {filename}") -def get(filename: str) -> dict[str, Any]: +def get(filename: str) -> Any: """ Loads the cached data, parses it as json & returns the object. """ assert _cache_dir is not None, f"cache_dir hasn't been initialized" with open(os.path.join(_cache_dir, filename), 'r') as f: logger.debug(f"reading cached data: {filename}") - return json.load(f) \ No newline at end of file + return json.load(f) diff --git a/mapping_provider/backends/inventory.py b/mapping_provider/backends/inventory.py index c0e15b1093a38c8ff83d0720815713208257833b..861dbc65ef38cc70b61738b80017bad66a725eeb 100644 --- a/mapping_provider/backends/inventory.py +++ b/mapping_provider/backends/inventory.py @@ -20,7 +20,7 @@ INPROV_MAP_SERVICES_CACHE_FILENAME = 'inprov-map-services.json' def _load_and_cache_json( key: str, url: str, - cache_filename: str) -> None: + cache_filename: str) -> dict[str, Any]: """ Load the JSON from the URL, return and cache it. diff --git a/mapping_provider/backends/services.py b/mapping_provider/backends/services.py index ae8c537eb69f6d0b3cbd208934a11c67be4ca596..750c0cc2033d6715ff324a9d613009d0e6f04d35 100644 --- a/mapping_provider/backends/services.py +++ b/mapping_provider/backends/services.py @@ -18,6 +18,7 @@ class Overlays(BaseModel): class Service(BaseModel): sid: str + scid: str name: str type: str endpoints: list[Endpoint] @@ -44,7 +45,7 @@ def _services(service_type: str | None = None) -> Generator[Service, None, None] logger.exception('not enough data available to build the service list') return - def _get_down_correlator_services(): + def _get_down_correlator_services() -> Generator[str, None, None]: for _e in correlator_state['endpoints']: if _e['up']: continue @@ -88,4 +89,4 @@ def build_service_info_list(service_type: str | None = None) -> ServiceList: """ return a list of mappable info about all operational services """ - return ServiceList(services=_services(service_type)) + return ServiceList(services=list(_services(service_type)))