Skip to content
Snippets Groups Projects
Commit f396fe73 authored by Karel van Klink's avatar Karel van Klink :smiley_cat:
Browse files

Also include provisioning routers for iBGP mesh in trunk validation workflow

parent 144bcdf7
No related branches found
No related tags found
1 merge request!308Also include provisioning routers for iBGP mesh in trunk validation workflow
...@@ -5,6 +5,7 @@ import re ...@@ -5,6 +5,7 @@ import re
from typing import TYPE_CHECKING from typing import TYPE_CHECKING
from uuid import UUID from uuid import UUID
from orchestrator.types import SubscriptionLifecycle
from pydantic_forms.types import UUIDstr from pydantic_forms.types import UUIDstr
from pydantic_forms.validators import Choice from pydantic_forms.validators import Choice
...@@ -122,10 +123,12 @@ def generate_fqdn(hostname: str, site_name: str, country_code: str) -> str: ...@@ -122,10 +123,12 @@ def generate_fqdn(hostname: str, site_name: str, country_code: str) -> str:
return f"{hostname}.{site_name.lower()}.{country_code.lower()}{oss.IPAM.LO.domain_name}" return f"{hostname}.{site_name.lower()}.{country_code.lower()}{oss.IPAM.LO.domain_name}"
def generate_inventory_for_active_routers( def generate_inventory_for_routers(
router_role: RouterRole, router_role: RouterRole,
exclude_routers: list[str] | None = None, exclude_routers: list[str] | None = None,
router_vendor: Vendor | None = None, router_vendor: Vendor | None = None,
*,
include_provisioning_routers: bool = False,
) -> dict: ) -> dict:
"""Generate an Ansible-compatible inventory for executing playbooks. """Generate an Ansible-compatible inventory for executing playbooks.
...@@ -134,11 +137,18 @@ def generate_inventory_for_active_routers( ...@@ -134,11 +137,18 @@ def generate_inventory_for_active_routers(
:param RouterRole router_role: The role of the routers to include in the inventory. :param RouterRole router_role: The role of the routers to include in the inventory.
:param list exclude_routers: List of routers to exclude from the inventory. :param list exclude_routers: List of routers to exclude from the inventory.
:param Vendor router_vendor: The vendor of the routers to include in the inventory. :param Vendor router_vendor: The vendor of the routers to include in the inventory.
:param bool include_provisioning_routers: Include routers that are in a ``PROVISIONING`` state.
:return: A dictionary representing the inventory of active routers. :return: A dictionary representing the inventory of active routers.
:rtype: dict[str, Any] :rtype: dict[str, Any]
""" """
lifecycles = (
[SubscriptionLifecycle.PROVISIONING, SubscriptionLifecycle.ACTIVE]
if include_provisioning_routers
else [SubscriptionLifecycle.ACTIVE]
)
all_routers = [ all_routers = [
Router.from_subscription(r["subscription_id"]) for r in subscriptions.get_active_router_subscriptions() Router.from_subscription(r["subscription_id"])
for r in subscriptions.get_router_subscriptions(lifecycles=lifecycles)
] ]
exclude_routers = exclude_routers or [] exclude_routers = exclude_routers or []
......
...@@ -19,7 +19,7 @@ from gso.products.product_types.iptrunk import Iptrunk ...@@ -19,7 +19,7 @@ from gso.products.product_types.iptrunk import Iptrunk
from gso.services.kentik_client import KentikClient, NewKentikDevice from gso.services.kentik_client import KentikClient, NewKentikDevice
from gso.services.lso_client import LSOState, indifferent_lso_interaction from gso.services.lso_client import LSOState, indifferent_lso_interaction
from gso.settings import load_oss_params from gso.settings import load_oss_params
from gso.utils.helpers import generate_inventory_for_active_routers from gso.utils.helpers import generate_inventory_for_routers
from gso.utils.shared_enums import Vendor from gso.utils.shared_enums import Vendor
...@@ -51,7 +51,7 @@ def _update_sdp_mesh( ...@@ -51,7 +51,7 @@ def _update_sdp_mesh(
*, *,
dry_run: bool, dry_run: bool,
) -> LSOState: ) -> LSOState:
inventory = generate_inventory_for_active_routers( inventory = generate_inventory_for_routers(
router_role=RouterRole.PE, router_vendor=Vendor.NOKIA, exclude_routers=[subscription["router"]["router_fqdn"]] router_role=RouterRole.PE, router_vendor=Vendor.NOKIA, exclude_routers=[subscription["router"]["router_fqdn"]]
) )
...@@ -89,7 +89,7 @@ def _update_sdp_single_pe( ...@@ -89,7 +89,7 @@ def _update_sdp_single_pe(
"commit_comment": f"GSO_PROCESS_ID: {process_id} - TT_NUMBER: {tt_number} - " "commit_comment": f"GSO_PROCESS_ID: {process_id} - TT_NUMBER: {tt_number} - "
f"Update the SDP mesh for L2circuits(epipes) config on PE NOKIA routers", f"Update the SDP mesh for L2circuits(epipes) config on PE NOKIA routers",
"verb": "update_sdp_mesh", "verb": "update_sdp_mesh",
"pe_router_list": generate_inventory_for_active_routers( "pe_router_list": generate_inventory_for_routers(
router_role=RouterRole.PE, router_role=RouterRole.PE,
exclude_routers=[subscription["router"]["router_fqdn"]], exclude_routers=[subscription["router"]["router_fqdn"]],
)["all"]["hosts"], )["all"]["hosts"],
...@@ -122,7 +122,7 @@ def _add_pe_mesh_to_pe( ...@@ -122,7 +122,7 @@ def _add_pe_mesh_to_pe(
"commit_comment": f"GSO_PROCESS_ID: {process_id} - TT_NUMBER: {tt_number} - " "commit_comment": f"GSO_PROCESS_ID: {process_id} - TT_NUMBER: {tt_number} - "
f"Add list of PE routers into iGEANT/iGEANT6 groups of the PE router", f"Add list of PE routers into iGEANT/iGEANT6 groups of the PE router",
"verb": "add_pe_mesh_to_pe", "verb": "add_pe_mesh_to_pe",
"pe_router_list": generate_inventory_for_active_routers( "pe_router_list": generate_inventory_for_routers(
router_role=RouterRole.PE, exclude_routers=[subscription["router"]["router_fqdn"]] router_role=RouterRole.PE, exclude_routers=[subscription["router"]["router_fqdn"]]
)["all"]["hosts"], )["all"]["hosts"],
} }
...@@ -148,7 +148,7 @@ def _add_pe_to_pe_mesh( ...@@ -148,7 +148,7 @@ def _add_pe_to_pe_mesh(
*, *,
dry_run: bool, dry_run: bool,
) -> LSOState: ) -> LSOState:
inventory = generate_inventory_for_active_routers( inventory = generate_inventory_for_routers(
router_role=RouterRole.PE, exclude_routers=[subscription["router"]["router_fqdn"]] router_role=RouterRole.PE, exclude_routers=[subscription["router"]["router_fqdn"]]
) )
extra_vars = { extra_vars = {
...@@ -178,7 +178,7 @@ def _add_all_p_to_pe( ...@@ -178,7 +178,7 @@ def _add_all_p_to_pe(
"subscription": subscription, "subscription": subscription,
"commit_comment": f"GSO_PROCESS_ID: {process_id} - TT_NUMBER: {tt_number} - Add all P-routers to this new PE", "commit_comment": f"GSO_PROCESS_ID: {process_id} - TT_NUMBER: {tt_number} - Add all P-routers to this new PE",
"verb": "add_all_p_to_pe", "verb": "add_all_p_to_pe",
"p_router_list": generate_inventory_for_active_routers( "p_router_list": generate_inventory_for_routers(
router_role=RouterRole.P, exclude_routers=[subscription["router"]["router_fqdn"]] router_role=RouterRole.P, exclude_routers=[subscription["router"]["router_fqdn"]]
)["all"]["hosts"], )["all"]["hosts"],
} }
...@@ -204,7 +204,7 @@ def _add_pe_to_all_p( ...@@ -204,7 +204,7 @@ def _add_pe_to_all_p(
*, *,
dry_run: bool, dry_run: bool,
) -> LSOState: ) -> LSOState:
inventory = generate_inventory_for_active_routers( inventory = generate_inventory_for_routers(
router_role=RouterRole.P, exclude_routers=[subscription["router"]["router_fqdn"]] router_role=RouterRole.P, exclude_routers=[subscription["router"]["router_fqdn"]]
) )
extra_vars = { extra_vars = {
......
...@@ -18,7 +18,7 @@ from gso.products.product_blocks.router import RouterRole ...@@ -18,7 +18,7 @@ from gso.products.product_blocks.router import RouterRole
from gso.products.product_types.router import Router from gso.products.product_types.router import Router
from gso.services.lso_client import LSOState, lso_interaction from gso.services.lso_client import LSOState, lso_interaction
from gso.services.subscriptions import get_all_active_sites from gso.services.subscriptions import get_all_active_sites
from gso.utils.helpers import generate_inventory_for_active_routers from gso.utils.helpers import generate_inventory_for_routers
from gso.utils.shared_enums import Vendor from gso.utils.shared_enums import Vendor
from gso.utils.types.tt_number import TTNumber from gso.utils.types.tt_number import TTNumber
from gso.utils.workflow_steps import ( from gso.utils.workflow_steps import (
...@@ -85,7 +85,7 @@ def deploy_pe_base_config_dry(subscription: dict[str, Any], tt_number: str, proc ...@@ -85,7 +85,7 @@ def deploy_pe_base_config_dry(subscription: dict[str, Any], tt_number: str, proc
"subscription": subscription, "subscription": subscription,
"commit_comment": f"GSO_PROCESS_ID: {process_id} - TT_NUMBER: {tt_number} - deploy PE base config", "commit_comment": f"GSO_PROCESS_ID: {process_id} - TT_NUMBER: {tt_number} - deploy PE base config",
"verb": "deploy_pe_base_config", "verb": "deploy_pe_base_config",
"pe_router_list": generate_inventory_for_active_routers(RouterRole.PE)["all"]["hosts"], "pe_router_list": generate_inventory_for_routers(RouterRole.PE)["all"]["hosts"],
"geant_sites": json.loads(json_dumps(get_all_active_sites())), "geant_sites": json.loads(json_dumps(get_all_active_sites())),
} }
...@@ -104,7 +104,7 @@ def deploy_pe_base_config_real(subscription: dict[str, Any], tt_number: str, pro ...@@ -104,7 +104,7 @@ def deploy_pe_base_config_real(subscription: dict[str, Any], tt_number: str, pro
"subscription": subscription, "subscription": subscription,
"commit_comment": f"GSO_PROCESS_ID: {process_id} - TT_NUMBER: {tt_number} - deploy PE base config", "commit_comment": f"GSO_PROCESS_ID: {process_id} - TT_NUMBER: {tt_number} - deploy PE base config",
"verb": "deploy_pe_base_config", "verb": "deploy_pe_base_config",
"pe_router_list": generate_inventory_for_active_routers(RouterRole.PE)["all"]["hosts"], "pe_router_list": generate_inventory_for_routers(RouterRole.PE)["all"]["hosts"],
"geant_sites": json.loads(json_dumps(get_all_active_sites())), "geant_sites": json.loads(json_dumps(get_all_active_sites())),
} }
...@@ -142,7 +142,7 @@ def remove_p_from_pe_dry(subscription: dict[str, Any], tt_number: str, process_i ...@@ -142,7 +142,7 @@ def remove_p_from_pe_dry(subscription: dict[str, Any], tt_number: str, process_i
return { return {
"playbook_name": "gap_ansible/playbooks/update_ibgp_mesh.yaml", "playbook_name": "gap_ansible/playbooks/update_ibgp_mesh.yaml",
"inventory": generate_inventory_for_active_routers(RouterRole.PE), "inventory": generate_inventory_for_routers(RouterRole.PE),
"extra_vars": extra_vars, "extra_vars": extra_vars,
} }
...@@ -160,7 +160,7 @@ def remove_p_from_pe_real(subscription: dict[str, Any], tt_number: str, process_ ...@@ -160,7 +160,7 @@ def remove_p_from_pe_real(subscription: dict[str, Any], tt_number: str, process_
return { return {
"playbook_name": "gap_ansible/playbooks/update_ibgp_mesh.yaml", "playbook_name": "gap_ansible/playbooks/update_ibgp_mesh.yaml",
"inventory": generate_inventory_for_active_routers(RouterRole.PE), "inventory": generate_inventory_for_routers(RouterRole.PE),
"extra_vars": extra_vars, "extra_vars": extra_vars,
} }
......
...@@ -28,7 +28,7 @@ from gso.services.librenms_client import LibreNMSClient ...@@ -28,7 +28,7 @@ from gso.services.librenms_client import LibreNMSClient
from gso.services.lso_client import LSOState, lso_interaction from gso.services.lso_client import LSOState, lso_interaction
from gso.services.netbox_client import NetboxClient from gso.services.netbox_client import NetboxClient
from gso.settings import load_oss_params from gso.settings import load_oss_params
from gso.utils.helpers import generate_inventory_for_active_routers from gso.utils.helpers import generate_inventory_for_routers
from gso.utils.shared_enums import Vendor from gso.utils.shared_enums import Vendor
from gso.utils.types.tt_number import TTNumber from gso.utils.types.tt_number import TTNumber
...@@ -124,7 +124,7 @@ def remove_p_from_all_pe_dry(subscription: Router, tt_number: str, process_id: U ...@@ -124,7 +124,7 @@ def remove_p_from_all_pe_dry(subscription: Router, tt_number: str, process_id: U
return { return {
"playbook_name": "gap_ansible/playbooks/update_ibgp_mesh.yaml", "playbook_name": "gap_ansible/playbooks/update_ibgp_mesh.yaml",
"inventory": generate_inventory_for_active_routers(RouterRole.PE), "inventory": generate_inventory_for_routers(RouterRole.PE),
"extra_vars": extra_vars, "extra_vars": extra_vars,
} }
...@@ -142,7 +142,7 @@ def remove_p_from_all_pe_real(subscription: Router, tt_number: str, process_id: ...@@ -142,7 +142,7 @@ def remove_p_from_all_pe_real(subscription: Router, tt_number: str, process_id:
return { return {
"playbook_name": "gap_ansible/playbooks/update_ibgp_mesh.yaml", "playbook_name": "gap_ansible/playbooks/update_ibgp_mesh.yaml",
"inventory": generate_inventory_for_active_routers(RouterRole.PE), "inventory": generate_inventory_for_routers(RouterRole.PE),
"extra_vars": extra_vars, "extra_vars": extra_vars,
} }
...@@ -160,9 +160,7 @@ def remove_pe_from_all_pe_dry(subscription: Router, tt_number: str, process_id: ...@@ -160,9 +160,7 @@ def remove_pe_from_all_pe_dry(subscription: Router, tt_number: str, process_id:
return { return {
"playbook_name": "gap_ansible/playbooks/update_ibgp_mesh.yaml", "playbook_name": "gap_ansible/playbooks/update_ibgp_mesh.yaml",
"inventory": generate_inventory_for_active_routers( "inventory": generate_inventory_for_routers(RouterRole.PE, exclude_routers=[subscription.router.router_fqdn]),
RouterRole.PE, exclude_routers=[subscription.router.router_fqdn]
),
"extra_vars": extra_vars, "extra_vars": extra_vars,
} }
...@@ -180,9 +178,7 @@ def remove_pe_from_all_pe_real(subscription: Router, tt_number: str, process_id: ...@@ -180,9 +178,7 @@ def remove_pe_from_all_pe_real(subscription: Router, tt_number: str, process_id:
return { return {
"playbook_name": "gap_ansible/playbooks/update_ibgp_mesh.yaml", "playbook_name": "gap_ansible/playbooks/update_ibgp_mesh.yaml",
"inventory": generate_inventory_for_active_routers( "inventory": generate_inventory_for_routers(RouterRole.PE, exclude_routers=[subscription.router.router_fqdn]),
RouterRole.PE, exclude_routers=[subscription.router.router_fqdn]
),
"extra_vars": extra_vars, "extra_vars": extra_vars,
} }
...@@ -200,7 +196,7 @@ def remove_pe_from_all_p_dry(subscription: Router, tt_number: str, process_id: U ...@@ -200,7 +196,7 @@ def remove_pe_from_all_p_dry(subscription: Router, tt_number: str, process_id: U
return { return {
"playbook_name": "gap_ansible/playbooks/update_ibgp_mesh.yaml", "playbook_name": "gap_ansible/playbooks/update_ibgp_mesh.yaml",
"inventory": generate_inventory_for_active_routers(RouterRole.P), "inventory": generate_inventory_for_routers(RouterRole.P),
"extra_vars": extra_vars, "extra_vars": extra_vars,
} }
...@@ -218,7 +214,7 @@ def remove_pe_from_all_p_real(subscription: Router, tt_number: str, process_id: ...@@ -218,7 +214,7 @@ def remove_pe_from_all_p_real(subscription: Router, tt_number: str, process_id:
return { return {
"playbook_name": "gap_ansible/playbooks/update_ibgp_mesh.yaml", "playbook_name": "gap_ansible/playbooks/update_ibgp_mesh.yaml",
"inventory": generate_inventory_for_active_routers(RouterRole.P), "inventory": generate_inventory_for_routers(RouterRole.P),
"extra_vars": extra_vars, "extra_vars": extra_vars,
} }
......
...@@ -17,7 +17,7 @@ from gso.products.product_types.router import Router ...@@ -17,7 +17,7 @@ from gso.products.product_types.router import Router
from gso.services import librenms_client from gso.services import librenms_client
from gso.services.lso_client import LSOState, lso_interaction from gso.services.lso_client import LSOState, lso_interaction
from gso.services.subscriptions import get_trunks_that_terminate_on_router from gso.services.subscriptions import get_trunks_that_terminate_on_router
from gso.utils.helpers import generate_inventory_for_active_routers from gso.utils.helpers import generate_inventory_for_routers
from gso.utils.shared_enums import SNMPVersion from gso.utils.shared_enums import SNMPVersion
from gso.utils.types.tt_number import TTNumber from gso.utils.types.tt_number import TTNumber
from gso.utils.workflow_steps import ( from gso.utils.workflow_steps import (
...@@ -79,7 +79,7 @@ def add_p_to_mesh_dry(subscription: dict[str, Any], tt_number: str, process_id: ...@@ -79,7 +79,7 @@ def add_p_to_mesh_dry(subscription: dict[str, Any], tt_number: str, process_id:
return { return {
"playbook_name": "gap_ansible/playbooks/update_ibgp_mesh.yaml", "playbook_name": "gap_ansible/playbooks/update_ibgp_mesh.yaml",
"inventory": generate_inventory_for_active_routers(RouterRole.PE), "inventory": generate_inventory_for_routers(RouterRole.PE),
"extra_vars": extra_vars, "extra_vars": extra_vars,
} }
...@@ -96,7 +96,7 @@ def add_p_to_mesh_real(subscription: dict[str, Any], tt_number: str, process_id: ...@@ -96,7 +96,7 @@ def add_p_to_mesh_real(subscription: dict[str, Any], tt_number: str, process_id:
return { return {
"playbook_name": "gap_ansible/playbooks/update_ibgp_mesh.yaml", "playbook_name": "gap_ansible/playbooks/update_ibgp_mesh.yaml",
"inventory": generate_inventory_for_active_routers(RouterRole.PE), "inventory": generate_inventory_for_routers(RouterRole.PE),
"extra_vars": extra_vars, "extra_vars": extra_vars,
} }
...@@ -107,7 +107,7 @@ def add_all_pe_to_p_dry(subscription: dict[str, Any]) -> LSOState: ...@@ -107,7 +107,7 @@ def add_all_pe_to_p_dry(subscription: dict[str, Any]) -> LSOState:
extra_vars = { extra_vars = {
"dry_run": True, "dry_run": True,
"subscription": subscription, "subscription": subscription,
"pe_router_list": generate_inventory_for_active_routers(RouterRole.PE), "pe_router_list": generate_inventory_for_routers(RouterRole.PE),
"verb": "add_pe_to_p", "verb": "add_pe_to_p",
} }
...@@ -124,7 +124,7 @@ def add_all_pe_to_p_real(subscription: dict[str, Any], tt_number: str, process_i ...@@ -124,7 +124,7 @@ def add_all_pe_to_p_real(subscription: dict[str, Any], tt_number: str, process_i
extra_vars = { extra_vars = {
"dry_run": False, "dry_run": False,
"subscription": subscription, "subscription": subscription,
"pe_router_list": generate_inventory_for_active_routers(RouterRole.PE), "pe_router_list": generate_inventory_for_routers(RouterRole.PE),
"commit_comment": f"GSO_PROCESS_ID: {process_id} - TT_NUMBER: {tt_number} - Update iBGP mesh", "commit_comment": f"GSO_PROCESS_ID: {process_id} - TT_NUMBER: {tt_number} - Update iBGP mesh",
"verb": "add_pe_to_p", "verb": "add_pe_to_p",
} }
......
...@@ -16,7 +16,7 @@ from gso.services.kentik_client import KentikClient ...@@ -16,7 +16,7 @@ from gso.services.kentik_client import KentikClient
from gso.services.librenms_client import LibreNMSClient from gso.services.librenms_client import LibreNMSClient
from gso.services.lso_client import LSOState, anonymous_lso_interaction from gso.services.lso_client import LSOState, anonymous_lso_interaction
from gso.services.netbox_client import NetboxClient from gso.services.netbox_client import NetboxClient
from gso.utils.helpers import generate_inventory_for_active_routers from gso.utils.helpers import generate_inventory_for_routers
from gso.utils.shared_enums import Vendor from gso.utils.shared_enums import Vendor
...@@ -58,7 +58,9 @@ def verify_p_ibgp(subscription: dict[str, Any]) -> LSOState: ...@@ -58,7 +58,9 @@ def verify_p_ibgp(subscription: dict[str, Any]) -> LSOState:
extra_vars = { extra_vars = {
"dry_run": True, "dry_run": True,
"subscription": subscription, "subscription": subscription,
"pe_router_list": generate_inventory_for_active_routers(RouterRole.PE)["all"]["hosts"], "pe_router_list": generate_inventory_for_routers(RouterRole.PE, include_provisioning_routers=True)["all"][
"hosts"
],
"verb": "verify_p_ibgp", "verb": "verify_p_ibgp",
"is_verification_workflow": "true", "is_verification_workflow": "true",
} }
......
...@@ -8,7 +8,7 @@ from gso.products.product_blocks.router import RouterRole ...@@ -8,7 +8,7 @@ from gso.products.product_blocks.router import RouterRole
from gso.products.product_types.router import Router from gso.products.product_types.router import Router
from gso.utils.helpers import ( from gso.utils.helpers import (
available_interfaces_choices_including_current_members, available_interfaces_choices_including_current_members,
generate_inventory_for_active_routers, generate_inventory_for_routers,
) )
from gso.utils.shared_enums import Vendor from gso.utils.shared_enums import Vendor
from gso.utils.types.tt_number import validate_tt_number from gso.utils.types.tt_number import validate_tt_number
...@@ -113,7 +113,7 @@ def test_generate_inventory_for_active_routers_with_single_active_router(router_ ...@@ -113,7 +113,7 @@ def test_generate_inventory_for_active_routers_with_single_active_router(router_
} }
} }
} }
assert generate_inventory_for_active_routers(RouterRole.P) == expected_result assert generate_inventory_for_routers(RouterRole.P) == expected_result
def test_generate_inventory_for_active_routers_with_multiple_routers(router_subscription_factory): def test_generate_inventory_for_active_routers_with_multiple_routers(router_subscription_factory):
...@@ -125,9 +125,9 @@ def test_generate_inventory_for_active_routers_with_multiple_routers(router_subs ...@@ -125,9 +125,9 @@ def test_generate_inventory_for_active_routers_with_multiple_routers(router_subs
router_subscription_factory(status=SubscriptionLifecycle.TERMINATED) router_subscription_factory(status=SubscriptionLifecycle.TERMINATED)
router_subscription_factory(status=SubscriptionLifecycle.INITIAL) router_subscription_factory(status=SubscriptionLifecycle.INITIAL)
# Test the generation of inventory for multiple active P routers. # Test the generation of inventory for multiple active P routers.
inventory = generate_inventory_for_active_routers(RouterRole.P) inventory = generate_inventory_for_routers(RouterRole.P)
assert len(inventory["all"]["hosts"]) == 5 assert len(inventory["all"]["hosts"]) == 5
inventory = generate_inventory_for_active_routers(RouterRole.PE) inventory = generate_inventory_for_routers(RouterRole.PE)
assert len(inventory["all"]["hosts"]) == 3 assert len(inventory["all"]["hosts"]) == 3
...@@ -137,5 +137,5 @@ def test_generate_inventory_for_active_routers_with_excluded_router(router_subsc ...@@ -137,5 +137,5 @@ def test_generate_inventory_for_active_routers_with_excluded_router(router_subsc
router_subscription_factory(router_role=RouterRole.P) router_subscription_factory(router_role=RouterRole.P)
router = router_subscription_factory(router_role=RouterRole.P) router = router_subscription_factory(router_role=RouterRole.P)
excluded_routers = [Router.from_subscription(router).router.router_fqdn] excluded_routers = [Router.from_subscription(router).router.router_fqdn]
inventory = generate_inventory_for_active_routers(RouterRole.P, exclude_routers=excluded_routers) inventory = generate_inventory_for_routers(RouterRole.P, exclude_routers=excluded_routers)
assert len(inventory["all"]["hosts"]) == 5 # 6 P routers, the last one is excluded, so 5 P routers are left. assert len(inventory["all"]["hosts"]) == 5 # 6 P routers, the last one is excluded, so 5 P routers are left.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment