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 d794d0f0a63dd55f97f5ac98ec49774de574d31d..55a07431c57e7b6506ca64708f4b4d235cac1813 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 0bb920c0cfb98e7387d5c9766df77c36a503bf88..23ebb07781685ce2f0fce29e19685ac44489a899 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 28779cd706a2eb8f5e12caf1f5bd003ebcd8474f..2b13bcdb0f2724a63b8285a9c517afbde156f722 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 267cd3827f7dbd908c472faf545e949fd231ee32..c97d7325394644658a9f78e7c87add57c52c0190 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 85c395e8bff7491b700cc7cda33219a25c69a9ab..34a0bbb3498424159da53c700b9a2348dab54b47 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