From be08a73d26713000cce2a2c340427df4da8a06ff Mon Sep 17 00:00:00 2001 From: mrveiss Date: Sun, 22 Mar 2026 20:45:04 +0200 Subject: [PATCH] fix(slm): auto-populate ansible_name from heartbeat hostname (#1986) When a node's ansible_name is NULL, automatically set it from the agent's reported OS hostname (platform.node()) during heartbeat. Eliminates need for manual backfill of existing nodes. --- autobot-slm-backend/api/nodes.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/autobot-slm-backend/api/nodes.py b/autobot-slm-backend/api/nodes.py index da595e081..b934b1731 100644 --- a/autobot-slm-backend/api/nodes.py +++ b/autobot-slm-backend/api/nodes.py @@ -1539,6 +1539,17 @@ async def node_heartbeat( await _apply_heartbeat_reports(db, node_id, heartbeat, node) + # Auto-populate ansible_name from agent's OS hostname (#1986) + if not node.ansible_name and heartbeat.extra_data: + os_hostname = heartbeat.extra_data.get("hostname") + if os_hostname and os_hostname.strip(): + node.ansible_name = os_hostname.strip() + logger.info( + "Auto-set ansible_name='%s' for node %s", + node.ansible_name, + node_id, + ) + latest_version = await _update_heartbeat_code_status( db, node, heartbeat.extra_data )