diff --git a/gso/services/resource_manager.py b/gso/services/resource_manager.py index b555c7c301a1c9d3445f85c9248d1ce13184679b..b9169a8b2959d42d632951c291978408ed197ae5 100644 --- a/gso/services/resource_manager.py +++ b/gso/services/resource_manager.py @@ -16,42 +16,30 @@ class InterfaceAllocationState(Enum): ALLOCATED = auto() -def _dummy_router_interfaces(site_name) -> dict: +def _dummy_router_interfaces(): 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("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"), + "fqdn-a": _dummy_router_interfaces(), + "fqdn-b": _dummy_router_interfaces(), + "fqdn-c": _dummy_router_interfaces(), + "fqdn-d": _dummy_router_interfaces(), } -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): +def import_new_router(new_router_fqdn: str, subscription_id: str, oss_params=settings.OSSParams): # TODO: this is a dummy implementation - # TODO: specify if this should be an error (and if not, what it means) - assert site_name in _DUMMY_SITES + # TODO: specifiy if this should be an error (and if now, what it means) assert new_router_fqdn not in _DUMMY_INVENTORY - _DUMMY_INVENTORY[new_router_fqdn] = _dummy_router_interfaces(site_name) + _DUMMY_INVENTORY[new_router_fqdn] = _dummy_router_interfaces() -def next_lag(router_fqdn: str, oss_params=settings.OSSParams) -> str: +def next_lag(router_fqdn: str, subscription_id: str, oss_params=settings.OSSParams) -> str: # TODO: this is a dummy implementation assert router_fqdn in _DUMMY_INVENTORY @@ -85,7 +73,9 @@ def _find_physical(router_fqdn: str, interface_name: str) -> dict: raise AssertionError(f"interface {interface_name} not found on {router_fqdn}") -def reserve_physical_interface(router_fqdn: str, interface_name: str, oss_params=settings.OSSParams): +def reserve_physical_interface( + router_fqdn: str, interface_name: str, subscription_id: str, oss_params=settings.OSSParams +): # TODO: this is a dummy implementation ifc = _find_physical(router_fqdn, interface_name) diff --git a/test/test_resource_manager.py b/test/test_resource_manager.py index 37e26fe78cb8b6a1d68702994b824c38c63820aa..34cf53506c94d37bc36cfbae31d6998cf88a7a30 100644 --- a/test/test_resource_manager.py +++ b/test/test_resource_manager.py @@ -11,26 +11,18 @@ def _random_string(n=None, letters=string.ascii_letters + string.digits + string return "".join(random.choices(letters, k=n)) # noqa: S311 -def test_new_site(): - site_name = _random_string(10) - assert site_name not in resource_manager._DUMMY_SITES - resource_manager.import_new_site(new_site_name=site_name) - assert site_name in resource_manager._DUMMY_SITES - - def test_new_router(): - site_name = _random_string(10) - resource_manager.import_new_site(new_site_name=site_name) - router_name = _random_string(10) assert router_name not in resource_manager._DUMMY_INVENTORY - resource_manager.import_new_router(new_router_fqdn=router_name, site_name=site_name) + resource_manager.import_new_router(new_router_fqdn=router_name, subscription_id=_random_string(10)) assert router_name in resource_manager._DUMMY_INVENTORY def test_new_lag(): router_name = list(resource_manager._DUMMY_INVENTORY.keys())[0] - new_lags = {resource_manager.next_lag(router_fqdn=router_name) for _ in range(10)} + new_lags = { + resource_manager.next_lag(router_fqdn=router_name, subscription_id=_random_string(10)) for _ in range(10) + } assert len(new_lags) == 10 assert new_lags <= set(resource_manager._DUMMY_INVENTORY[router_name]["lags"]) @@ -45,7 +37,9 @@ def test_physical_allocation_lifecycle_happy(): interface_name = initial_available[0] - resource_manager.reserve_physical_interface(router_fqdn=router_name, interface_name=interface_name) + resource_manager.reserve_physical_interface( + router_fqdn=router_name, subscription_id=_random_string(10), interface_name=interface_name + ) current_available = _interfaces() assert interface_name not in current_available