diff --git a/gso/utils/forms.py b/gso/utils/forms.py new file mode 100644 index 0000000000000000000000000000000000000000..5cb6c9d247ab91bf87aa1ec97fbd95ec67eab15b --- /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)