From 2c2d77235d2d4a5ac3777e08db64ae516db7f362 Mon Sep 17 00:00:00 2001 From: Aleksandr Kurbatov <ak@geant.org> Date: Wed, 16 Oct 2024 17:30:37 +0200 Subject: [PATCH] add partner name into edge port wfs --- gso/workflows/edge_port/create_edge_port.py | 9 ++++++--- gso/workflows/edge_port/modify_edge_port.py | 12 ++++++++---- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/gso/workflows/edge_port/create_edge_port.py b/gso/workflows/edge_port/create_edge_port.py index 0cd6127f..97b95577 100644 --- a/gso/workflows/edge_port/create_edge_port.py +++ b/gso/workflows/edge_port/create_edge_port.py @@ -29,6 +29,7 @@ from gso.utils.helpers import ( partner_choice, validate_edge_port_number_of_members_based_on_lacp, ) +from gso.services.partners import get_partner_by_id from gso.utils.types.interfaces import LAGMember, PhysicalPortCapacity from gso.utils.types.tt_number import TTNumber @@ -135,7 +136,7 @@ def initialize_subscription( ) subscription = EdgePortProvisioning.from_other_lifecycle(subscription, SubscriptionLifecycle.PROVISIONING) - return {"subscription": subscription} + return {"subscription": subscription, "partner_name": partner_name} @step("Reserve interfaces in NetBox") @@ -184,11 +185,12 @@ def allocate_interfaces_in_netbox(subscription: EdgePortProvisioning) -> None: @step("[DRY RUN] Create edge port") -def create_edge_port_dry(subscription: dict[str, Any], tt_number: str, process_id: UUIDstr) -> LSOState: +def create_edge_port_dry(subscription: dict[str, Any], tt_number: str, process_id: UUIDstr, partner_name: str) -> LSOState: """Create a new edge port in the network as a dry run.""" extra_vars = { "dry_run": True, "subscription": subscription, + "partner_name": partner_name, "commit_comment": f"GSO_PROCESS_ID: {process_id} - TT_NUMBER: {tt_number} - Create Edge Port", "verb": "create", } @@ -201,11 +203,12 @@ def create_edge_port_dry(subscription: dict[str, Any], tt_number: str, process_i @step("[FOR REAL] Create edge port") -def create_edge_port_real(subscription: dict[str, Any], tt_number: str, process_id: UUIDstr) -> LSOState: +def create_edge_port_real(subscription: dict[str, Any], tt_number: str, process_id: UUIDstr, partner_name: str) -> LSOState: """Create a new edge port in the network for real.""" extra_vars = { "dry_run": False, "subscription": subscription, + "partner_name": partner_name, "commit_comment": f"GSO_PROCESS_ID: {process_id} - TT_NUMBER: {tt_number} - Create Edge Port", "verb": "create", } diff --git a/gso/workflows/edge_port/modify_edge_port.py b/gso/workflows/edge_port/modify_edge_port.py index 42be6db5..bc68cbef 100644 --- a/gso/workflows/edge_port/modify_edge_port.py +++ b/gso/workflows/edge_port/modify_edge_port.py @@ -146,11 +146,13 @@ def modify_edge_port_subscription( f" {get_partner_by_id(subscription.customer_id).name}, {geant_ga_id or ""}" ) subscription.edge_port.edge_port_ae_members.clear() + partner_name = get_partner_by_id(subscription.customer_id).name for member in ae_members: subscription.edge_port.edge_port_ae_members.append(EdgePortAEMemberBlock.new(subscription_id=uuid4(), **member)) return { "subscription": subscription, + "partner_name": partner_name, "removed_ae_members": removed_ae_members, "previous_ae_members": previous_ae_members, } @@ -184,11 +186,12 @@ def update_interfaces_in_netbox( @step("[DRY RUN] Update edge port configuration.") def update_edge_port_dry( - subscription: dict[str, Any], process_id: UUIDstr, tt_number: str, removed_ae_members: list[dict] + subscription: dict[str, Any], process_id: UUIDstr, tt_number: str, removed_ae_members: list[dict], partner_name: str ) -> LSOState: """Perform a dry run of updating the edge port configuration.""" extra_vars = { "subscription": subscription, + "partner_name": partner_name, "dry_run": True, "verb": "update", "commit_comment": f"GSO_PROCESS_ID: {process_id} - TT_NUMBER: {tt_number} " @@ -198,7 +201,7 @@ def update_edge_port_dry( } return { - "playbook_name": "edge_ports.yaml", + "playbook_name": "edge_port.yaml", "inventory": {"all": {"hosts": {subscription["edge_port"]["node"]["router_fqdn"]}}}, "extra_vars": extra_vars, "subscription": subscription, @@ -207,11 +210,12 @@ def update_edge_port_dry( @step("[FOR REAL] Update edge port configuration.") def update_edge_port_real( - subscription: dict[str, Any], process_id: UUIDstr, tt_number: str, removed_ae_members: list[str] + subscription: dict[str, Any], process_id: UUIDstr, tt_number: str, removed_ae_members: list[str], partner_name: str ) -> LSOState: """Update the edge port configuration.""" extra_vars = { "subscription": subscription, + "partner_name": partner_name, "dry_run": False, "verb": "update", "commit_comment": f"GSO_PROCESS_ID: {process_id} - TT_NUMBER: {tt_number} " @@ -222,7 +226,7 @@ def update_edge_port_real( return { "subscription": subscription, - "playbook_name": "edge_ports.yaml", + "playbook_name": "edge_port.yaml", "inventory": {"all": {"hosts": {subscription["edge_port"]["node"]["router_fqdn"]: None}}}, "extra_vars": extra_vars, } -- GitLab