From 81f1730ee10b15c85468c9f566a7566fca1cd45b Mon Sep 17 00:00:00 2001
From: Hakan Calim <hakan.calim@fau.de>
Date: Sun, 4 Feb 2024 13:47:44 +0100
Subject: [PATCH] NAT-410: added router selector to forms

---
 gso/utils/forms.py | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)
 create mode 100644 gso/utils/forms.py

diff --git a/gso/utils/forms.py b/gso/utils/forms.py
new file mode 100644
index 00000000..5cb6c9d2
--- /dev/null
+++ b/gso/utils/forms.py
@@ -0,0 +1,25 @@
+"""Components to use in workflow forms."""
+from orchestrator.forms import FormPage
+from orchestrator.forms.validators import Choice
+from orchestrator.types import UUIDstr
+from pydantic import validator
+
+from gso.utils.helpers import validate_router_in_netbox
+
+
+class SelectRouterSide(FormPage):
+    """Selector for a router on a side."""
+
+    class Config:
+        """Setup title."""
+
+        title: str
+
+    side_node_id: Choice
+    config: Config
+
+
+    @validator("side_node_id", allow_reuse=True)
+    def validate_device_exists_in_netbox(cls, side_node_id: UUIDstr) -> str | None:
+        """Validate side node id."""
+        return validate_router_in_netbox(side_node_id)
-- 
GitLab