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

NAT-329 added funtion to validate juniper interface names

parent ada8cd6c
No related branches found
No related tags found
1 merge request!122Feature/nat 329 interface names should validated 3
......@@ -75,9 +75,9 @@ def available_interfaces_choices(router_id: UUID, speed: str) -> Choice | None:
def available_interfaces_choices_including_current_members(
router_id: UUID,
speed: str,
interfaces: list[IptrunkInterfaceBlock],
router_id: UUID,
speed: str,
interfaces: list[IptrunkInterfaceBlock],
) -> Choice | None:
"""Return a list of available interfaces for a given router and speed including the current members.
......@@ -263,3 +263,31 @@ class BaseSiteValidatorModel(BaseModel):
"""
validate_site_name(site_name)
return site_name
def validate_interface_name_list(interface_name_list: list) -> list:
"""Validate that the provided interface name matches the expected pattern.
The expected pattern for the interface name is one of 'ge', 'et', 'xe' followed by a dash '-',
then a digit between 0 and 9, a forward slash '/', another digit between 0 and 9,
another forward slash '/', and ends with a digit between 0 and 9.
For example: 'xe-1/0/0'.
Args:
----
interface_name_list: List of interface names to validate.
Returns:
-------
list: The list of interface names if all match was successfull.
Otherwise it will throw a ValueError exception.
"""
pattern = re.compile(r"^(ge|et|xe)-[0-9]/[0-9]/[0-9]$")
for interface_name in interface_name_list:
if not bool(pattern.match(interface_name)):
error_msg = (
f"Invalid interface name. The interface name should be of format: "
f"xe-1/0/0. Got: [{interface_name}]")
raise ValueError(error_msg)
return interface_name_list
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment