This commit is contained in:
Mateusz Gruszczyński
2026-04-15 13:03:38 +02:00
parent 9ddb203ec0
commit 05fc5bd6ff
11 changed files with 122 additions and 11 deletions

View File

@@ -21,6 +21,11 @@ class RouterBase(BaseModel):
disable_binary_backups: bool = False
disable_ping: bool = False
@field_validator("name", mode="before")
@classmethod
def normalize_name(cls, value: str | None) -> str:
return (value or "").strip()
@field_validator("name")
@classmethod
def validate_name(cls, value: str) -> str:
@@ -63,7 +68,22 @@ class RouterUpdate(BaseModel):
disable_binary_backups: bool | None = None
disable_ping: bool | None = None
@field_validator("name", "host", "ssh_user", "ssh_key", "ssh_password", mode="before")
@field_validator("name", mode="before")
@classmethod
def normalize_name(cls, value: str | None) -> str | None:
normalized = (value or "").strip()
return normalized or None
@field_validator("name")
@classmethod
def validate_name(cls, value: str | None) -> str | None:
if value is None:
return value
if not ALLOWED_NAME_REGEX.match(value):
raise ValueError("Only letters, digits, dashes and underscores are allowed")
return value
@field_validator("host", "ssh_user", "ssh_key", "ssh_password", mode="before")
@classmethod
def normalize_text(cls, value: str | None) -> str | None:
normalized = (value or "").strip()