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(SubmitFormPage):
        tt_number: TTNumber

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

    user_input = yield TerminateForm
    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."""
    run_ansible_steps = conditional(lambda state: state["run_ansible_steps"])

    return (
        begin
        >> run_ansible_steps(generate_fqdn_list)
        >> run_ansible_steps(extract_partner_name_from_edge_port)
        >> run_ansible_steps(lso_interaction(terminate_l2circuit_dry))
        >> run_ansible_steps(lso_interaction(terminate_l2circuit_real))
    )