Skip to content
Snippets Groups Projects
Commit 3e47bb90 authored by geant-release-service's avatar geant-release-service
Browse files

Finished release 2.34.

parents 1c867657 0694ffac
Branches
Tags 2.34
No related merge requests found
Pipeline #91644 passed
Showing
with 87 additions and 87 deletions
# Changelog
## [2.34] - 2025-01-27
- Update SharePoint list interaction for L3 Core Services
- Update signature of helper methods that return Subscription objects
## [2.33] - 2025-01-23
- fix a bug in resolve_customer when customer_id is None
- refactor get_partner_by_name to return object instead of dict
......
......@@ -73,3 +73,5 @@ def init_sentry() -> None:
init_sentry()
__all__ = ["init_cli_app", "init_gso_app", "init_sentry"]
......@@ -22,6 +22,7 @@ from gso.services.lso_client import LSOState, lso_interaction
from gso.services.partners import get_partner_by_id
from gso.services.sharepoint import SharePointClient
from gso.services.subscriptions import generate_unique_id
from gso.settings import load_oss_params
from gso.utils.helpers import (
active_edge_port_selector,
partner_choice,
......@@ -334,8 +335,9 @@ def update_dns_records(subscription: L3CoreService) -> State:
@step("Create a new SharePoint checklist item")
def create_new_sharepoint_checklist(subscription: L3CoreService, tt_number: TTNumber) -> State:
def create_new_sharepoint_checklist(subscription: L3CoreService, tt_number: TTNumber, process_id: UUIDstr) -> State:
"""Create a new checklist item in SharePoint for approving this L3 Core Service."""
new_ep = subscription.l3_core_service.ap_list[0].sbp.edge_port
new_list_item_url = SharePointClient().add_list_item(
list_name="l3_core_service",
fields={
......@@ -343,7 +345,8 @@ def create_new_sharepoint_checklist(subscription: L3CoreService, tt_number: TTNu
"TT_NUMBER": tt_number,
"ACTIVITY_TYPE": "Creation",
"PRODUCT_TYPE": subscription.l3_core_service_type,
"LOCATION": subscription.l3_core_service.ap_list[0].sbp.edge_port.node.description,
"LOCATION": f"{new_ep.edge_port_name} {new_ep.edge_port_description} on {new_ep.node.router_fqdn}",
"GAP_PROCESS_URL": f"{load_oss_params().GENERAL.public_hostname}/workflows/{process_id}",
},
)
......
......@@ -4,7 +4,7 @@ from setuptools import find_packages, setup
setup(
name="geant-service-orchestrator",
version="2.33",
version="2.34",
author="GÉANT Orchestration and Automation Team",
author_email="goat@geant.org",
description="GÉANT Service Orchestrator",
......
......@@ -26,7 +26,6 @@ from gso.products.product_blocks.site import SiteTier
from gso.products.product_blocks.switch import SwitchModel
from gso.products.product_types.layer_2_circuit import Layer2CircuitServiceType
from gso.products.product_types.router import Router
from gso.products.product_types.site import Site
from gso.utils.helpers import generate_unique_vc_id, iso_from_ipv4
from gso.utils.shared_enums import Vendor
from gso.utils.types.interfaces import PhysicalPortCapacity
......@@ -70,7 +69,7 @@ def iptrunk_data(temp_file, router_subscription_factory, faker) -> (Path, dict):
"type": IptrunkType.DARK_FIBER,
},
"nodeA": {
"name": side_a_node or Router.from_subscription(router_side_a).router.router_fqdn,
"name": side_a_node or router_side_a.router.router_fqdn,
"ae_name": side_a_ae_name or faker.network_interface(),
"port_ga_id": faker.imported_ga_id(),
"members": side_a_members
......@@ -85,7 +84,7 @@ def iptrunk_data(temp_file, router_subscription_factory, faker) -> (Path, dict):
"ipv6_address": ipv6_network,
},
"nodeB": {
"name": side_b_node or Router.from_subscription(router_side_b).router.router_fqdn,
"name": side_b_node or router_side_b.router.router_fqdn,
"ae_name": side_b_ae_name or faker.network_interface(),
"port_ga_id": faker.imported_ga_id(),
"members": side_b_members
......@@ -136,7 +135,7 @@ def router_data(temp_file, faker, site_subscription_factory):
def _router_data(**kwargs):
mock_ipv4 = faker.ipv4()
router_data = {
"router_site": Site.from_subscription(site_subscription_factory()).site.site_name,
"router_site": site_subscription_factory().site.site_name,
"hostname": str(faker.ipv4()),
"ts_port": faker.port_number(is_user=True),
"router_role": RouterRole.PE,
......@@ -158,7 +157,7 @@ def super_pop_switch_data(temp_file, faker, site_subscription_factory):
def _super_pop_switch_data(**kwargs):
super_pop_switch_data = {
"hostname": str(faker.ipv4()),
"super_pop_switch_site": Site.from_subscription(site_subscription_factory()).site.site_name,
"super_pop_switch_site": site_subscription_factory().site.site_name,
"super_pop_switch_ts_port": faker.port_number(is_user=True),
"super_pop_switch_mgmt_ipv4_address": str(faker.ipv4()),
}
......@@ -175,7 +174,7 @@ def office_router_data(temp_file, faker, site_subscription_factory):
def _office_router_data(**kwargs):
office_router_data = {
"office_router_fqdn": faker.domain_name(levels=4),
"office_router_site": Site.from_subscription(site_subscription_factory()).site.site_name,
"office_router_site": site_subscription_factory().site.site_name,
"office_router_ts_port": faker.port_number(is_user=True),
"office_router_lo_ipv4_address": str(faker.ipv4()),
"office_router_lo_ipv6_address": str(faker.ipv6()),
......@@ -192,7 +191,7 @@ def office_router_data(temp_file, faker, site_subscription_factory):
def opengear_data(temp_file, faker, site_subscription_factory):
def _opengear_data(**kwargs):
opengear_data = {
"opengear_site": Site.from_subscription(site_subscription_factory()).site.site_name,
"opengear_site": site_subscription_factory().site.site_name,
"opengear_hostname": faker.domain_name(levels=4),
"opengear_wan_address": str(faker.ipv4()),
"opengear_wan_netmask": str(faker.ipv4()),
......@@ -212,7 +211,7 @@ def switch_data(temp_file, faker, site_subscription_factory):
switch_data = {
"fqdn": faker.domain_name(levels=4),
"ts_port": faker.port_number(is_user=True),
"site": site_subscription_factory(),
"site": str(site_subscription_factory().subscription_id),
"switch_vendor": Vendor.JUNIPER,
"switch_model": SwitchModel.EX3400_48T,
}
......@@ -231,7 +230,7 @@ def lan_switch_interconnect_data(temp_file, faker, switch_subscription_factory,
"lan_switch_interconnect_description": faker.sentence(),
"minimum_links": 1,
"router_side": {
"node": router_subscription_factory(),
"node": str(router_subscription_factory().subscription_id),
"ae_iface": faker.nokia_lag_interface_name(),
"ae_members": [
{"interface_name": faker.network_interface(), "interface_description": faker.sentence()}
......@@ -239,7 +238,7 @@ def lan_switch_interconnect_data(temp_file, faker, switch_subscription_factory,
],
},
"switch_side": {
"switch": switch_subscription_factory(),
"switch": str(switch_subscription_factory().subscription_id),
"ae_iface": faker.juniper_ae_interface_name(),
"ae_members": [
{"interface_name": faker.network_interface(), "interface_description": faker.sentence()}
......@@ -259,7 +258,7 @@ def lan_switch_interconnect_data(temp_file, faker, switch_subscription_factory,
def edge_port_data(temp_file, faker, router_subscription_factory, partner_factory):
def _edge_port_data(**kwargs):
edge_port_data = {
"node": Router.from_subscription(router_subscription_factory(vendor=Vendor.NOKIA)).router.router_fqdn,
"node": router_subscription_factory(vendor=Vendor.NOKIA).router.router_fqdn,
"service_type": EdgePortType.CUSTOMER,
"speed": PhysicalPortCapacity.TEN_GIGABIT_PER_SECOND,
"encapsulation": EncapsulationType.DOT1Q,
......@@ -298,7 +297,7 @@ def l3_core_service_data(temp_file, faker, partner_factory, edge_port_subscripti
"service_type": "IMPORTED IAS",
"service_binding_ports": [
{
"edge_port": edge_port_subscription_factory(),
"edge_port": str(edge_port_subscription_factory().subscription_id),
"ap_type": "PRIMARY",
"gs_id": faker.imported_gs_id(),
"vlan_id": faker.vlan_id(),
......@@ -346,7 +345,7 @@ def l3_core_service_data(temp_file, faker, partner_factory, edge_port_subscripti
],
},
{
"edge_port": edge_port_subscription_factory(),
"edge_port": str(edge_port_subscription_factory().subscription_id),
"ap_type": "BACKUP",
"gs_id": faker.imported_gs_id(),
"vlan_id": faker.vlan_id(),
......@@ -412,11 +411,11 @@ def layer_2_circuit_data(temp_file, faker, partner_factory, edge_port_subscripti
"gs_id": faker.imported_gs_id(),
"vc_id": generate_unique_vc_id(),
"layer_2_circuit_side_a": {
"edge_port": edge_port_subscription_factory(),
"edge_port": str(edge_port_subscription_factory().subscription_id),
"vlan_id": faker.vlan_id(),
},
"layer_2_circuit_side_b": {
"edge_port": edge_port_subscription_factory(),
"edge_port": str(edge_port_subscription_factory().subscription_id),
"vlan_id": faker.vlan_id(),
},
"layer_2_circuit_type": Layer2CircuitType.TAGGED,
......@@ -644,7 +643,7 @@ def test_import_edge_port_successful(mock_start_process, mock_sleep, edge_port_d
def test_import_edge_port_with_invalid_router(
mock_start_process, mock_sleep, edge_port_data, capfd, router_subscription_factory
):
p_router = router_subscription_factory(vendor=Vendor.NOKIA, router_role=RouterRole.P)
p_router = router_subscription_factory(vendor=Vendor.NOKIA, router_role=RouterRole.P).subscription_id
broken_data = edge_port_data(node=Router.from_subscription(p_router).router.router_fqdn)
import_edge_port(broken_data["path"])
......@@ -732,7 +731,7 @@ def test_import_l3_core_service_with_invalid_edge_port(
},
},
{
"edge_port": edge_port_subscription_factory(),
"edge_port": str(edge_port_subscription_factory().subscription_id),
"ap_type": "BACKUP",
"gs_id": faker.imported_gs_id(),
"vlan_id": faker.vlan_id(),
......
import pytest
from orchestrator.db import db
from orchestrator.domain import SubscriptionModel
from orchestrator.types import SubscriptionLifecycle, UUIDstr
from orchestrator.types import SubscriptionLifecycle
from gso.products import ProductName
from gso.products.product_blocks.edge_port import (
......@@ -10,7 +10,6 @@ from gso.products.product_blocks.edge_port import (
EncapsulationType,
)
from gso.products.product_types.edge_port import EdgePortInactive, ImportedEdgePortInactive
from gso.products.product_types.router import Router
from gso.services import subscriptions
from gso.utils.shared_enums import Vendor
from gso.utils.types.interfaces import PhysicalPortCapacity
......@@ -38,9 +37,9 @@ def edge_port_subscription_factory(faker, partner_factory, router_subscription_f
enable_lacp=True,
ignore_if_down=False,
is_imported=False,
) -> UUIDstr:
) -> SubscriptionModel:
partner = partner or partner_factory()
node = node or Router.from_subscription(router_subscription_factory(vendor=Vendor.NOKIA)).router
node = node or router_subscription_factory(vendor=Vendor.NOKIA).router
if is_imported:
product_id = subscriptions.get_product_id_by_name(ProductName.IMPORTED_EDGE_PORT)
......@@ -91,6 +90,6 @@ def edge_port_subscription_factory(faker, partner_factory, router_subscription_f
edge_port_subscription.save()
db.session.commit()
return str(edge_port_subscription.subscription_id)
return edge_port_subscription
return subscription_create
import pytest
from orchestrator.db import db
from orchestrator.domain import SubscriptionModel
from orchestrator.types import SubscriptionLifecycle, UUIDstr
from orchestrator.types import SubscriptionLifecycle
from gso.products import ProductName
from gso.products.product_blocks.iptrunk import (
......@@ -10,7 +10,6 @@ from gso.products.product_blocks.iptrunk import (
IptrunkType,
)
from gso.products.product_types.iptrunk import ImportedIptrunkInactive, IptrunkInactive
from gso.products.product_types.router import Router
from gso.services import subscriptions
from gso.utils.shared_enums import Vendor
from gso.utils.types.interfaces import PhysicalPortCapacity
......@@ -27,9 +26,9 @@ def iptrunk_side_subscription_factory(router_subscription_factory, faker):
) -> IptrunkSideBlock:
return IptrunkSideBlock.new(
faker.uuid4(),
iptrunk_side_node=Router.from_subscription(
iptrunk_side_node or router_subscription_factory(vendor=Vendor.NOKIA)
).router,
iptrunk_side_node=iptrunk_side_node.router
if iptrunk_side_node
else router_subscription_factory(vendor=Vendor.NOKIA).router,
iptrunk_side_ae_iface=iptrunk_side_ae_iface or faker.pystr(),
ga_id=ga_id or faker.ga_id(),
iptrunk_side_ae_members=iptrunk_side_ae_members
......@@ -68,7 +67,7 @@ def iptrunk_subscription_factory(iptrunk_side_subscription_factory, faker, geant
partner: dict | None = None,
*,
is_imported: bool | None = False,
) -> UUIDstr:
) -> SubscriptionModel:
if partner is None:
partner = geant_partner
......@@ -117,6 +116,6 @@ def iptrunk_subscription_factory(iptrunk_side_subscription_factory, faker, geant
iptrunk_subscription.save()
db.session.commit()
return str(iptrunk_subscription.subscription_id)
return iptrunk_subscription
return subscription_create
......@@ -4,7 +4,7 @@ from uuid import uuid4
import pytest
from orchestrator.db import db
from orchestrator.domain import SubscriptionModel
from orchestrator.types import SubscriptionLifecycle, UUIDstr
from orchestrator.types import SubscriptionLifecycle
from pydantic import NonNegativeInt
from gso.products import ProductName
......@@ -114,7 +114,7 @@ def service_binding_port_factory(
bgp_session_subscription_factory(families=[IPFamily.V4UNICAST]),
bgp_session_subscription_factory(families=[IPFamily.V6UNICAST], peer_address=faker.ipv6()),
],
edge_port=edge_port or EdgePort.from_subscription(edge_port_subscription_factory()).edge_port,
edge_port=edge_port or edge_port_subscription_factory().edge_port,
v4_bfd_settings=v4_bfd_settings or bfd_settings_factory(),
v6_bfd_settings=v6_bfd_settings or bfd_settings_factory(),
)
......@@ -152,7 +152,7 @@ def l3_core_service_subscription_factory(
start_date="2023-05-24T00:00:00+00:00",
status: SubscriptionLifecycle | None = None,
edge_port: EdgePort | None = None,
) -> UUIDstr:
) -> SubscriptionModel:
partner = partner or partner_factory()
match l3_core_service_type:
case L3CoreServiceType.GEANT_IP:
......@@ -227,6 +227,6 @@ def l3_core_service_subscription_factory(
db.session.commit()
return str(l3_core_service_subscription.subscription_id)
return l3_core_service_subscription
return create_l3_core_service_subscription
......@@ -15,8 +15,6 @@ from gso.products.product_types.lan_switch_interconnect import (
ImportedLanSwitchInterconnectInactive,
LanSwitchInterconnectInactive,
)
from gso.products.product_types.router import Router
from gso.products.product_types.switch import Switch
from gso.services.subscriptions import get_product_id_by_name
from gso.utils.types.virtual_identifiers import (
DEFAULT_DCN_MANAGEMENT_VLAN_ID,
......@@ -41,12 +39,12 @@ def lan_switch_interconnect_subscription_factory(
router_side_node: UUIDstr | None = None,
router_side_ae_iface: str | None = None,
router_side_ae_members: list[dict[str, str]] | None = None,
switch_side_switch: UUIDstr | None = None,
switch_side_switch: SubscriptionModel | None = None,
switch_side_ae_iface: str | None = None,
switch_side_ae_members: list[dict[str, str]] | None = None,
*,
is_imported: bool | None = False,
) -> UUIDstr:
) -> SubscriptionModel:
if partner is None:
partner = geant_partner
if is_imported:
......@@ -75,13 +73,13 @@ def lan_switch_interconnect_subscription_factory(
subscription.lan_switch_interconnect.minimum_links = minimum_links or 1
subscription.lan_switch_interconnect.router_side = LanSwitchInterconnectRouterSideBlockInactive.new(
uuid4(),
node=router_side_node or Router.from_subscription(router_subscription_factory()).router,
node=router_side_node or router_subscription_factory().router,
ae_iface=router_side_ae_iface or faker.network_interface(),
ae_members=router_side_ae_members,
)
subscription.lan_switch_interconnect.switch_side = LanSwitchInterconnectSwitchSideBlockInactive.new(
uuid4(),
switch=switch_side_switch or Switch.from_subscription(switch_subscription_factory()).switch,
switch=switch_side_switch.site if switch_side_switch else switch_subscription_factory().switch,
ae_iface=switch_side_ae_iface or faker.network_interface(),
ae_members=switch_side_ae_members,
)
......@@ -103,6 +101,6 @@ def lan_switch_interconnect_subscription_factory(
subscription.save()
db.session.commit()
return str(subscription.subscription_id)
return subscription
return create_subscription
......@@ -41,7 +41,7 @@ def layer_2_circuit_subscription_factory(faker, geant_partner, edge_port_subscri
gs_id: str | None = None,
*,
policer_enabled: bool = False,
) -> UUIDstr:
) -> SubscriptionModel:
# Assign default partner if none provided
if partner is None:
partner = geant_partner
......@@ -74,8 +74,14 @@ def layer_2_circuit_subscription_factory(faker, geant_partner, edge_port_subscri
layer_2_circuit_sides = []
for edge_port, vlan_id in [
(layer_2_circuit_side_a_edgeport or edge_port_subscription_factory(), vlan_id_side_a or faker.vlan_id()),
(layer_2_circuit_side_b_edgeport or edge_port_subscription_factory(), vlan_id_side_b or faker.vlan_id()),
(
layer_2_circuit_side_a_edgeport or str(edge_port_subscription_factory().subscription_id),
vlan_id_side_a or faker.vlan_id(),
),
(
layer_2_circuit_side_b_edgeport or str(edge_port_subscription_factory().subscription_id),
vlan_id_side_b or faker.vlan_id(),
),
]:
sbp = ServiceBindingPortInactive.new(
uuid4(),
......@@ -119,6 +125,6 @@ def layer_2_circuit_subscription_factory(faker, geant_partner, edge_port_subscri
subscription.save()
db.session.commit()
return str(subscription.subscription_id)
return subscription
return create_subscription
......@@ -3,11 +3,10 @@ import ipaddress
import pytest
from orchestrator.db import db
from orchestrator.domain import SubscriptionModel
from orchestrator.types import SubscriptionLifecycle, UUIDstr
from orchestrator.types import SubscriptionLifecycle
from gso.products import ProductName
from gso.products.product_types.office_router import ImportedOfficeRouterInactive, OfficeRouterInactive
from gso.products.product_types.site import Site
from gso.services import subscriptions
from gso.utils.shared_enums import Vendor
......@@ -26,7 +25,7 @@ def office_router_subscription_factory(site_subscription_factory, faker, geant_p
partner: dict | None = None,
*,
is_imported: bool | None = False,
) -> UUIDstr:
) -> SubscriptionModel:
if partner is None:
partner = geant_partner
......@@ -52,7 +51,7 @@ def office_router_subscription_factory(site_subscription_factory, faker, geant_p
office_router_subscription.office_router.office_router_ts_port = office_router_ts_port
office_router_subscription.office_router.office_router_lo_ipv4_address = office_router_lo_ipv4_address
office_router_subscription.office_router.office_router_lo_ipv6_address = office_router_lo_ipv6_address
office_router_subscription.office_router.office_router_site = Site.from_subscription(office_router_site).site
office_router_subscription.office_router.office_router_site = office_router_site.site
office_router_subscription.office_router.vendor = Vendor.NOKIA
office_router_subscription = SubscriptionModel.from_other_lifecycle(
......@@ -67,6 +66,6 @@ def office_router_subscription_factory(site_subscription_factory, faker, geant_p
office_router_subscription.save()
db.session.commit()
return str(office_router_subscription.subscription_id)
return office_router_subscription
return subscription_create
import pytest
from orchestrator.db import db
from orchestrator.domain import SubscriptionModel
from orchestrator.types import SubscriptionLifecycle, UUIDstr
from orchestrator.types import SubscriptionLifecycle
from gso.products import ProductName
from gso.products.product_types.opengear import ImportedOpengearInactive, OpengearInactive
from gso.products.product_types.site import Site
from gso.services import subscriptions
......@@ -23,7 +22,7 @@ def opengear_subscription_factory(site_subscription_factory, faker, geant_partne
partner: dict | None = None,
*,
is_imported: bool | None = False,
) -> UUIDstr:
) -> SubscriptionModel:
if partner is None:
partner = geant_partner
......@@ -45,7 +44,7 @@ def opengear_subscription_factory(site_subscription_factory, faker, geant_partne
product_id, customer_id=partner["partner_id"], insync=True
)
opengear_subscription.opengear.opengear_site = Site.from_subscription(opengear_site).site
opengear_subscription.opengear.opengear_site = opengear_site.site
opengear_subscription.opengear.opengear_hostname = opengear_hostname
opengear_subscription.opengear.opengear_wan_address = opengear_wan_address
opengear_subscription.opengear.opengear_wan_netmask = opengear_wan_netmask
......@@ -63,6 +62,6 @@ def opengear_subscription_factory(site_subscription_factory, faker, geant_partne
opengear_subscription.save()
db.session.commit()
return str(opengear_subscription.subscription_id)
return opengear_subscription
return subscription_create
......@@ -3,12 +3,11 @@ import ipaddress
import pytest
from orchestrator.db import db
from orchestrator.domain import SubscriptionModel
from orchestrator.types import SubscriptionLifecycle, UUIDstr
from orchestrator.types import SubscriptionLifecycle
from gso.products import ProductName
from gso.products.product_blocks.router import RouterRole
from gso.products.product_types.router import ImportedRouterInactive, RouterInactive
from gso.products.product_types.site import Site
from gso.services import subscriptions
from gso.utils.helpers import iso_from_ipv4
from gso.utils.shared_enums import Vendor
......@@ -33,7 +32,7 @@ def router_subscription_factory(site_subscription_factory, faker, geant_partner)
*,
router_access_via_ts: bool | None = None,
is_imported: bool | None = False,
) -> UUIDstr:
) -> SubscriptionModel:
if partner is None:
partner = geant_partner
if is_imported:
......@@ -58,7 +57,7 @@ def router_subscription_factory(site_subscription_factory, faker, geant_partner)
)
router_subscription.router.router_lo_iso_address = router_lo_iso_address or iso_from_ipv4(faker.ipv4())
router_subscription.router.router_role = router_role
router_subscription.router.router_site = Site.from_subscription(router_site or site_subscription_factory()).site
router_subscription.router.router_site = router_site.site if router_site else site_subscription_factory().site
router_subscription.router.vendor = vendor
router_subscription = SubscriptionModel.from_other_lifecycle(router_subscription, SubscriptionLifecycle.ACTIVE)
......@@ -72,6 +71,6 @@ def router_subscription_factory(site_subscription_factory, faker, geant_partner)
router_subscription.save()
db.session.commit()
return str(router_subscription.subscription_id)
return router_subscription
return subscription_create
import pytest
from orchestrator.db import db
from orchestrator.domain import SubscriptionModel
from orchestrator.types import SubscriptionLifecycle, UUIDstr
from orchestrator.types import SubscriptionLifecycle
from gso.products import ProductName
from gso.products.product_blocks.site import SiteTier
......@@ -32,7 +32,7 @@ def site_subscription_factory(faker, geant_partner):
*,
is_imported: bool | None = False,
site_contains_optical_equipment: bool | None = True,
) -> UUIDstr:
) -> SubscriptionModel:
if partner is None:
partner = geant_partner
......@@ -66,6 +66,6 @@ def site_subscription_factory(faker, geant_partner):
site_subscription.save()
db.session.commit()
return str(site_subscription.subscription_id)
return site_subscription
return subscription_create
......@@ -3,10 +3,9 @@ import ipaddress
import pytest
from orchestrator.db import db
from orchestrator.domain import SubscriptionModel
from orchestrator.types import SubscriptionLifecycle, UUIDstr
from orchestrator.types import SubscriptionLifecycle
from gso.products import ProductName
from gso.products.product_types.site import Site
from gso.products.product_types.super_pop_switch import ImportedSuperPopSwitchInactive, SuperPopSwitchInactive
from gso.services import subscriptions
from gso.utils.shared_enums import Vendor
......@@ -25,7 +24,7 @@ def super_pop_switch_subscription_factory(site_subscription_factory, faker, gean
partner: dict | None = None,
*,
is_imported: bool | None = False,
) -> UUIDstr:
) -> SubscriptionModel:
if partner is None:
partner = geant_partner
......@@ -51,9 +50,7 @@ def super_pop_switch_subscription_factory(site_subscription_factory, faker, gean
super_pop_switch_subscription.super_pop_switch.super_pop_switch_mgmt_ipv4_address = (
super_pop_switch_mgmt_ipv4_address
)
super_pop_switch_subscription.super_pop_switch.super_pop_switch_site = Site.from_subscription(
super_pop_switch_site
).site
super_pop_switch_subscription.super_pop_switch.super_pop_switch_site = super_pop_switch_site.site
super_pop_switch_subscription.super_pop_switch.vendor = Vendor.NOKIA
super_pop_switch_subscription = SubscriptionModel.from_other_lifecycle(
......@@ -68,6 +65,6 @@ def super_pop_switch_subscription_factory(site_subscription_factory, faker, gean
super_pop_switch_subscription.save()
db.session.commit()
return str(super_pop_switch_subscription.subscription_id)
return super_pop_switch_subscription
return subscription_create
......@@ -6,7 +6,6 @@ from pydantic_forms.types import UUIDstr
from gso.products import ProductName
from gso.products.product_blocks.switch import SwitchModel
from gso.products.product_types.site import Site
from gso.products.product_types.switch import ImportedSwitchInactive, SwitchInactive
from gso.services.subscriptions import get_product_id_by_name
from gso.utils.shared_enums import Vendor
......@@ -27,7 +26,7 @@ def switch_subscription_factory(faker, geant_partner, site_subscription_factory)
status: SubscriptionLifecycle | None = None,
*,
is_imported: bool = False,
) -> UUIDstr:
) -> SubscriptionModel:
if partner is None:
partner = geant_partner
if is_imported:
......@@ -40,7 +39,7 @@ def switch_subscription_factory(faker, geant_partner, site_subscription_factory)
switch_subscription.switch.fqdn = fqdn or faker.domain_name(levels=4)
switch_subscription.switch.ts_port = ts_port or faker.port_number(is_user=True)
switch_subscription.switch.site = site or Site.from_subscription(site_subscription_factory()).site
switch_subscription.switch.site = site or site_subscription_factory().site
switch_subscription.switch.switch_vendor = switch_vendor or Vendor.JUNIPER
switch_subscription.switch.switch_model = switch_model or SwitchModel.EX3400_24T
......@@ -55,6 +54,6 @@ def switch_subscription_factory(faker, geant_partner, site_subscription_factory)
switch_subscription.save()
db.session.commit()
return str(switch_subscription.subscription_id)
return switch_subscription
return subscription_create
......@@ -2,7 +2,6 @@ import pytest
from orchestrator.db import db
from orchestrator.domain import SubscriptionModel
from orchestrator.types import SubscriptionLifecycle
from pydantic_forms.types import UUIDstr
from gso.products import ProductName
from gso.products.product_types.vrf import VRFInactive
......@@ -20,7 +19,7 @@ def vrf_subscription_factory(faker, geant_partner):
route_target: str | None = None,
vrf_as_number: int | None = None,
status: SubscriptionLifecycle | None = None,
) -> UUIDstr:
) -> SubscriptionModel:
if partner is None:
partner = geant_partner
product_id = get_product_id_by_name(ProductName.VRF)
......@@ -40,6 +39,6 @@ def vrf_subscription_factory(faker, geant_partner):
vrf_subscription.save()
db.session.commit()
return str(vrf_subscription.subscription_id)
return vrf_subscription
return subscription_create
......@@ -5,8 +5,6 @@ from orchestrator.types import SubscriptionLifecycle
from gso.products.product_blocks.iptrunk import IptrunkInterfaceBlock
from gso.products.product_blocks.router import RouterRole
from gso.products.product_types.router import Router
from gso.products.product_types.site import Site
from gso.utils.helpers import (
available_interfaces_choices_including_current_members,
generate_inventory_for_routers,
......@@ -104,7 +102,7 @@ def test_tt_number(generate_tt_numbers):
def test_generate_inventory_for_active_routers_with_single_active_router(router_subscription_factory):
"""Test the generation of inventory for a single active P router."""
router = Router.from_subscription(router_subscription_factory(router_role=RouterRole.P))
router = router_subscription_factory(router_role=RouterRole.P)
expected_result = {
"all": {
"hosts": {
......@@ -139,7 +137,7 @@ def test_generate_inventory_for_active_routers_with_excluded_router(router_subsc
for _ in range(5):
router_subscription_factory(router_role=RouterRole.P)
router = router_subscription_factory(router_role=RouterRole.P)
excluded_routers = [Router.from_subscription(router).router.router_fqdn]
excluded_routers = [router.router.router_fqdn]
inventory = generate_inventory_for_routers(RouterRole.P, exclude_routers=excluded_routers)
assert len(inventory["all"]["hosts"]) == 5 # 6 P routers, the last one is excluded, so 5 P routers are left.
......@@ -150,7 +148,7 @@ def test_generate_lan_switch_interconnect_subnet_v4(execution_count, site_subscr
We need to ensure that the third octet of the new subnet is set correctly from the Site internal ID.
"""
site = Site.from_subscription(site_subscription_factory())
site = site_subscription_factory()
assert (
str(generate_lan_switch_interconnect_subnet_v4(site.site.site_internal_id))
== f"10.2.{site.site.site_internal_id}.0/24"
......@@ -159,7 +157,7 @@ def test_generate_lan_switch_interconnect_subnet_v4(execution_count, site_subscr
@pytest.mark.parametrize("execution_count", range(10))
def test_generate_lan_switch_interconnect_subnet_v6(execution_count, site_subscription_factory):
site = Site.from_subscription(site_subscription_factory())
site = site_subscription_factory()
assert (
str(generate_lan_switch_interconnect_subnet_v6(site.site.site_internal_id))
== f"beef:cafe:0:{hex(site.site.site_internal_id).split("x")[-1]}::/64"
......
......@@ -46,7 +46,7 @@ def _netbox_client_mock():
def input_form_wizard_data(request, router_subscription_factory, partner_factory, faker):
create_edge_port_step = {
"tt_number": faker.tt_number(),
"node": router_subscription_factory(vendor=Vendor.NOKIA),
"node": str(router_subscription_factory(vendor=Vendor.NOKIA).subscription_id),
"partner": partner_factory(name="GAAR", email=faker.email())["partner_id"],
"service_type": EdgePortType.PUBLIC,
"enable_lacp": True,
......
......@@ -11,7 +11,7 @@ from test.workflows import assert_complete, extract_state, run_workflow
@pytest.fixture()
def imported_edge_port_creation_input_form_data(router_subscription_factory, partner_factory, faker):
return {
"node": router_subscription_factory(vendor=Vendor.NOKIA),
"node": str(router_subscription_factory(vendor=Vendor.NOKIA).subscription_id),
"service_type": EdgePortType.CUSTOMER,
"speed": PhysicalPortCapacity.TEN_GIGABIT_PER_SECOND,
"encapsulation": EncapsulationType.DOT1Q,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment