Skip to content

Terminate layer 2 circuit

Workflow for terminating a Layer 2 Circuit.

input_form_generator(subscription_id)

Input form for Layer 2 Circuit termination workflow.

Source code in gso/workflows/l2_circuit/terminate_layer_2_circuit.py
def input_form_generator(subscription_id: UUIDstr) -> FormGenerator:
    """Input form for Layer 2 Circuit termination workflow."""
    layer_2_circuit = Layer2Circuit.from_subscription(subscription_id)

    class TerminateForm(FormPage):
        tt_number: TTNumber

        label: Label = "Should this workflow run Ansible playbooks to remove configuration from routers?"
        run_ansible_steps: bool = True

    user_input = yield TerminateForm

    summary_fields = ["tt_number", "run_ansible_steps"]
    yield from create_summary_form(user_input.model_dump(), layer_2_circuit.product.name, summary_fields)

    return {"subscription": layer_2_circuit} | user_input.model_dump()

terminate_layer_2_circuit()

Terminate a Layer 2 Circuit subscription.

Source code in gso/workflows/l2_circuit/terminate_layer_2_circuit.py
@terminate_workflow("Terminate Layer 2 Circuit Service", initial_input_form=input_form_generator)
def terminate_layer_2_circuit() -> StepList:
    """Terminate a Layer 2 Circuit subscription."""
    return (
        begin
        >> run_ansible_steps(generate_fqdn_list)
        >> run_ansible_steps(annotate_edge_ports_with_partner_names)
        >> run_ansible_steps(lso_interaction(terminate_l2circuit_dry))
        >> run_ansible_steps(lso_interaction(terminate_l2circuit_real))
    )