From 70780c81bae7495f855ef96e14191111afbfb321 Mon Sep 17 00:00:00 2001
From: Hakan Calim <hakan.calim@fau.de>
Date: Wed, 1 Nov 2023 21:05:28 +0100
Subject: [PATCH] NAT-328: Moved the site name validation to this file

---
 gso/utils/helpers.py | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/gso/utils/helpers.py b/gso/utils/helpers.py
index 385096c8a..1a54386af 100644
--- a/gso/utils/helpers.py
+++ b/gso/utils/helpers.py
@@ -151,3 +151,17 @@ def validate_iptrunk_unique_interface(interfaces: list[LAGMember]) -> list[LAGMe
     if len(interface_names) != len(set(interface_names)):
         raise ValueError("Interfaces must be unique.")
     return interfaces
+
+
+def validate_site_name(site_name: str) -> str:
+    """Accepts only three capital letters and optional a digit after the capital letters for the sitename.
+
+    The site names can have the format like this: AMS, LON, LON0...LON9
+    """
+
+    # Accept 3 chapital letters and only one ditigt after capital letters.
+    pattern = re.compile(r"^[A-Z]{3}[0-9]?$")
+    if not bool(pattern.match(site_name)):
+        raise ValueError(f"Enter a valid site name similar looks like AMS, AMS1or LON9. Get: {site_name}")
+
+    return site_name
-- 
GitLab