diff --git a/gso/utils/helpers.py b/gso/utils/helpers.py index 93f77f9e32206a5275b2c06fcf61b791c4d341d1..04dfda72217bd9b68cf7a01d95a97cca5c3091d7 100644 --- a/gso/utils/helpers.py +++ b/gso/utils/helpers.py @@ -72,7 +72,7 @@ def available_interfaces_choices(router_id: UUID, speed: str) -> Choice | None: def available_interfaces_choices_including_current_members( - router_id: UUID | UUIDstr, + router_id: UUID, speed: str, interfaces: list[IptrunkInterfaceBlock], ) -> Choice | None: @@ -113,14 +113,14 @@ def available_lags_choices(router_id: UUID) -> Choice | None: return Choice("ae iface", zip(side_a_ae_iface_list, side_a_ae_iface_list, strict=True)) # type: ignore[arg-type] -def get_router_vendor(router_id: UUID) -> str: +def get_router_vendor(router_id: UUID) -> RouterVendor: """Retrieve the vendor of a router. :param router_id: The :term:`UUID` of the router. :type router_id: :class:`uuid.UUID` :return: The vendor of the router. - :rtype: str: + :rtype: RouterVendor: """ return Router.from_subscription(router_id).vendor diff --git a/gso/workflows/iptrunk/create_iptrunk.py b/gso/workflows/iptrunk/create_iptrunk.py index f490243fb077ba0343be03764189d1580e908de1..8b44b4519bbf0ed1f11e5cf8f93fb4ee18759128 100644 --- a/gso/workflows/iptrunk/create_iptrunk.py +++ b/gso/workflows/iptrunk/create_iptrunk.py @@ -17,7 +17,6 @@ from gso.products.product_blocks.iptrunk import ( IptrunkType, PhyPortCapacity, ) -from gso.products.product_blocks.router import RouterVendor from gso.products.product_types.iptrunk import IptrunkInactive, IptrunkProvisioning from gso.products.product_types.router import Router, RouterVendor from gso.services import infoblox, provisioning_proxy, subscriptions diff --git a/gso/workflows/iptrunk/modify_trunk_interface.py b/gso/workflows/iptrunk/modify_trunk_interface.py index 008c37a8341809dd8acc238166f3b234de8884ae..34873f754e700268779197e3bbf81d8ea2683405 100644 --- a/gso/workflows/iptrunk/modify_trunk_interface.py +++ b/gso/workflows/iptrunk/modify_trunk_interface.py @@ -280,7 +280,6 @@ def allocate_interfaces_in_netbox(subscription: Iptrunk, previous_ae_members: di Attach the :term:`LAG` interfaces to the physical interfaces detach old ones from the :term:`LAG`. """ - for index, side in enumerate(subscription.iptrunk.iptrunk_sides): nbclient = NetboxClient() if get_router_vendor(side.iptrunk_side_node.owner_subscription_id) == RouterVendor.NOKIA: diff --git a/gso/workflows/router/create_router.py b/gso/workflows/router/create_router.py index c69a78ff3bedb21287540d9bff2201ae7053cb0c..963121735d40c7c401d43f3261133d599e466afb 100644 --- a/gso/workflows/router/create_router.py +++ b/gso/workflows/router/create_router.py @@ -107,7 +107,7 @@ def initialize_subscription( @step("Allocate loopback interfaces in IPAM") -def ipam_allocate_loopback(subscription: RouterProvisioning) -> State: # noqa: FBT001 +def ipam_allocate_loopback(subscription: RouterProvisioning) -> State: """Allocate :term:`IPAM` resources for the loopback interface.""" fqdn = subscription.router.router_fqdn loopback_v4, loopback_v6 = infoblox.allocate_host(f"lo0.{fqdn}", "LO", [fqdn], str(subscription.subscription_id)) diff --git a/gso/workflows/tasks/import_router.py b/gso/workflows/tasks/import_router.py index 461aa2e7d638b82bfce5f27614f569df2d0a2cae..ea3d6acf3806e9e3ca8f504a4763d79db40b55dc 100644 --- a/gso/workflows/tasks/import_router.py +++ b/gso/workflows/tasks/import_router.py @@ -43,8 +43,6 @@ def create_subscription(customer: str, router_vendor: RouterVendor) -> State: product_id = subscriptions.get_product_id_by_name(ProductType.NOKIA_ROUTER) elif router_vendor == RouterVendor.JUNIPER: product_id = subscriptions.get_product_id_by_name(ProductType.JUNIPER_ROUTER) - else: - raise ValueError(f"Unknown router vendor: {router_vendor}") subscription = RouterInactive.from_product_id(product_id, customer_id) diff --git a/requirements.txt b/requirements.txt index f38f6cd3070d5eb8b429e6049bee79a82d4b99ed..c2e839b44147878595c0f59457a07a06d7c90936 100644 --- a/requirements.txt +++ b/requirements.txt @@ -7,6 +7,8 @@ celery-redbeat==2.1.1 celery==5.3.4 # Test and linting dependencies +celery-stubs==0.1.3 +types-requests==2.31.0.1 pytest==7.4.3 faker==19.13.0 responses==0.24.0 diff --git a/test/utils/test_helpers.py b/test/utils/test_helpers.py index 0e93c2aa9fefa59025738bf1934b8b4738784ddc..a0f77451522bb62baa45e624350e92bbcd0cb796 100644 --- a/test/utils/test_helpers.py +++ b/test/utils/test_helpers.py @@ -3,7 +3,7 @@ from unittest.mock import patch import pytest from gso.products.product_blocks.iptrunk import IptrunkInterfaceBlock -from gso.products.product_blocks.router import RouterVendor +from gso.products.product_types.router import RouterVendor from gso.utils.helpers import available_interfaces_choices_including_current_members @@ -22,20 +22,20 @@ def mock_netbox_client(): def test_non_nokia_router_returns_none(mock_router, faker): - mock_router.from_subscription.return_value.router.router_vendor = RouterVendor.JUNIPER + mock_router.from_subscription.return_value.vendor = RouterVendor.JUNIPER result = available_interfaces_choices_including_current_members(faker.uuid4(), "10G", []) assert result is None def test_nokia_router_with_no_interfaces_returns_empty_choice(mock_router, mock_netbox_client, faker): - mock_router.from_subscription.return_value.router.router_vendor = RouterVendor.NOKIA + mock_router.from_subscription.return_value.vendor = RouterVendor.NOKIA mock_netbox_client().get_available_interfaces.return_value = iter([]) result = available_interfaces_choices_including_current_members(faker.uuid4(), "10G", []) assert len(result) == 0 def test_nokia_router_with_interfaces_returns_choice(mock_router, mock_netbox_client, faker): - mock_router.from_subscription.return_value.router.router_vendor = RouterVendor.NOKIA + mock_router.from_subscription.return_value.vendor = RouterVendor.NOKIA mock_netbox_client().get_available_interfaces.return_value = iter( [ {"name": "interface1", "module": {"display": "module1"}, "description": "desc1"}, diff --git a/tox.ini b/tox.ini index 8ecdb7ee7d0ad52e4117b89299c2fffec35105c2..02437f720ac1159df27281b195faf1f44ff7ed70 100644 --- a/tox.ini +++ b/tox.ini @@ -10,8 +10,6 @@ setenv = OAUTH2_ACTIVE = False deps = coverage - types-requests - celery-stubs -r requirements.txt commands =