From 265fa33497b5e5d249dd9d6a3b27d0e5e605714d Mon Sep 17 00:00:00 2001 From: Mike Geppert Date: Sun, 4 Jan 2026 16:17:06 -0600 Subject: [PATCH] Fix console settings matching to use DeviceName instead of Hostname - Changed from using Hostname base (e.g., 'KitchenBar') to DeviceName (e.g., 'TreatLife_SW_SS02S') - DeviceName matches the template names in device_list configuration - This fixes issue where console settings weren't being applied correctly - Devices were not matching any templates due to hostname vs device type mismatch - Now uses exact match first, then case-insensitive fallback --- console_settings.py | 35 ++++++++++++++++++++--------------- 1 file changed, 20 insertions(+), 15 deletions(-) diff --git a/console_settings.py b/console_settings.py index c41c6a1..8204881 100644 --- a/console_settings.py +++ b/console_settings.py @@ -37,16 +37,15 @@ class ConsoleSettingsManager: """ device_name = device.get('name', 'Unknown') device_ip = device.get('ip', '') - + if not device_ip: return False, "No IP address" - - # Get hostname base for template matching - hostname = device_details.get('StatusNET', {}).get('Hostname', device_name) - hostname_base = get_hostname_base(hostname) - + + # Get device type from DeviceName for template matching + device_type = device_details.get('Status', {}).get('DeviceName', '') + # Find which console_set to use for this device - console_set_name = self._get_console_set_name(hostname_base) + console_set_name = self._get_console_set_name(device_type) if not console_set_name: self.logger.debug(f"{device_name}: No console settings configured") @@ -86,22 +85,28 @@ class ConsoleSettingsManager: self.logger.info(f"{device_name}: All console settings applied successfully") return True, "Applied" - def _get_console_set_name(self, hostname_base: str) -> Optional[str]: + def _get_console_set_name(self, device_type: str) -> Optional[str]: """ - Get the console_set name for a device based on hostname. - + Get the console_set name for a device based on DeviceName. + Args: - hostname_base: Base hostname of device - + device_type: Device type/DeviceName from Status + Returns: str: Console set name or None """ device_list = self.config.get('device_list', {}) - + + # First try exact match + if device_type in device_list: + return device_list[device_type].get('console_set') + + # Then try case-insensitive match + device_type_lower = device_type.lower() for template_name, template_data in device_list.items(): - if hostname_base.lower() in template_name.lower(): + if template_name.lower() == device_type_lower: return template_data.get('console_set') - + return None def _get_console_commands(self, console_set_name: str) -> List[str]: