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