Skip to content
Snippets Groups Projects
Verified Commit f8638a9f authored by Neda Moeini's avatar Neda Moeini Committed by Karel van Klink
Browse files

Improve Import GÉANT IP.

parent aa0a800f
No related branches found
No related tags found
1 merge request!286Add Edge Port, GÉANT IP and IAS products
...@@ -15,7 +15,7 @@ from pydantic_forms.validators import Divider ...@@ -15,7 +15,7 @@ from pydantic_forms.validators import Divider
from gso.products.product_blocks.bgp_session import BGPSession, IPFamily from gso.products.product_blocks.bgp_session import BGPSession, IPFamily
from gso.products.product_blocks.geant_ip import NRENAccessPortInactive from gso.products.product_blocks.geant_ip import NRENAccessPortInactive
from gso.products.product_blocks.service_binding_port import VLAN_ID, ServiceBindingPort from gso.products.product_blocks.service_binding_port import VLAN_ID, ServiceBindingPortInactive
from gso.products.product_types.edge_port import EdgePort from gso.products.product_types.edge_port import EdgePort
from gso.products.product_types.geant_ip import GeantIPInactive from gso.products.product_types.geant_ip import GeantIPInactive
from gso.services.lso_client import LSOState, lso_interaction from gso.services.lso_client import LSOState, lso_interaction
...@@ -150,7 +150,7 @@ def initialize_subscription( ...@@ -150,7 +150,7 @@ def initialize_subscription(
BGPSession.new(subscription_id=uuid4(), **session, rtbh_enabled=True, is_multi_hop=True) BGPSession.new(subscription_id=uuid4(), **session, rtbh_enabled=True, is_multi_hop=True)
for session in sbp_input["bgp_peers"] for session in sbp_input["bgp_peers"]
] ]
service_binding_port = ServiceBindingPort.new( service_binding_port = ServiceBindingPortInactive.new(
subscription_id=uuid4(), subscription_id=uuid4(),
**sbp_input, **sbp_input,
sbp_bgp_session_list=sbp_bgp_session_list, sbp_bgp_session_list=sbp_bgp_session_list,
......
...@@ -14,7 +14,7 @@ from pydantic_forms.types import UUIDstr ...@@ -14,7 +14,7 @@ from pydantic_forms.types import UUIDstr
from gso.products import ProductName from gso.products import ProductName
from gso.products.product_blocks.bgp_session import BGPSession, IPFamily from gso.products.product_blocks.bgp_session import BGPSession, IPFamily
from gso.products.product_blocks.geant_ip import NRENAccessPortInactive from gso.products.product_blocks.geant_ip import NRENAccessPortInactive
from gso.products.product_blocks.service_binding_port import VLAN_ID, ServiceBindingPort from gso.products.product_blocks.service_binding_port import VLAN_ID, ServiceBindingPortInactive
from gso.products.product_types.edge_port import EdgePort from gso.products.product_types.edge_port import EdgePort
from gso.products.product_types.geant_ip import ImportedGeantIPInactive from gso.products.product_types.geant_ip import ImportedGeantIPInactive
from gso.services.partners import get_partner_by_name from gso.services.partners import get_partner_by_name
...@@ -60,10 +60,7 @@ def initial_input_form_generator() -> FormGenerator: ...@@ -60,10 +60,7 @@ def initial_input_form_generator() -> FormGenerator:
user_input = yield ImportGeantIPForm user_input = yield ImportGeantIPForm
return { return user_input.model_dump()
"partner": user_input.partner,
"initial_input": user_input.dict(),
}
@step("Create subscription") @step("Create subscription")
...@@ -76,16 +73,18 @@ def create_subscription(partner: str) -> dict: ...@@ -76,16 +73,18 @@ def create_subscription(partner: str) -> dict:
@step("Initialize subscription") @step("Initialize subscription")
def initialize_subscription(subscription: ImportedGeantIPInactive, initial_input: dict) -> dict: def initialize_subscription(subscription: ImportedGeantIPInactive, service_binding_ports: list) -> dict:
"""Initialize the subscription with the user input.""" """Initialize the subscription with the user input."""
for service_binding_port in initial_input["service_binding_ports"]: for service_binding_port in service_binding_ports:
edge_port_subscription = EdgePort.from_subscription(service_binding_port["edge_port"]) edge_port_subscription = EdgePort.from_subscription(service_binding_port.pop("edge_port"))
bgp_peers = service_binding_port.pop("bgp_peers")
sbp_bgp_session_list = [ sbp_bgp_session_list = [
BGPSession.new(subscription_id=uuid4(), **session) for session in service_binding_port["bgp_peers"] BGPSession.new(subscription_id=uuid4(), **session) for session in bgp_peers
] ]
ServiceBindingPort.new(
service_binding_port_subscription = ServiceBindingPortInactive.new(
subscription_id=uuid4(), subscription_id=uuid4(),
edge_port=edge_port_subscription, edge_port=edge_port_subscription.edge_port,
sbp_bgp_session_list=sbp_bgp_session_list, sbp_bgp_session_list=sbp_bgp_session_list,
**service_binding_port, **service_binding_port,
) )
...@@ -93,7 +92,7 @@ def initialize_subscription(subscription: ImportedGeantIPInactive, initial_input ...@@ -93,7 +92,7 @@ def initialize_subscription(subscription: ImportedGeantIPInactive, initial_input
NRENAccessPortInactive.new( NRENAccessPortInactive.new(
subscription_id=uuid4(), subscription_id=uuid4(),
nren_ap_type=service_binding_port["ap_type"], nren_ap_type=service_binding_port["ap_type"],
geant_ip_sbp=service_binding_port, geant_ip_sbp=service_binding_port_subscription,
) )
) )
......
...@@ -15,7 +15,7 @@ from gso.services.subscriptions import get_product_id_by_name ...@@ -15,7 +15,7 @@ from gso.services.subscriptions import get_product_id_by_name
def import_geant_ip_subscription(subscription_id: UUIDstr) -> State: def import_geant_ip_subscription(subscription_id: UUIDstr) -> State:
"""Take an ImportedGeantIP subscription, and turn it into an GeantIP subscription.""" """Take an ImportedGeantIP subscription, and turn it into an GeantIP subscription."""
old_geant_ip = ImportedGeantIP.from_subscription(subscription_id) old_geant_ip = ImportedGeantIP.from_subscription(subscription_id)
new_subscription_id = get_product_id_by_name(ProductName.IP_TRUNK) new_subscription_id = get_product_id_by_name(ProductName.GEANT_IP)
new_subscription = GeantIP.from_other_product(old_geant_ip, new_subscription_id) # type: ignore[arg-type] new_subscription = GeantIP.from_other_product(old_geant_ip, new_subscription_id) # type: ignore[arg-type]
return {"subscription": new_subscription} return {"subscription": new_subscription}
......
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