From 96c56efd876953c776f1786b9ef7c02f8c526848 Mon Sep 17 00:00:00 2001 From: Jorge Sasiain <jorge.sasiain@ehu.eus> Date: Wed, 29 Nov 2023 09:49:33 +0000 Subject: [PATCH] NAT-356: fix tox issues --- gso/api/v1/imports.py | 6 ++---- gso/workflows/site/base_site_model.py | 22 +++++++++++++++++----- gso/workflows/site/create_site.py | 4 ++-- 3 files changed, 21 insertions(+), 11 deletions(-) diff --git a/gso/api/v1/imports.py b/gso/api/v1/imports.py index a51d0b75..fea1ca62 100644 --- a/gso/api/v1/imports.py +++ b/gso/api/v1/imports.py @@ -9,16 +9,14 @@ from fastapi.routing import APIRouter from orchestrator.security import opa_security_default from orchestrator.services import processes from pydantic import BaseModel, root_validator, validator -from pydantic.fields import ModelField from gso.products.product_blocks.iptrunk import IptrunkType, PhyPortCapacity from gso.products.product_blocks.router import RouterRole, RouterVendor from gso.products.product_blocks.site import SiteTier from gso.services import subscriptions from gso.services.crm import CustomerNotFoundError, get_customer_by_name -from gso.workflows.site.base_site_model import BaseSiteModel from gso.utils.helpers import LAGMember - +from gso.workflows.site.base_site_model import BaseSiteValidatorModel router = APIRouter(prefix="/imports", tags=["Imports"], dependencies=[Depends(opa_security_default)]) @@ -30,7 +28,7 @@ class ImportResponseModel(BaseModel): detail: str -class SiteImportModel(BaseSiteModel): +class SiteImportModel(BaseSiteValidatorModel): """The required input for importing an existing :class:`gso.products.product_types.site`.""" site_name: str diff --git a/gso/workflows/site/base_site_model.py b/gso/workflows/site/base_site_model.py index 34061ef8..ff2696c7 100644 --- a/gso/workflows/site/base_site_model.py +++ b/gso/workflows/site/base_site_model.py @@ -1,15 +1,20 @@ +"""A base site validator model extended by create site and by import site.""" + from pydantic import BaseModel, validator from pydantic.fields import ModelField + from gso.products.product_blocks.site import SiteTier from gso.utils.helpers import ( - validate_site_fields_is_unique, - validate_ipv4_or_ipv6, validate_country_code, + validate_ipv4_or_ipv6, + validate_site_fields_is_unique, validate_site_name, ) -class BaseSiteModel(BaseModel): +class BaseSiteValidatorModel(BaseModel): + """A base site validator model extended by create site and by import site.""" + site_bgp_community_id: int site_internal_id: int site_tier: SiteTier @@ -27,7 +32,14 @@ class BaseSiteModel(BaseModel): validate_country_code(country_code) return country_code - @validator("site_ts_address", "site_internal_id", "site_bgp_community_id", "site_name", check_fields=False, allow_reuse=True) + @validator( + "site_ts_address", + "site_internal_id", + "site_bgp_community_id", + "site_name", + check_fields=False, + allow_reuse=True, + ) def validate_unique_fields(cls, value: str, field: ModelField) -> str | int: """Validate that the internal and :term:`BGP` community IDs are unique.""" return validate_site_fields_is_unique(field.name, value) @@ -39,4 +51,4 @@ class BaseSiteModel(BaseModel): The site name must consist of three uppercase letters, followed by an optional single digit. """ validate_site_name(site_name) - return site_name \ No newline at end of file + return site_name diff --git a/gso/workflows/site/create_site.py b/gso/workflows/site/create_site.py index e5184953..2207d2db 100644 --- a/gso/workflows/site/create_site.py +++ b/gso/workflows/site/create_site.py @@ -11,13 +11,13 @@ from gso.products.product_blocks import site as site_pb from gso.products.product_blocks.site import LatitudeCoordinate, LongitudeCoordinate from gso.products.product_types import site from gso.services.crm import customer_selector -from gso.workflows.site.base_site_model import BaseSiteModel +from gso.workflows.site.base_site_model import BaseSiteValidatorModel def initial_input_form_generator(product_name: str) -> FormGenerator: """Get input from the operator about the new site subscription.""" - class CreateSiteForm(FormPage, BaseSiteModel): + class CreateSiteForm(FormPage, BaseSiteValidatorModel): class Config: title = product_name -- GitLab