diff --git a/gso/services/resource_manager.py b/gso/services/resource_manager.py index 6962eefee1315bd069843ecdc1d4b942de944561..5c2424000ec6e7e7a743bd2aace8bcfa16c0d07e 100644 --- a/gso/services/resource_manager.py +++ b/gso/services/resource_manager.py @@ -1,6 +1,6 @@ # mypy: ignore-errors from enum import Enum, auto -from typing import List +from typing import List, Set from gso import settings @@ -16,27 +16,45 @@ class InterfaceAllocationState(Enum): ALLOCATED = auto() -def _dummy_router_interfaces(): +def _dummy_router_interfaces(site_name) -> dict: return { + "site": site_name, "lags": [], "physical": [{"name": f"ifc-{x}", "state": InterfaceAllocationState.AVAILABLE} for x in range(250)], } +_DUMMY_SITES = { + "site-a", + "site-b", + "site-c" +} _DUMMY_INVENTORY = { - "fqdn-a": _dummy_router_interfaces(), - "fqdn-b": _dummy_router_interfaces(), - "fqdn-c": _dummy_router_interfaces(), - "fqdn-d": _dummy_router_interfaces(), + "fqdn-a": _dummy_router_interfaces("site-a"), + "fqdn-b": _dummy_router_interfaces("site-a"), + "fqdn-c": _dummy_router_interfaces("site-b"), + "fqdn-d": _dummy_router_interfaces("site-b"), + "fqdn-e": _dummy_router_interfaces("site-c"), + "fqdn-f": _dummy_router_interfaces("site-c") } -def import_new_router(new_router_fqdn: str, oss_params=settings.OSSParams): +def import_new_site(new_site_name: str, oss_params=settings.OSSParams): + # TODO: this is a dummy implementation + assert new_site_name not in _DUMMY_SITES + _DUMMY_SITES.add(new_site_name) + + +def import_new_router( + new_router_fqdn: str, + site_name: str, + oss_params=settings.OSSParams): # TODO: this is a dummy implementation - # TODO: specifiy if this should be an error (and if now, what it means) + # TODO: specify if this should be an error (and if not, what it means) + assert site_name in _DUMMY_SITES assert new_router_fqdn not in _DUMMY_INVENTORY - _DUMMY_INVENTORY[new_router_fqdn] = _dummy_router_interfaces() + _DUMMY_INVENTORY[new_router_fqdn] = _dummy_router_interfaces(site_name) def next_lag(router_fqdn: str, oss_params=settings.OSSParams) -> str: