Skip to content
Snippets Groups Projects
Commit aad42eca authored by Karel van Klink's avatar Karel van Klink :smiley_cat: Committed by Neda Moeini
Browse files

re-order steps in router validation workflow

parent a6c0fc1c
No related branches found
No related tags found
1 merge request!139Feature/add validation workflows
......@@ -14,6 +14,18 @@ from gso.services import infoblox
from gso.services.lso_client import execute_playbook, lso_interaction
@step("Verify IPAM resources for loopback interface")
def verify_ipam_loopback(subscription: Router) -> None:
"""Validate the :term:`IPAM` resources for the loopback interface.
Raises an :class:`orchestrator.utils.errors.ProcessFailureError` if :term:`IPAM` is configured incorrectly.
"""
host_record = infoblox.find_host_by_fqdn(f"lo0.{subscription.router.router_fqdn}")
if not host_record or str(subscription.subscription_id) not in host_record.comment:
msg = "Loopback record is incorrectly configured in IPAM, please investigate this manually!"
raise ProcessFailureError(msg)
@step("Validate router configuration")
def validate_router_config(subscription: Router, callback_route: str) -> None:
"""Run an Ansible playbook that validates the configuration that is present on an active Router."""
......@@ -27,18 +39,6 @@ def validate_router_config(subscription: Router, callback_route: str) -> None:
)
@step("Verify IPAM resources for loopback interface")
def verify_ipam_loopback(subscription: Router) -> None:
"""Validate the :term:`IPAM` resources for the loopback interface.
Raises an :class:`orchestrator.utils.errors.ProcessFailureError` if :term:`IPAM` is configured incorrectly.
"""
host_record = infoblox.find_host_by_fqdn(f"lo0.{subscription.router.router_fqdn}")
if not host_record or str(subscription.subscription_id) not in host_record.comment:
msg = "Loopback record is incorrectly configured in IPAM, please investigate this manually!"
raise ProcessFailureError(msg)
@workflow(
"Validate router configuration",
target=Target.SYSTEM,
......@@ -47,15 +47,15 @@ def verify_ipam_loopback(subscription: Router) -> None:
def validate_router() -> StepList:
"""Validate an existing, active Router subscription.
* Run an Ansible playbook to verify the configuration is intact.
* Verify that the loopback interface is correctly configured in :term:`IPAM`.
* Redeploy base config to verify the configuration is intact.
"""
return (
init
>> store_process_subscription(Target.SYSTEM)
>> unsync
>> lso_interaction(validate_router_config)
>> verify_ipam_loopback
>> lso_interaction(validate_router_config)
>> resync
>> done
)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment