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

remove Kentik steps from router creation and termination workflows

parent ee7e4d30
No related branches found
No related tags found
1 merge request!244remove Kentik steps from router creation and termination workflows
Pipeline #88208 failed
...@@ -110,12 +110,7 @@ ...@@ -110,12 +110,7 @@
"api_key": "kentik_api_key", "api_key": "kentik_api_key",
"device_type": "router", "device_type": "router",
"minimize_snmp": false, "minimize_snmp": false,
"billing_plans": { "placeholder_license_key": "placeholder license",
"1": "XL license",
"2": "L license",
"3": "M license",
"4": "S license"
},
"sample_rate": 100, "sample_rate": 100,
"bgp_type": "device", "bgp_type": "device",
"bgp_lookup_strategy": "lu_global_fallback", "bgp_lookup_strategy": "lu_global_fallback",
......
...@@ -114,7 +114,7 @@ class KentikClient: ...@@ -114,7 +114,7 @@ class KentikClient:
def create_device(self, device: NewKentikDevice) -> dict[str, Any]: def create_device(self, device: NewKentikDevice) -> dict[str, Any]:
"""Add a new device to Kentik.""" """Add a new device to Kentik."""
plan_id = self.get_plan_by_name(self.config.billing_plans[device.site_tier])["id"] plan_id = self.get_plan_by_name(self.config.placeholder_license_key)["id"]
request_body = { request_body = {
"device": { "device": {
**device.model_dump(exclude=set("device_name" "site_tier")), **device.model_dump(exclude=set("device_name" "site_tier")),
......
...@@ -16,7 +16,6 @@ from pydantic_forms.types import UUIDstr, strEnum ...@@ -16,7 +16,6 @@ from pydantic_forms.types import UUIDstr, strEnum
from pydantic_settings import BaseSettings from pydantic_settings import BaseSettings
from typing_extensions import Doc from typing_extensions import Doc
from gso.products.product_blocks.site import SiteTier
from gso.utils.shared_enums import PortNumber from gso.utils.shared_enums import PortNumber
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
...@@ -184,7 +183,7 @@ class KentikParams(BaseSettings): ...@@ -184,7 +183,7 @@ class KentikParams(BaseSettings):
api_key: str api_key: str
device_type: str device_type: str
minimize_snmp: bool minimize_snmp: bool
billing_plans: dict[SiteTier, str] placeholder_license_key: str
sample_rate: int sample_rate: int
bgp_type: str bgp_type: str
bgp_lookup_strategy: str bgp_lookup_strategy: str
......
...@@ -18,7 +18,6 @@ from gso.products.product_blocks.router import RouterRole ...@@ -18,7 +18,6 @@ from gso.products.product_blocks.router import RouterRole
from gso.products.product_types.router import RouterInactive, RouterProvisioning from gso.products.product_types.router import RouterInactive, RouterProvisioning
from gso.products.product_types.site import Site from gso.products.product_types.site import Site
from gso.services import infoblox, subscriptions from gso.services import infoblox, subscriptions
from gso.services.kentik_client import KentikClient, NewKentikDevice
from gso.services.lso_client import lso_interaction from gso.services.lso_client import lso_interaction
from gso.services.netbox_client import NetboxClient from gso.services.netbox_client import NetboxClient
from gso.services.partners import get_partner_by_name from gso.services.partners import get_partner_by_name
...@@ -144,46 +143,6 @@ def create_netbox_device(subscription: RouterInactive) -> State: ...@@ -144,46 +143,6 @@ def create_netbox_device(subscription: RouterInactive) -> State:
return {"subscription": subscription} return {"subscription": subscription}
@step("Create Kentik device")
def create_kentik_device(subscription: RouterInactive) -> State:
"""Create a new device in Kentik."""
if not (
subscription.router.router_site
and subscription.router.router_site.site_name
and subscription.router.router_site.site_tier
and subscription.router.router_fqdn
):
msg = "Router object is missing required properties."
raise ProcessFailureError(msg)
kentik_client = KentikClient()
kentik_site = kentik_client.get_site_by_name(subscription.router.router_site.site_name)
if not kentik_site:
msg = f"Site could not be found in Kentik: {subscription.router.router_site.site_name}"
raise ProcessFailureError(msg)
site_tier = subscription.router.router_site.site_tier
new_device = NewKentikDevice(
device_name=subscription.router.router_fqdn,
device_description=str(subscription.subscription_id),
sending_ips=[str(subscription.router.router_lo_ipv4_address)],
site_tier=site_tier,
site_id=kentik_site["id"],
device_snmp_ip=str(subscription.router.router_lo_ipv4_address),
device_bgp_flowspec=False,
device_bgp_neighbor_ip=str(subscription.router.router_lo_ipv4_address),
device_bgp_neighbor_ip6=str(subscription.router.router_lo_ipv6_address),
)
kentik_device = kentik_client.create_device(new_device)
if "error" in kentik_device or "kentik_error" in kentik_device:
raise ProcessFailureError(str(kentik_device))
kentik_device.pop("custom_column_data", None)
return {"kentik_device": kentik_device}
@step("Verify IPAM resources for loopback interface") @step("Verify IPAM resources for loopback interface")
def verify_ipam_loopback(subscription: RouterInactive) -> None: def verify_ipam_loopback(subscription: RouterInactive) -> None:
"""Validate the :term:`IPAM` resources for the loopback interface. """Validate the :term:`IPAM` resources for the loopback interface.
...@@ -313,7 +272,6 @@ def create_router() -> StepList: ...@@ -313,7 +272,6 @@ def create_router() -> StepList:
>> prompt_insert_in_ims >> prompt_insert_in_ims
>> prompt_insert_in_radius >> prompt_insert_in_radius
>> router_is_nokia(create_netbox_device) >> router_is_nokia(create_netbox_device)
>> create_kentik_device
>> lso_interaction(run_checks_after_base_config) >> lso_interaction(run_checks_after_base_config)
>> set_status(SubscriptionLifecycle.PROVISIONING) >> set_status(SubscriptionLifecycle.PROVISIONING)
>> create_new_sharepoint_checklist >> create_new_sharepoint_checklist
......
...@@ -21,7 +21,6 @@ from orchestrator.workflows.utils import wrap_modify_initial_input_form ...@@ -21,7 +21,6 @@ from orchestrator.workflows.utils import wrap_modify_initial_input_form
from gso.products.product_blocks.router import RouterRole from gso.products.product_blocks.router import RouterRole
from gso.products.product_types.router import Router from gso.products.product_types.router import Router
from gso.services import infoblox, lso_client from gso.services import infoblox, lso_client
from gso.services.kentik_client import KentikClient
from gso.services.librenms_client import LibreNMSClient from gso.services.librenms_client import LibreNMSClient
from gso.services.lso_client import execute_playbook, lso_interaction from gso.services.lso_client import execute_playbook, lso_interaction
from gso.services.netbox_client import NetboxClient from gso.services.netbox_client import NetboxClient
...@@ -238,12 +237,6 @@ def remove_device_from_librenms(subscription: Router) -> dict[str, Router]: ...@@ -238,12 +237,6 @@ def remove_device_from_librenms(subscription: Router) -> dict[str, Router]:
return {"subscription": subscription} return {"subscription": subscription}
@step("Archive device in Kentik")
def remove_device_from_kentik(subscription: Router) -> None:
"""Archive the device in Kentik."""
KentikClient().remove_device(subscription.router.router_fqdn, archive=True)
@workflow( @workflow(
"Terminate router", "Terminate router",
initial_input_form=wrap_modify_initial_input_form(initial_input_form_generator), initial_input_form=wrap_modify_initial_input_form(initial_input_form_generator),
...@@ -278,7 +271,6 @@ def terminate_router() -> StepList: ...@@ -278,7 +271,6 @@ def terminate_router() -> StepList:
>> run_config_steps(lso_interaction(remove_config_from_router_real)) >> run_config_steps(lso_interaction(remove_config_from_router_real))
>> router_is_nokia(remove_device_from_netbox) >> router_is_nokia(remove_device_from_netbox)
>> remove_device_from_librenms >> remove_device_from_librenms
>> remove_device_from_kentik
>> set_status(SubscriptionLifecycle.TERMINATED) >> set_status(SubscriptionLifecycle.TERMINATED)
>> 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