diff --git a/gso/workflows/router/update_ibgp_mesh.py b/gso/workflows/router/update_ibgp_mesh.py
index abef7da440b8024b578a7122be54f4440eb6764a..486bc42dc130d9139a7c368c397fc35145b9c472 100644
--- a/gso/workflows/router/update_ibgp_mesh.py
+++ b/gso/workflows/router/update_ibgp_mesh.py
@@ -186,10 +186,15 @@ def check_ibgp_session(subscription: Router, callback_route: str) -> None:
@step("Add the router to LibreNMS")
def add_device_to_librenms(subscription: Router) -> State:
- """Add the router as a device to LibreNMS."""
- client = librenms_client.LibreNMSClient()
- librenms_result = client.add_device(subscription.router.router_fqdn, SNMPVersion.V2C)
+ """Add the router as a device to LibreNMS.
+ If the device already exists, retrieve the device information instead of adding it again
+ """
+ client = librenms_client.LibreNMSClient()
+ if not client.device_exists(subscription.router.router_fqdn):
+ librenms_result = client.add_device(subscription.router.router_fqdn, SNMPVersion.V2C)
+ else:
+ librenms_result = client.get_device(subscription.router.router_fqdn)
return {"librenms_device": librenms_result}
@@ -250,14 +255,14 @@ def update_ibgp_mesh() -> StepList:
>> store_process_subscription(Target.MODIFY)
>> unsync
>> calculate_pe_router_list
- >> lso_interaction(add_p_to_mesh_dry)
- >> lso_interaction(add_p_to_mesh_real)
- >> lso_interaction(add_all_pe_to_p_dry)
- >> lso_interaction(add_all_pe_to_p_real)
- >> lso_interaction(check_ibgp_session)
+ # >> lso_interaction(add_p_to_mesh_dry)
+ # >> lso_interaction(add_p_to_mesh_real)
+ # >> lso_interaction(add_all_pe_to_p_dry)
+ # >> lso_interaction(add_all_pe_to_p_real)
+ # >> lso_interaction(check_ibgp_session)
>> add_device_to_librenms
- >> prompt_insert_in_radius
- >> prompt_radius_login
+ # >> prompt_insert_in_radius
+ # >> prompt_radius_login
>> update_subscription_model
>> resync
>> done