Skip to content
Snippets Groups Projects
Commit 96c56efd authored by JORGE SASIAIN's avatar JORGE SASIAIN
Browse files

NAT-356: fix tox issues

parent a45c877f
No related branches found
No related tags found
1 merge request!112Address SonarQube code smells
Pipeline #84711 passed
...@@ -9,16 +9,14 @@ from fastapi.routing import APIRouter ...@@ -9,16 +9,14 @@ from fastapi.routing import APIRouter
from orchestrator.security import opa_security_default from orchestrator.security import opa_security_default
from orchestrator.services import processes from orchestrator.services import processes
from pydantic import BaseModel, root_validator, validator 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.iptrunk import IptrunkType, PhyPortCapacity
from gso.products.product_blocks.router import RouterRole, RouterVendor from gso.products.product_blocks.router import RouterRole, RouterVendor
from gso.products.product_blocks.site import SiteTier from gso.products.product_blocks.site import SiteTier
from gso.services import subscriptions from gso.services import subscriptions
from gso.services.crm import CustomerNotFoundError, get_customer_by_name 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.utils.helpers import LAGMember
from gso.workflows.site.base_site_model import BaseSiteValidatorModel
router = APIRouter(prefix="/imports", tags=["Imports"], dependencies=[Depends(opa_security_default)]) router = APIRouter(prefix="/imports", tags=["Imports"], dependencies=[Depends(opa_security_default)])
...@@ -30,7 +28,7 @@ class ImportResponseModel(BaseModel): ...@@ -30,7 +28,7 @@ class ImportResponseModel(BaseModel):
detail: str detail: str
class SiteImportModel(BaseSiteModel): class SiteImportModel(BaseSiteValidatorModel):
"""The required input for importing an existing :class:`gso.products.product_types.site`.""" """The required input for importing an existing :class:`gso.products.product_types.site`."""
site_name: str site_name: str
......
"""A base site validator model extended by create site and by import site."""
from pydantic import BaseModel, validator from pydantic import BaseModel, validator
from pydantic.fields import ModelField from pydantic.fields import ModelField
from gso.products.product_blocks.site import SiteTier from gso.products.product_blocks.site import SiteTier
from gso.utils.helpers import ( from gso.utils.helpers import (
validate_site_fields_is_unique,
validate_ipv4_or_ipv6,
validate_country_code, validate_country_code,
validate_ipv4_or_ipv6,
validate_site_fields_is_unique,
validate_site_name, 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_bgp_community_id: int
site_internal_id: int site_internal_id: int
site_tier: SiteTier site_tier: SiteTier
...@@ -27,7 +32,14 @@ class BaseSiteModel(BaseModel): ...@@ -27,7 +32,14 @@ class BaseSiteModel(BaseModel):
validate_country_code(country_code) validate_country_code(country_code)
return 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: def validate_unique_fields(cls, value: str, field: ModelField) -> str | int:
"""Validate that the internal and :term:`BGP` community IDs are unique.""" """Validate that the internal and :term:`BGP` community IDs are unique."""
return validate_site_fields_is_unique(field.name, value) return validate_site_fields_is_unique(field.name, value)
...@@ -39,4 +51,4 @@ class BaseSiteModel(BaseModel): ...@@ -39,4 +51,4 @@ class BaseSiteModel(BaseModel):
The site name must consist of three uppercase letters, followed by an optional single digit. The site name must consist of three uppercase letters, followed by an optional single digit.
""" """
validate_site_name(site_name) validate_site_name(site_name)
return site_name return site_name
\ No newline at end of file
...@@ -11,13 +11,13 @@ from gso.products.product_blocks import site as site_pb ...@@ -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_blocks.site import LatitudeCoordinate, LongitudeCoordinate
from gso.products.product_types import site from gso.products.product_types import site
from gso.services.crm import customer_selector 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: def initial_input_form_generator(product_name: str) -> FormGenerator:
"""Get input from the operator about the new site subscription.""" """Get input from the operator about the new site subscription."""
class CreateSiteForm(FormPage, BaseSiteModel): class CreateSiteForm(FormPage, BaseSiteValidatorModel):
class Config: class Config:
title = product_name title = product_name
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment