From c823aa3e79c8235684f4eb0713d8458831adff2d Mon Sep 17 00:00:00 2001
From: Karel van Klink <karel.vanklink@geant.org>
Date: Tue, 10 Sep 2024 14:03:19 +0200
Subject: [PATCH] Rename types module to annotations to avoid collision with
 existing external module

 Conflicts:
	gso/annotations/__init__.py
	gso/annotations/base_site.py
	gso/annotations/coordinates.py
	gso/annotations/country_code.py
	gso/annotations/interfaces.py
	gso/annotations/ip_address.py
	gso/annotations/netbox_router.py
	gso/annotations/site_name.py
	gso/annotations/snmp.py
	gso/annotations/tt_number.py
	gso/annotations/unique_field.py
	gso/cli/imports.py
	gso/products/product_blocks/iptrunk.py
	gso/products/product_blocks/lan_switch_interconnect.py
	gso/products/product_blocks/site.py
	gso/services/librenms_client.py
	gso/types/__init__.py
	gso/types/base_site.py
	gso/types/coordinates.py
	gso/types/country_code.py
	gso/types/interfaces.py
	gso/types/netbox_router.py
	gso/types/site_name.py
	gso/types/snmp.py
	gso/types/tt_number.py
	gso/types/unique_field.py
	gso/utils/helpers.py
	gso/utils/types/__init__.py
	gso/utils/types/base_site.py
	gso/utils/types/coordinates.py
	gso/utils/types/country_code.py
	gso/utils/types/interfaces.py
	gso/utils/types/netbox_router.py
	gso/utils/types/site_name.py
	gso/utils/types/snmp.py
	gso/utils/types/tt_number.py
	gso/utils/types/unique_field.py
	gso/workflows/iptrunk/deploy_twamp.py
	gso/workflows/iptrunk/modify_isis_metric.py
	gso/workflows/router/redeploy_base_config.py
	gso/workflows/site/create_imported_site.py
	gso/workflows/site/create_site.py
	gso/workflows/site/modify_site.py
	test/conftest.py
	test/schemas/test_types.py
	test/services/test_librenms_client.py
	test/workflows/iptrunk/test_create_imported_iptrunk.py
---
 gso/api/v1/network.py                                    | 2 ++
 gso/workflows/iptrunk/create_imported_iptrunk.py         | 1 +
 gso/workflows/iptrunk/create_iptrunk.py                  | 3 +++
 gso/workflows/iptrunk/migrate_iptrunk.py                 | 2 ++
 gso/workflows/iptrunk/modify_trunk_interface.py          | 2 ++
 gso/workflows/iptrunk/terminate_iptrunk.py               | 1 +
 .../create_lan_switch_interconnect.py                    | 9 +++++++++
 gso/workflows/router/create_router.py                    | 1 +
 gso/workflows/router/promote_p_to_pe.py                  | 1 +
 gso/workflows/router/terminate_router.py                 | 1 +
 gso/workflows/router/update_ibgp_mesh.py                 | 2 ++
 test/cli/test_imports.py                                 | 1 +
 test/fixtures.py                                         | 1 +
 test/utils/test_helpers.py                               | 1 +
 test/workflows/iptrunk/test_create_iptrunk.py            | 1 +
 test/workflows/iptrunk/test_modify_trunk_interface.py    | 1 +
 16 files changed, 30 insertions(+)

diff --git a/gso/api/v1/network.py b/gso/api/v1/network.py
index e4a19de9..e1a15799 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 4d754375..a03ce8df 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 e1040118..8dda8479 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 5a7cafb0..5afc1e43 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 16de2462..a43e3634 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 9b5cf71a..e86a61eb 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 973cf1d8..de28e1ce 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 04d38b75..8a0fc9b7 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 a82b4823..0b7ddf3b 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 9bc48f8c..dfe846ab 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 298c0878..72a1b593 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 98332386..ac3aa664 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 6c392855..29d5614f 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 0df4ced9..a39ab9fb 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 6be42fae..b8a90ba9 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 359308cd..7c0d2235 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
-- 
GitLab