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]: