Skip to content

Terminate switch management

Termination workflow for a Switch Management subscription.

remove_hosts_from_ipam(subscription)

Clean up Switch Management interfaces from IPAM.

Source code in gso/workflows/switch_management/terminate_switch_management.py
@step("Remove host records from IPAM")
def remove_hosts_from_ipam(subscription: SwitchManagement) -> None:
    """Clean up Switch Management interfaces from IPAM."""
    switch_management_fqdn = calculate_switch_management_fqdn(subscription)
    delete_host_by_fqdn(switch_management_fqdn)

    if dcn_management_fqdn := calculate_dcn_management_fqdn(subscription):
        delete_host_by_fqdn(dcn_management_fqdn)

remove_networks_from_ipam(subscription)

Clean up network containers in IPAM that had Switch Management interfaces in them.

Source code in gso/workflows/switch_management/terminate_switch_management.py
@step("Remove networks from IPAM")
def remove_networks_from_ipam(subscription: SwitchManagement) -> None:
    """Clean up network containers in IPAM that had Switch Management interfaces in them."""
    ipam_params = load_oss_params().IPAM
    site_internal_id = subscription.switch_management.management_interface.edge_port.node.router_site.site_internal_id
    management_networks: list[IPv4Network | IPv6Network] = [
        generate_management_subnet_v4(ipam_params.SWITCH_MANAGEMENT, site_internal_id),
        generate_management_subnet_v6(ipam_params.SWITCH_MANAGEMENT, site_internal_id),
    ]
    if subscription.switch_management.dcn_interface:
        management_networks += [
            generate_management_subnet_v4(ipam_params.OPTICAL_MANAGEMENT, site_internal_id),
            generate_management_subnet_v6(ipam_params.OPTICAL_MANAGEMENT, site_internal_id),
        ]

    for network in management_networks:
        delete_network(network)

terminate_switch_management()

Terminate a Switch Management.

Source code in gso/workflows/switch_management/terminate_switch_management.py
@terminate_workflow("Terminate Switch Management", _input_form_generator)
def terminate_switch_management() -> StepList:
    """Terminate a Switch Management."""
    return begin >> remove_hosts_from_ipam >> remove_networks_from_ipam