From 69a3114e2565aa7b1bf06d8f5a113a5dc9c754fc Mon Sep 17 00:00:00 2001
From: Karel van Klink <karel.vanklink@geant.org>
Date: Fri, 25 Apr 2025 11:00:48 +0200
Subject: [PATCH] Only check Kentik licenses during router validation in
 production

---
 gso/workflows/router/validate_router.py | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/gso/workflows/router/validate_router.py b/gso/workflows/router/validate_router.py
index 675def732..02c4b5c77 100644
--- a/gso/workflows/router/validate_router.py
+++ b/gso/workflows/router/validate_router.py
@@ -17,7 +17,7 @@ from gso.services.librenms_client import LibreNMSClient
 from gso.services.lso_client import LSOState, anonymous_lso_interaction
 from gso.services.netbox_client import NetboxClient
 from gso.services.subscriptions import get_active_layer_3_services_on_router, get_active_vrfs_linked_to_router
-from gso.settings import load_oss_params
+from gso.settings import EnvironmentEnum, load_oss_params
 from gso.utils.helpers import generate_inventory_for_routers
 from gso.utils.shared_enums import Vendor
 
@@ -159,9 +159,15 @@ def check_kentik_entry_exists(subscription: Router) -> None:
             message="Device not found in Kentik", details={"device": subscription.router.router_fqdn}
         )
 
+    oss_params = load_oss_params()
+
     #  If there are active layer 3 services, check the license type. It may not be the placeholder or archiving license.
-    if bool(get_active_layer_3_services_on_router(subscription.subscription_id)):
-        kentik_params = load_oss_params().KENTIK
+    #  This check is only performed in a production environment
+    if (
+        bool(get_active_layer_3_services_on_router(subscription.subscription_id))
+        and oss_params.GENERAL.environment == EnvironmentEnum.PRODUCTION
+    ):
+        kentik_params = oss_params.KENTIK
         archive_plan = client.get_plan_by_name(kentik_params.archive_license_key)
         if any(device["device_name"] == subscription.router.router_fqdn for device in archive_plan["devices"]):
             raise ProcessFailureError(
-- 
GitLab