Skip to content

Modify kentik license

A workflow that modifies the Kentik license of a router.

Change the license of a router in Kentik. The operator can select the license from a list of all available plans in Kentik, and it will show the utilisation of each license.

update_kentik_license(subscription, new_plan_id)

Update a Kentik device with a new license attached to it.

Source code in gso/workflows/router/modify_kentik_license.py
@step("Update device license in Kentik")
def update_kentik_license(subscription: Router, new_plan_id: int) -> State:
    """Update a Kentik device with a new license attached to it."""
    kentik_client = KentikClient()
    kentik_device = kentik_client.get_device_by_name(subscription.router.router_fqdn)
    if "id" not in kentik_device:
        msg = "Failed to find Kentik device by name"
        raise ProcessFailureError(msg, details=subscription.router.router_fqdn)

    updated_kentik_device = kentik_client.update_device(kentik_device["id"], {"device": {"plan_id": new_plan_id}})

    return {"kentik_device": updated_kentik_device}

modify_router_kentik_license()

Apply a selected Kentik license on an existing PE router.

Source code in gso/workflows/router/modify_kentik_license.py
@workflow(
    "Modify Kentik license",
    initial_input_form=wrap_modify_initial_input_form(_initial_input_form),
    target=Target.MODIFY,
)
def modify_router_kentik_license() -> StepList:
    """Apply a selected Kentik license on an existing PE router."""
    return begin >> store_process_subscription(Target.MODIFY) >> update_kentik_license >> done