diff --git a/gso/workflows/l3_core_service/geant_ip/validate_prefix_list.py b/gso/workflows/l3_core_service/geant_ip/validate_prefix_list.py index c532d56d1964ef9f6b85b69f4015f2e82243ce19..5f259b576889bbfcb801d7b77dce71413426a9d1 100644 --- a/gso/workflows/l3_core_service/geant_ip/validate_prefix_list.py +++ b/gso/workflows/l3_core_service/geant_ip/validate_prefix_list.py @@ -21,6 +21,7 @@ from gso.workflows.l3_core_service.base_validate_prefix_list import ( ) def validate_geant_ip_prefix_list() -> StepList: """Validate prefix-lists for an existing GÉANT IP subscription.""" + fqdn_list_is_empty = conditional(lambda state: state["ap_fqdn_list"] == []) prefix_list_has_drifted = conditional(lambda state: bool(state["prefix_list_drift"])) redeploy_prefix_list_steps = ( @@ -37,4 +38,11 @@ def validate_geant_ip_prefix_list() -> StepList: >> prefix_list_has_drifted(redeploy_prefix_list_steps) ) - return begin >> store_process_subscription(Target.SYSTEM) >> build_fqdn_list >> prefix_list_validation_steps >> done + return ( + begin + >> store_process_subscription(Target.SYSTEM) + >> build_fqdn_list + >> fqdn_list_is_empty(done) + >> prefix_list_validation_steps + >> done + ) diff --git a/gso/workflows/l3_core_service/validate_prefix_list.py b/gso/workflows/l3_core_service/validate_prefix_list.py index f9e580b1c1063766cc500b6723b1c14ef975d840..9c9b6cd4321e07d78ce98524487d880f8b1cfb54 100644 --- a/gso/workflows/l3_core_service/validate_prefix_list.py +++ b/gso/workflows/l3_core_service/validate_prefix_list.py @@ -1,4 +1,3 @@ - """Prefix Validation workflow for L3 Core Service subscription objects.""" from typing import Any @@ -139,4 +138,4 @@ def validate_prefix_list() -> StepList: >> fqdn_list_is_empty(done) >> prefix_list_should_be_validated(prefix_list_validation_steps) >> done - ) \ No newline at end of file + ) diff --git a/test/workflows/l3_core_service/test_validate_prefix_list.py b/test/workflows/l3_core_service/test_validate_prefix_list.py index e3a6bd8bbb5988c23ff8258e1698061606158797..a2baecb6839c73125d52da4eda76ac84f9c4e389 100644 --- a/test/workflows/l3_core_service/test_validate_prefix_list.py +++ b/test/workflows/l3_core_service/test_validate_prefix_list.py @@ -3,7 +3,7 @@ from unittest.mock import patch import pytest from gso.products.product_types.geant_ip import GeantIP -from gso.utils.shared_enums import Vendor +from gso.utils.shared_enums import APType, Vendor from test import USER_CONFIRM_EMPTY_FORM from test.workflows import ( assert_complete, @@ -95,7 +95,7 @@ def test_validate_prefix_list_without_diff(mock_lso_interaction, geant_ip_subscr @pytest.mark.workflow() def test_validate_prefix_skip_on_juniper( - l3_core_service_subscription_factory, + geant_ip_subscription_factory, access_port_factory, service_binding_port_factory, edge_port_subscription_factory, @@ -129,19 +129,15 @@ def test_validate_prefix_skip_on_juniper( ), ), ] - subscription_id = str( - l3_core_service_subscription_factory( - l3_core_service_type=L3CoreServiceType.GEANT_IP, ap_list=ap_list - ).subscription_id - ) + subscription_id = str(geant_ip_subscription_factory(ap_list=ap_list).subscription_id) initial_l3_core_service_data = [{"subscription_id": subscription_id}] # Run the workflow and extract results # Assert workflow completion since it is skipped if it is on a Juniper - result, _, _ = run_workflow("validate_prefix_list", initial_l3_core_service_data) + result, _, _ = run_workflow("validate_geant_ip_prefix_list", initial_l3_core_service_data) assert_complete(result) # Extract the state and validate subscription attributes state = extract_state(result) subscription_id = state["subscription_id"] - subscription = L3CoreService.from_subscription(subscription_id) + subscription = GeantIP.from_subscription(subscription_id) assert subscription.status == "active" assert subscription.insync is True