Skip to content
Snippets Groups Projects
Commit 828c1357 authored by Hakan Calim's avatar Hakan Calim Committed by Neda Moeini
Browse files

NAT-328: add validator with regular expression for validate site name

parent 57139e29
No related branches found
No related tags found
1 merge request!97Feature/nat 328 site names should be validated
import re
from orchestrator.forms import FormPage
from orchestrator.targets import Target
from orchestrator.types import FormGenerator, State, SubscriptionLifecycle, UUIDstr
......@@ -42,10 +43,27 @@ def initial_input_form_generator(product_name: str) -> FormGenerator: # noqa: C
validate_country_code(country_code)
return country_code
@validator("site_name", "site_internal_id", "site_bgp_community_id", allow_reuse=True)
@validator("site_internal_id", "site_bgp_community_id", allow_reuse=True)
def validate_unique_fields(cls, value: str, field: ModelField) -> str | int:
return validate_site_fields_is_unique(field.name, value)
@validator("site_name", allow_reuse=True)
def site_name_must_be_valid(cls, site_name: str) -> str:
"""Validate the site name.
The site name must consist of three uppercase letters (A-Z) followed
by an optional single digit (0-9).
"""
validate_site_fields_is_unique("site_name", site_name)
pattern = re.compile(r"^[A-Z]{3}[0-9]?$")
if pattern.match(site_name):
return site_name
else:
raise ValueError(
"Enter a valid site name. It must consist of three uppercase letters (A-Z) followed by an optional"
" single digit (0-9)."
)
user_input = yield CreateSiteForm
return user_input.dict()
......
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