haiku вайб 6
This commit is contained in:
parent
475250eb6f
commit
5b6324e967
1 changed files with 17 additions and 7 deletions
|
|
@ -103,40 +103,49 @@ def _parse_config(config_text: str, rack_host: str) -> list[DiscoveredDevice]:
|
||||||
|
|
||||||
discovered: list[DiscoveredDevice] = []
|
discovered: list[DiscoveredDevice] = []
|
||||||
seen_ips: set[str] = set()
|
seen_ips: set[str] = set()
|
||||||
|
all_sections = parser.sections()
|
||||||
|
plugin_sections = [s for s in all_sections if s.startswith("plugin:")]
|
||||||
|
|
||||||
for section in parser.sections():
|
logger.info(f"[ssh_discovery] Config parsing: found {len(all_sections)} sections total, {len(plugin_sections)} are plugins")
|
||||||
|
|
||||||
|
for section in all_sections:
|
||||||
if not section.startswith("plugin:"):
|
if not section.startswith("plugin:"):
|
||||||
continue
|
continue
|
||||||
|
|
||||||
plugin_name = section[len("plugin:"):]
|
plugin_name = section[len("plugin:"):]
|
||||||
if any(plugin_name.startswith(prefix) for prefix in _SKIP_PLUGIN_PREFIXES):
|
if any(plugin_name.startswith(prefix) for prefix in _SKIP_PLUGIN_PREFIXES):
|
||||||
logger.debug(f"[ssh_discovery] Plugin {plugin_name} - IGNORED (prefix in skip list: {_SKIP_PLUGIN_PREFIXES})")
|
logger.info(f"[ssh_discovery] Plugin '{plugin_name}' - IGNORED (in skip list)")
|
||||||
continue
|
continue
|
||||||
|
|
||||||
cls = parser.get(section, "cls", fallback="")
|
cls = parser.get(section, "cls", fallback="")
|
||||||
if not cls:
|
if not cls:
|
||||||
logger.debug(f"[ssh_discovery] Plugin {plugin_name} - IGNORED (no 'cls' field)")
|
logger.info(f"[ssh_discovery] Plugin '{plugin_name}' - IGNORED (no 'cls' field)")
|
||||||
continue
|
continue
|
||||||
|
|
||||||
|
logger.info(f"[ssh_discovery] Plugin '{plugin_name}' (cls={cls})")
|
||||||
|
|
||||||
# Collect all URI-like values in this section
|
# Collect all URI-like values in this section
|
||||||
uri_fields = ("uri", "frame_uri", "host")
|
uri_fields = ("uri", "frame_uri", "host")
|
||||||
|
found_ip_in_plugin = False
|
||||||
for field_name in uri_fields:
|
for field_name in uri_fields:
|
||||||
raw = parser.get(section, field_name, fallback=None)
|
raw = parser.get(section, field_name, fallback=None)
|
||||||
if not raw:
|
if not raw:
|
||||||
|
logger.debug(f"[ssh_discovery] {field_name}: not set")
|
||||||
continue
|
continue
|
||||||
|
logger.debug(f"[ssh_discovery] {field_name}='{raw}'")
|
||||||
ip = _extract_ip(raw)
|
ip = _extract_ip(raw)
|
||||||
if not ip:
|
if not ip:
|
||||||
logger.debug(f"[ssh_discovery] Plugin {plugin_name} field {field_name}='{raw}' - IGNORED (not a valid network IP)")
|
logger.info(f"[ssh_discovery] {field_name}='{raw}' - IGNORED (not a valid network IP)")
|
||||||
continue
|
continue
|
||||||
if ip == rack_host:
|
if ip == rack_host:
|
||||||
logger.debug(f"[ssh_discovery] IP {ip} from plugin {plugin_name} - IGNORED (matches rack_host)")
|
logger.info(f"[ssh_discovery] IP {ip} - IGNORED (matches rack_host {rack_host})")
|
||||||
continue
|
continue
|
||||||
if ip in seen_ips:
|
if ip in seen_ips:
|
||||||
logger.debug(f"[ssh_discovery] IP {ip} from plugin {plugin_name} - IGNORED (duplicate, already seen)")
|
logger.info(f"[ssh_discovery] IP {ip} - IGNORED (duplicate, already seen)")
|
||||||
continue
|
continue
|
||||||
|
|
||||||
seen_ips.add(ip)
|
seen_ips.add(ip)
|
||||||
logger.debug(f"[ssh_discovery] IP {ip} from plugin {plugin_name} - EXTRACTED (cls={cls}, category={_cls_to_category(cls)}, role={_cls_to_role(cls, plugin_name)})")
|
logger.info(f"[ssh_discovery] IP {ip} - EXTRACTED (category={_cls_to_category(cls)}, role={_cls_to_role(cls, plugin_name)})")
|
||||||
discovered.append(DiscoveredDevice(
|
discovered.append(DiscoveredDevice(
|
||||||
ip=ip,
|
ip=ip,
|
||||||
category=_cls_to_category(cls),
|
category=_cls_to_category(cls),
|
||||||
|
|
@ -144,6 +153,7 @@ def _parse_config(config_text: str, rack_host: str) -> list[DiscoveredDevice]:
|
||||||
plugin_name=plugin_name,
|
plugin_name=plugin_name,
|
||||||
cls=cls,
|
cls=cls,
|
||||||
))
|
))
|
||||||
|
found_ip_in_plugin = True
|
||||||
|
|
||||||
return discovered
|
return discovered
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue