From 6efd19136db53bdab07334e46dca45985f66426a Mon Sep 17 00:00:00 2001 From: Karel van Klink <karel.vanklink@geant.org> Date: Fri, 21 Mar 2025 10:50:09 +0100 Subject: [PATCH] Only validate NetBox entries for an edge port that is on a Nokia device --- gso/workflows/edge_port/validate_edge_port.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/gso/workflows/edge_port/validate_edge_port.py b/gso/workflows/edge_port/validate_edge_port.py index 1bbf60e3d..33b882a65 100644 --- a/gso/workflows/edge_port/validate_edge_port.py +++ b/gso/workflows/edge_port/validate_edge_port.py @@ -4,7 +4,7 @@ from typing import Any from orchestrator.targets import Target from orchestrator.utils.errors import ProcessFailureError -from orchestrator.workflow import StepList, begin, done, step, workflow +from orchestrator.workflow import StepList, begin, conditional, done, step, workflow from orchestrator.workflows.steps import resync, store_process_subscription, unsync from orchestrator.workflows.utils import wrap_modify_initial_input_form from pydantic_forms.types import State, UUIDstr @@ -13,6 +13,7 @@ from gso.products.product_types.edge_port import EdgePort from gso.services.lso_client import LSOState, anonymous_lso_interaction from gso.services.netbox_client import NetboxClient from gso.services.partners import get_partner_by_id +from gso.utils.shared_enums import Vendor @step("Prepare required keys in state") @@ -79,15 +80,19 @@ def verify_base_config(subscription: dict[str, Any]) -> LSOState: def validate_edge_port() -> StepList: """Validate an existing, active Edge port subscription. - * Check correct configuration of interfaces in NetBox. + * Check correct configuration of interfaces in NetBox, only when the Edge Port is on a Nokia device. * Verify create Edge port configuration. """ + edge_port_is_on_nokia = conditional( + lambda state: state["subscription"]["edge_port"]["node"]["vendor"] == Vendor.NOKIA + ) + return ( begin >> store_process_subscription(Target.SYSTEM) >> unsync >> prepare_state - >> verify_netbox_entries + >> edge_port_is_on_nokia(verify_netbox_entries) >> anonymous_lso_interaction(verify_base_config) >> resync >> done -- GitLab