From f9e3778ba87d742ccd5ce7320fbfff6981b39c5e Mon Sep 17 00:00:00 2001 From: Bastian Kuhn Date: Fri, 3 Jul 2026 14:40:04 +0200 Subject: [PATCH] hp_proliant_da_cntlr: do not discover phantom controllers The controller table (cpqDaCntlrTable) on HPE ProLiant Gen11 / iLO 6 contains a placeholder row -- typically index 0 -- whose condition, role, board status and board condition cells are all '0', a value the vendor MIB does not define. parse_hp_proliant_da_cntlr already parses such rows to None, but discovery iterated over all section keys and still created a service for the phantom row, which was then permanently UNKNOWN ('Controller not found in SNMP data'). Discovery now skips None entries. --- cmk/plugins/hp_proliant/agent_based/hp_proliant_da_cntlr.py | 5 +++-- .../hp_proliant/agent_based/test_hp_proliant_da_cntlr.py | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/cmk/plugins/hp_proliant/agent_based/hp_proliant_da_cntlr.py b/cmk/plugins/hp_proliant/agent_based/hp_proliant_da_cntlr.py index ff408ef5c9a..c3b5e20cba3 100644 --- a/cmk/plugins/hp_proliant/agent_based/hp_proliant_da_cntlr.py +++ b/cmk/plugins/hp_proliant/agent_based/hp_proliant_da_cntlr.py @@ -187,8 +187,9 @@ def parse_hp_proliant_da_cntlr(string_table: StringTable) -> ParsedSection: def discovery_hp_proliant_da_cntlr(section: ParsedSection) -> DiscoveryResult: - if section: - yield from (Service(item=item) for item in section) + # Skip phantom placeholder rows (all-zero cells, parsed to ``None``): they + # are not real controllers and would produce a permanently UNKNOWN service. + yield from (Service(item=item) for item, data in section.items() if data is not None) def check_hp_proliant_da_cntlr(item: ControllerID, section: ParsedSection) -> CheckResult: diff --git a/tests/unit/cmk/plugins/hp_proliant/agent_based/test_hp_proliant_da_cntlr.py b/tests/unit/cmk/plugins/hp_proliant/agent_based/test_hp_proliant_da_cntlr.py index 99b446da284..25d0c4eb04e 100644 --- a/tests/unit/cmk/plugins/hp_proliant/agent_based/test_hp_proliant_da_cntlr.py +++ b/tests/unit/cmk/plugins/hp_proliant/agent_based/test_hp_proliant_da_cntlr.py @@ -27,7 +27,6 @@ def test_discovery() -> None: Service(item="0"), Service(item="3"), Service(item="6"), - Service(item="9"), ]