Workflow for terminating a Layer 2 Circuit.
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))
)
|