From 06e88d662ecfbe83b21a0f610e6f5dc6d79e4920 Mon Sep 17 00:00:00 2001 From: Aleksandr Kurbatov <aleksandr.kurbatov@GL1342.local> Date: Tue, 16 Apr 2024 13:09:10 +0100 Subject: [PATCH] deploy_twamp: additional check step An additional step for checking TWAMP status --- gso/workflows/iptrunk/deploy_twamp.py | 20 ++++++++++++++++++++ test/workflows/iptrunk/test_deploy_twamp.py | 4 ++-- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/gso/workflows/iptrunk/deploy_twamp.py b/gso/workflows/iptrunk/deploy_twamp.py index c02e229c..73071c62 100644 --- a/gso/workflows/iptrunk/deploy_twamp.py +++ b/gso/workflows/iptrunk/deploy_twamp.py @@ -77,6 +77,25 @@ def deploy_twamp_real(subscription: Iptrunk, process_id: UUIDstr, callback_route return {"subscription": subscription} +@step("Check TWAMP status on both sides") +def check_twamp_status(subscription: Iptrunk, process_id: UUIDstr, callback_route: str, tt_number: str) -> State: + """Check TWAMP session.""" + extra_vars = { + "subscription": json.loads(json_dumps(subscription)), + "process_id": process_id, + "verb": "check_twamp", + } + + inventory = ( + f"{subscription.iptrunk.iptrunk_sides[0].iptrunk_side_node.router_fqdn}" + f"\n{subscription.iptrunk.iptrunk_sides[1].iptrunk_side_node.router_fqdn}" + ) + + execute_playbook("deploy_twamp.yaml", callback_route, inventory, extra_vars) + + return {"subscription": subscription} + + @workflow( "Deploy TWAMP", initial_input_form=wrap_modify_initial_input_form(_initial_input_form_generator), @@ -93,6 +112,7 @@ def deploy_twamp() -> StepList: >> unsync >> lso_interaction(deploy_twamp_dry) >> lso_interaction(deploy_twamp_real) + >> lso_interaction(check_twamp_status) >> resync >> done ) diff --git a/test/workflows/iptrunk/test_deploy_twamp.py b/test/workflows/iptrunk/test_deploy_twamp.py index c5592738..8584cd99 100644 --- a/test/workflows/iptrunk/test_deploy_twamp.py +++ b/test/workflows/iptrunk/test_deploy_twamp.py @@ -25,7 +25,7 @@ def test_iptrunk_deploy_twamp_success( initial_input_data = [{"subscription_id": product_id}, {"tt_number": faker.tt_number()}] result, process_stat, step_log = run_workflow("deploy_twamp", initial_input_data) - for _ in range(2): + for _ in range(3): result, step_log = assert_lso_interaction_success(result, process_stat, step_log) assert_complete(result) @@ -35,4 +35,4 @@ def test_iptrunk_deploy_twamp_success( subscription = Iptrunk.from_subscription(subscription_id) assert subscription.status == "active" - assert mock_execute_playbook.call_count == 2 + assert mock_execute_playbook.call_count == 3 -- GitLab