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
This commit is contained in:
parent
80b55b6b43
commit
265fa33497
@ -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]:
|
||||
|
||||
Loading…
Reference in New Issue
Block a user