Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • goat/gap/geant-service-orchestrator
1 result
Show changes
Commits on Source (5)
......@@ -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:
......
......@@ -6,10 +6,10 @@ setup(
author="GÉANT",
author_email="swd@geant.org",
description="GÉANT Service Orchestrator",
url="https://gitlab.geant.org/goat/geant-service-orchestrator",
url="https://gitlab.software.geant.org/goat/gap/geant-service-orchestrator",
packages=find_packages(),
install_requires=[
"orchestrator-core==1.0.0",
"orchestrator-core==1.2.2",
"pydantic",
"requests",
],
......
......@@ -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
......