Skip to content
Snippets Groups Projects
Commit f11acd44 authored by Neda Moeini's avatar Neda Moeini Committed by Mohammad Torkashvand
Browse files

Update create Iptrunk WF

parent 66bf227e
No related branches found
No related tags found
1 merge request!324Feature/manage sid and gids
......@@ -57,7 +57,11 @@ from gso.services.lso_client import LSOState, lso_interaction
from gso.services.netbox_client import NetboxClient
from gso.services.partners import get_partner_by_name
from gso.services.sharepoint import SharePointClient
from gso.services.subscriptions import get_non_terminated_iptrunk_subscriptions
from gso.services.subscriptions import (
generate_unique_ga_id,
generate_unique_gs_id,
get_non_terminated_iptrunk_subscriptions,
)
from gso.settings import load_oss_params
from gso.utils.helpers import (
available_interfaces_choices,
......@@ -86,7 +90,6 @@ def initial_input_form_generator(product_name: str) -> FormGenerator:
tt_number: TTNumber
partner: ReadOnlyField("GEANT", default_type=str) # type: ignore[valid-type]
gs_id: str | None = None
iptrunk_description: str | None = None
iptrunk_type: IptrunkType
iptrunk_speed: PhysicalPortCapacity
......@@ -144,7 +147,6 @@ def initial_input_form_generator(product_name: str) -> FormGenerator:
model_config = ConfigDict(title=f"Provide subscription details for side A of the trunk. ({router_a_fqdn})")
side_a_ae_iface: available_lags_choices(router_a) or str # type: ignore[valid-type]
side_a_ga_id: str | None
side_a_ae_members: ae_members_side_a_type
user_input_side_a = yield CreateIptrunkSideAForm
......@@ -182,7 +184,6 @@ def initial_input_form_generator(product_name: str) -> FormGenerator:
model_config = ConfigDict(title=f"Provide subscription details for side B of the trunk. ({router_b_fqdn})")
side_b_ae_iface: available_lags_choices(router_b) or str # type: ignore[valid-type]
side_b_ga_id: str | None
side_b_ae_members: ae_members_side_b
user_input_side_b = yield CreateIptrunkSideBForm
......@@ -196,7 +197,6 @@ def initial_input_form_generator(product_name: str) -> FormGenerator:
)
summary_form_data = input_forms_data | {"side_a_node": router_a_fqdn, "side_b_node": router_b_fqdn}
summary_fields = [
"gs_id",
"iptrunk_type",
"iptrunk_speed",
"iptrunk_description",
......@@ -204,11 +204,9 @@ def initial_input_form_generator(product_name: str) -> FormGenerator:
"side_a_node",
"side_a_ae_iface",
"side_a_ae_members",
"side_a_ga_id",
"side_b_node",
"side_b_ae_iface",
"side_b_ae_members",
"side_b_ga_id",
]
yield from create_summary_form(summary_form_data, product_name, summary_fields)
......@@ -322,24 +320,22 @@ def ping_all_hosts_v6(new_ipv6_network: str) -> State:
@step("Initialize subscription")
def initialize_subscription(
subscription: IptrunkInactive,
gs_id: str | None,
iptrunk_type: IptrunkType,
iptrunk_description: str | None,
iptrunk_speed: PhysicalPortCapacity,
iptrunk_minimum_links: int,
side_a_node_id: str,
side_a_ae_iface: str,
side_a_ga_id: str | None,
side_a_ae_members: list[dict],
side_b_node_id: str,
side_b_ae_iface: str,
side_b_ga_id: str | None,
side_b_ae_members: list[dict],
) -> State:
"""Take all input from the user, and store it in the database."""
oss_params = load_oss_params()
side_a = Router.from_subscription(side_a_node_id).router
side_b = Router.from_subscription(side_b_node_id).router
gs_id = generate_unique_gs_id()
subscription.iptrunk.gs_id = gs_id
subscription.iptrunk.iptrunk_description = iptrunk_description
subscription.iptrunk.iptrunk_type = iptrunk_type
......@@ -349,6 +345,7 @@ def initialize_subscription(
subscription.iptrunk.iptrunk_sides[0].iptrunk_side_node = side_a
subscription.iptrunk.iptrunk_sides[0].iptrunk_side_ae_iface = side_a_ae_iface
side_a_ga_id = generate_unique_ga_id()
subscription.iptrunk.iptrunk_sides[0].ga_id = side_a_ga_id
for member in side_a_ae_members:
subscription.iptrunk.iptrunk_sides[0].iptrunk_side_ae_members.append(
......@@ -357,6 +354,7 @@ def initialize_subscription(
subscription.iptrunk.iptrunk_sides[1].iptrunk_side_node = side_b
subscription.iptrunk.iptrunk_sides[1].iptrunk_side_ae_iface = side_b_ae_iface
side_b_ga_id = generate_unique_ga_id()
subscription.iptrunk.iptrunk_sides[1].ga_id = side_b_ga_id
for member in side_b_ae_members:
subscription.iptrunk.iptrunk_sides[1].iptrunk_side_ae_members.append(
......
......@@ -65,7 +65,6 @@ def input_form_wizard_data(request, router_subscription_factory, faker):
create_ip_trunk_step = {
"tt_number": faker.tt_number(),
"gs_id": faker.geant_sid(),
"iptrunk_type": IptrunkType.DARK_FIBER,
"iptrunk_description": faker.sentence(),
"iptrunk_speed": PhysicalPortCapacity.HUNDRED_GIGABIT_PER_SECOND,
......@@ -75,7 +74,6 @@ def input_form_wizard_data(request, router_subscription_factory, faker):
create_ip_trunk_side_a_router_name = {"side_a_node_id": router_side_a}
create_ip_trunk_side_a_step = {
"side_a_ae_iface": "lag-1",
"side_a_ga_id": None,
"side_a_ae_members": [
{
"interface_name": f"Interface{interface}",
......@@ -87,7 +85,6 @@ def input_form_wizard_data(request, router_subscription_factory, faker):
create_ip_trunk_side_b_router_name = {"side_b_node_id": router_side_b}
create_ip_trunk_side_b_step = {
"side_b_ae_iface": "lag-4",
"side_b_ga_id": faker.geant_sid(),
"side_b_ae_members": side_b_members,
}
summary_view_step = {}
......@@ -153,8 +150,9 @@ def test_successful_iptrunk_creation_with_standard_lso_result(
subscription.iptrunk.iptrunk_sides[1].iptrunk_side_node.router_site.site_name,
])
assert subscription.status == "provisioning"
assert subscription.iptrunk.gs_id is not None
assert subscription.description == (
f"IP trunk {sorted_sides[0]} {sorted_sides[1]}, gs_id:{input_form_wizard_data[0]["gs_id"]}"
f"IP trunk {sorted_sides[0]} {sorted_sides[1]}, gs_id:{subscription.iptrunk.gs_id}"
)
assert mock_execute_playbook.call_count == 6
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment