Skip to content
Snippets Groups Projects
Commit 5a61647a authored by Neda Moeini's avatar Neda Moeini
Browse files

Remove unique vrf name validation and use UniqueField custom type instead.

parent 14f3eda3
No related branches found
No related tags found
1 merge request!314Feature/vrf
Pipeline #90630 passed
......@@ -321,16 +321,3 @@ def is_virtual_circuit_id_available(virtual_circuit_id: str) -> bool:
:rtype: bool
"""
return is_resource_type_value_unique("virtual_circuit_id", virtual_circuit_id)
def is_vrf_name_unique(vrf_name: str) -> bool:
"""Check if the given VRF name is unique in the database.
This function verifies if the specified VRF name is not already present in the core database.
:param vrf_name: The VRF name to check.
:type vrf_name: str
:return: True if the VRF name is unique (not found), False if it exists.
:rtype: bool
"""
return is_resource_type_value_unique("vrf_name", vrf_name)
......@@ -6,13 +6,13 @@ from orchestrator.types import FormGenerator, State, SubscriptionLifecycle, UUID
from orchestrator.workflow import StepList, begin, done, step, workflow
from orchestrator.workflows.steps import resync, set_status, store_process_subscription
from orchestrator.workflows.utils import wrap_create_initial_input_form
from pydantic import ConfigDict, field_validator
from pydantic import ConfigDict
from pydantic_forms.validators import ReadOnlyField
from gso.products.product_types.vrf import VRFInactive
from gso.services.partners import get_partner_by_name
from gso.services.subscriptions import is_vrf_name_unique
from gso.utils.types.tt_number import TTNumber
from gso.utils.types.unique_field import UniqueField
from gso.workflows.shared import create_summary_form
......@@ -24,18 +24,11 @@ def initial_input_form_generator(product_name: str) -> FormGenerator:
tt_number: TTNumber
partner: ReadOnlyField("GEANT", default_type=str) # type: ignore[valid-type]
vrf_name: str
vrf_name: UniqueField[str]
route_distinguisher: str
route_target: str
vrf_as_number: int
@field_validator("vrf_name")
def vrf_name_must_be_unique(cls, vrf_name: str) -> str:
if not is_vrf_name_unique(vrf_name):
msg = "VRF name must be unique."
raise ValueError(msg)
return vrf_name
user_input = yield CreateVRFForm
user_input = user_input.model_dump()
summary_fields = ["vrf_name", "route_distinguisher", "route_target", "vrf_as_number"]
......
......@@ -51,5 +51,5 @@ def test_create_vrf_with_duplicate_vrf_name(
data_config_filename,
):
vrf_subscription_factory(vrf_name=vrf_input[1]["vrf_name"])
with pytest.raises(FormValidationError, match="VRF name must be unique."):
with pytest.raises(FormValidationError, match="vrf_name must be unique."):
run_workflow("create_vrf", vrf_input)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment