Skip to content
Snippets Groups Projects
Commit 6fd4db49 authored by Erik Reid's avatar Erik Reid
Browse files

Finished feature resoure-management-sites.

parents 2d4a4a47 fadb41db
No related branches found
No related tags found
No related merge requests found
Pipeline #83743 passed
......@@ -16,27 +16,39 @@ 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:
......
......@@ -11,10 +11,20 @@ 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)
resource_manager.import_new_router(new_router_fqdn=router_name, site_name=site_name)
assert router_name in resource_manager._DUMMY_INVENTORY
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment