diff --git a/gso/api/v1/network.py b/gso/api/v1/network.py index e4a19de9e90475f70261e4bf408498de68a95af9..e1a157990178a7d5e3efc242c041b870b51f3dc5 100644 --- a/gso/api/v1/network.py +++ b/gso/api/v1/network.py @@ -10,6 +10,8 @@ from orchestrator.security import authorize from orchestrator.services.subscriptions import build_extended_domain_model from starlette import status +from gso.annotations.coordinates import LatitudeCoordinate, LongitudeCoordinate +from gso.annotations.interfaces import PhysicalPortCapacity from gso.products.product_blocks.iptrunk import IptrunkType from gso.products.product_blocks.router import RouterRole from gso.services.subscriptions import get_active_iptrunk_subscriptions diff --git a/gso/workflows/iptrunk/create_imported_iptrunk.py b/gso/workflows/iptrunk/create_imported_iptrunk.py index 4d75437504ac6536cf56c8b2f5231bea0a937db8..a03ce8df91752bedfbc3f3d27b60a3e1b10533e3 100644 --- a/gso/workflows/iptrunk/create_imported_iptrunk.py +++ b/gso/workflows/iptrunk/create_imported_iptrunk.py @@ -13,6 +13,7 @@ from orchestrator.workflows.steps import resync, set_status, store_process_subsc from pydantic import AfterValidator, ConfigDict from pydantic_forms.validators import validate_unique_list +from gso.annotations.interfaces import LAGMember, LAGMemberList, PhysicalPortCapacity from gso.products import ProductName from gso.products.product_blocks.iptrunk import IptrunkInterfaceBlockInactive, IptrunkType from gso.products.product_types.iptrunk import ImportedIptrunkInactive diff --git a/gso/workflows/iptrunk/create_iptrunk.py b/gso/workflows/iptrunk/create_iptrunk.py index e10401186d3731923dc92d398bc93a0d617465fb..8dda847987a68be3b5c860da043e6feb28d8f115 100644 --- a/gso/workflows/iptrunk/create_iptrunk.py +++ b/gso/workflows/iptrunk/create_iptrunk.py @@ -20,6 +20,9 @@ from pydantic import ConfigDict from pydantic_forms.validators import ReadOnlyField from pynetbox.models.dcim import Interfaces +from gso.annotations.interfaces import JuniperLAGMember, LAGMember, LAGMemberList, PhysicalPortCapacity +from gso.annotations.netbox_router import NetboxEnabledRouter +from gso.annotations.tt_number import TTNumber from gso.products.product_blocks.iptrunk import ( IptrunkInterfaceBlockInactive, IptrunkSideBlockInactive, diff --git a/gso/workflows/iptrunk/migrate_iptrunk.py b/gso/workflows/iptrunk/migrate_iptrunk.py index 5a7cafb03dad77270754cdb9da8a1c57ba84182e..5afc1e43deb7d36d055130659aa196f7b8b9dc2f 100644 --- a/gso/workflows/iptrunk/migrate_iptrunk.py +++ b/gso/workflows/iptrunk/migrate_iptrunk.py @@ -24,6 +24,8 @@ from pydantic import ConfigDict from pydantic_forms.validators import ReadOnlyField from pynetbox.models.dcim import Interfaces +from gso.annotations.interfaces import JuniperAEInterface, JuniperLAGMember, LAGMember, LAGMemberList +from gso.annotations.tt_number import TTNumber from gso.products.product_blocks.iptrunk import IptrunkInterfaceBlock, IptrunkType from gso.products.product_types.iptrunk import Iptrunk from gso.products.product_types.router import Router diff --git a/gso/workflows/iptrunk/modify_trunk_interface.py b/gso/workflows/iptrunk/modify_trunk_interface.py index 16de246238a40f40341cf2911b59471cb956df8b..a43e3634808022124881e3b250b1d2bdeeff43cc 100644 --- a/gso/workflows/iptrunk/modify_trunk_interface.py +++ b/gso/workflows/iptrunk/modify_trunk_interface.py @@ -15,6 +15,8 @@ from orchestrator.workflows.utils import wrap_modify_initial_input_form from pydantic import ConfigDict from pydantic_forms.validators import Label, ReadOnlyField +from gso.annotations.interfaces import JuniperLAGMember, LAGMember, LAGMemberList, PhysicalPortCapacity +from gso.annotations.tt_number import TTNumber from gso.products.product_blocks.iptrunk import ( IptrunkInterfaceBlock, IptrunkSideBlock, diff --git a/gso/workflows/iptrunk/terminate_iptrunk.py b/gso/workflows/iptrunk/terminate_iptrunk.py index 9b5cf71a88011e68f2cda4202a6e92e3e381b31e..e86a61eb2c2249c221127a4fafa0165704ca197b 100644 --- a/gso/workflows/iptrunk/terminate_iptrunk.py +++ b/gso/workflows/iptrunk/terminate_iptrunk.py @@ -17,6 +17,7 @@ from orchestrator.workflows.steps import ( ) from orchestrator.workflows.utils import wrap_modify_initial_input_form +from gso.annotations.tt_number import TTNumber from gso.products.product_blocks.iptrunk import IptrunkSideBlock from gso.products.product_types.iptrunk import Iptrunk from gso.services import infoblox diff --git a/gso/workflows/lan_switch_interconnect/create_lan_switch_interconnect.py b/gso/workflows/lan_switch_interconnect/create_lan_switch_interconnect.py index 973cf1d88495b4343e390c258d16c3c9f78f65c9..de28e1cedd46321917114179dd5e85c55b5f4c0a 100644 --- a/gso/workflows/lan_switch_interconnect/create_lan_switch_interconnect.py +++ b/gso/workflows/lan_switch_interconnect/create_lan_switch_interconnect.py @@ -13,6 +13,15 @@ from orchestrator.workflows.utils import wrap_create_initial_input_form from pydantic import AfterValidator, ConfigDict from pydantic_forms.validators import Divider, ReadOnlyField +from gso.annotations.interfaces import ( + JuniperAEInterface, + JuniperLAGMember, + JuniperPhyInterface, + LAGMember, + PhysicalPortCapacity, + validate_interface_names_are_unique, +) +from gso.annotations.tt_number import TTNumber from gso.products.product_blocks.lan_switch_interconnect import ( LanSwitchInterconnectAddressSpace, LanSwitchInterconnectInterfaceBlockInactive, diff --git a/gso/workflows/router/create_router.py b/gso/workflows/router/create_router.py index 04d38b750f5fa4ca87591f7affe04674208685bf..8a0fc9b78d77720e5bfb80db9910d2b293a0d405 100644 --- a/gso/workflows/router/create_router.py +++ b/gso/workflows/router/create_router.py @@ -14,6 +14,7 @@ from orchestrator.workflows.utils import wrap_create_initial_input_form from pydantic import ConfigDict, model_validator from pydantic_forms.validators import ReadOnlyField +from gso.annotations.tt_number import TTNumber from gso.products.product_blocks.router import RouterRole from gso.products.product_types.router import RouterInactive, RouterProvisioning from gso.products.product_types.site import Site diff --git a/gso/workflows/router/promote_p_to_pe.py b/gso/workflows/router/promote_p_to_pe.py index a82b4823f4374772ef2b5365f3f57ea56fad1017..0b7ddf3bda0c1e259d60a40872fe5f64e51e5195 100644 --- a/gso/workflows/router/promote_p_to_pe.py +++ b/gso/workflows/router/promote_p_to_pe.py @@ -15,6 +15,7 @@ from orchestrator.workflows.steps import resync, store_process_subscription, uns from orchestrator.workflows.utils import wrap_modify_initial_input_form from pydantic import ConfigDict, model_validator +from gso.annotations.tt_number import TTNumber from gso.products.product_blocks.router import RouterRole from gso.products.product_types.router import Router from gso.services.kentik_client import KentikClient, NewKentikDevice diff --git a/gso/workflows/router/terminate_router.py b/gso/workflows/router/terminate_router.py index 9bc48f8ce9943692f8c475b1595d33e9964645f7..dfe846abd409f8e7d138a61b4a547f2eebc88506 100644 --- a/gso/workflows/router/terminate_router.py +++ b/gso/workflows/router/terminate_router.py @@ -20,6 +20,7 @@ from orchestrator.workflows.steps import ( from orchestrator.workflows.utils import wrap_modify_initial_input_form from requests import HTTPError +from gso.annotations.tt_number import TTNumber from gso.products.product_blocks.router import RouterRole from gso.products.product_types.router import Router from gso.services import infoblox diff --git a/gso/workflows/router/update_ibgp_mesh.py b/gso/workflows/router/update_ibgp_mesh.py index 298c0878a2f82449173c78d24604e82ae8eb5bb1..72a1b5935971ee03d3383078ac78f4376f1276ef 100644 --- a/gso/workflows/router/update_ibgp_mesh.py +++ b/gso/workflows/router/update_ibgp_mesh.py @@ -12,6 +12,8 @@ from orchestrator.workflows.steps import resync, store_process_subscription, uns from orchestrator.workflows.utils import wrap_modify_initial_input_form from pydantic import ConfigDict, model_validator +from gso.annotations.snmp import SNMPVersion +from gso.annotations.tt_number import TTNumber from gso.products.product_blocks.router import RouterRole from gso.products.product_types.router import Router from gso.services import librenms_client diff --git a/test/cli/test_imports.py b/test/cli/test_imports.py index 983323869339b67329f3824ee7310a495c6c5a24..ac3aa66441b7a7e4a8c36fad34203aaa4c571e37 100644 --- a/test/cli/test_imports.py +++ b/test/cli/test_imports.py @@ -4,6 +4,7 @@ from unittest.mock import patch import pytest +from gso.annotations.interfaces import PhysicalPortCapacity from gso.cli.imports import ( import_iptrunks, import_office_routers, diff --git a/test/fixtures.py b/test/fixtures.py index 6c3928555854b130deea0cf30fc95d3afaed62cd..29d5614febb9e400e4272513db4c7bd06edcf89d 100644 --- a/test/fixtures.py +++ b/test/fixtures.py @@ -21,6 +21,7 @@ from pydantic_forms.core import FormPage from pydantic_forms.types import FormGenerator, SubscriptionMapping from pydantic_forms.validators import Choice +from gso.annotations.interfaces import PhysicalPortCapacity from gso.products import ProductName from gso.products.product_blocks.iptrunk import ( IptrunkInterfaceBlock, diff --git a/test/utils/test_helpers.py b/test/utils/test_helpers.py index 0df4ced9588e514f2cad00bbc8c22eaa2acdbfb5..a39ab9fb027f2fbee56a282fc998201b9fcaf138 100644 --- a/test/utils/test_helpers.py +++ b/test/utils/test_helpers.py @@ -3,6 +3,7 @@ from unittest.mock import patch import pytest from orchestrator.types import SubscriptionLifecycle +from gso.annotations.tt_number import validate_tt_number from gso.products import Router from gso.products.product_blocks.iptrunk import IptrunkInterfaceBlock from gso.products.product_blocks.router import RouterRole diff --git a/test/workflows/iptrunk/test_create_iptrunk.py b/test/workflows/iptrunk/test_create_iptrunk.py index 6be42faed62222a5d899e4f5977a26e813c4f2f7..b8a90ba9eb60bace00e121144473064f2e5b9057 100644 --- a/test/workflows/iptrunk/test_create_iptrunk.py +++ b/test/workflows/iptrunk/test_create_iptrunk.py @@ -4,6 +4,7 @@ from unittest.mock import patch import pytest from infoblox_client.objects import HostRecord +from gso.annotations.interfaces import PhysicalPortCapacity from gso.products import Iptrunk, ProductName from gso.products.product_blocks.iptrunk import IptrunkType from gso.services.subscriptions import get_product_id_by_name diff --git a/test/workflows/iptrunk/test_modify_trunk_interface.py b/test/workflows/iptrunk/test_modify_trunk_interface.py index 359308cdf880ef7b16a341073ce203410749d15d..7c0d2235cf403403d6da7e1b2378442e736d43e7 100644 --- a/test/workflows/iptrunk/test_modify_trunk_interface.py +++ b/test/workflows/iptrunk/test_modify_trunk_interface.py @@ -2,6 +2,7 @@ from unittest.mock import patch import pytest +from gso.annotations.interfaces import LAGMemberList, PhysicalPortCapacity from gso.products import Iptrunk from gso.products.product_blocks.iptrunk import IptrunkType from gso.utils.shared_enums import Vendor