Skip to content
Snippets Groups Projects
Commit 6efd1913 authored by Karel van Klink's avatar Karel van Klink :smiley_cat:
Browse files

Only validate NetBox entries for an edge port that is on a Nokia device

parent eb470c14
No related branches found
No related tags found
1 merge request!390Only validate NetBox entries for an edge port that is on a Nokia device
Pipeline #92739 passed
...@@ -4,7 +4,7 @@ from typing import Any ...@@ -4,7 +4,7 @@ from typing import Any
from orchestrator.targets import Target from orchestrator.targets import Target
from orchestrator.utils.errors import ProcessFailureError 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.steps import resync, store_process_subscription, unsync
from orchestrator.workflows.utils import wrap_modify_initial_input_form from orchestrator.workflows.utils import wrap_modify_initial_input_form
from pydantic_forms.types import State, UUIDstr from pydantic_forms.types import State, UUIDstr
...@@ -13,6 +13,7 @@ from gso.products.product_types.edge_port import EdgePort ...@@ -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.lso_client import LSOState, anonymous_lso_interaction
from gso.services.netbox_client import NetboxClient from gso.services.netbox_client import NetboxClient
from gso.services.partners import get_partner_by_id from gso.services.partners import get_partner_by_id
from gso.utils.shared_enums import Vendor
@step("Prepare required keys in state") @step("Prepare required keys in state")
...@@ -79,15 +80,19 @@ def verify_base_config(subscription: dict[str, Any]) -> LSOState: ...@@ -79,15 +80,19 @@ def verify_base_config(subscription: dict[str, Any]) -> LSOState:
def validate_edge_port() -> StepList: def validate_edge_port() -> StepList:
"""Validate an existing, active Edge port subscription. """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. * Verify create Edge port configuration.
""" """
edge_port_is_on_nokia = conditional(
lambda state: state["subscription"]["edge_port"]["node"]["vendor"] == Vendor.NOKIA
)
return ( return (
begin begin
>> store_process_subscription(Target.SYSTEM) >> store_process_subscription(Target.SYSTEM)
>> unsync >> unsync
>> prepare_state >> prepare_state
>> verify_netbox_entries >> edge_port_is_on_nokia(verify_netbox_entries)
>> anonymous_lso_interaction(verify_base_config) >> anonymous_lso_interaction(verify_base_config)
>> resync >> resync
>> done >> done
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment