Skip to content
Snippets Groups Projects
Verified Commit 3d1d07b9 authored by Karel van Klink's avatar Karel van Klink :smiley_cat:
Browse files

use conditional to skip step in create_router workflow

parent a34051ad
No related branches found
No related tags found
1 merge request!128Feature/use conditionals
......@@ -7,7 +7,7 @@ from orchestrator.forms import FormPage
from orchestrator.forms.validators import Choice
from orchestrator.targets import Target
from orchestrator.types import FormGenerator, State, SubscriptionLifecycle, UUIDstr
from orchestrator.workflow import StepList, done, init, step, workflow
from orchestrator.workflow import StepList, done, init, step, workflow, conditional
from orchestrator.workflows.steps import resync, set_status, store_process_subscription
from orchestrator.workflows.utils import wrap_create_initial_input_form
from pydantic import validator
......@@ -126,16 +126,11 @@ def ipam_allocate_loopback(subscription: RouterProvisioning) -> State:
@step("Create NetBox Device")
def create_netbox_device(subscription: RouterProvisioning) -> State:
"""Create a new device in Netbox.
HACK: use a conditional instead for execution of this step
"""
if subscription.router.vendor == RouterVendor.NOKIA:
NetboxClient().create_device(
subscription.router.router_fqdn,
str(subscription.router.router_site.site_tier), # type: ignore[union-attr]
)
return {"subscription": subscription}
"""Create a new NOKIA device in Netbox."""
NetboxClient().create_device(
subscription.router.router_fqdn,
str(subscription.router.router_site.site_tier), # type: ignore[union-attr]
)
return {"subscription": subscription}
......@@ -163,6 +158,8 @@ def create_router() -> StepList:
* Validate :term:`IPAM` resources
* Create a new device in Netbox
"""
router_is_nokia = conditional(lambda state: state["vendor"] == RouterVendor.NOKIA)
return (
init
>> create_subscription
......@@ -172,7 +169,7 @@ def create_router() -> StepList:
>> pp_interaction(deploy_base_config_dry)
>> pp_interaction(deploy_base_config_real)
>> verify_ipam_loopback
>> create_netbox_device
>> router_is_nokia(create_netbox_device)
>> set_status(SubscriptionLifecycle.ACTIVE)
>> 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