Module: check_mk
Branch: master
Commit: f77b690f8492f8c201d8b322a47a48aa307f3a6b
URL:
http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=f77b690f8492f8…
Author: Moritz Kiemer <mo(a)mathias-kettner.de>
Date: Thu Nov 8 11:43:50 2018 +0100
wmi.include, wmi_cpuload: Own discovery function for wmi_cpuload
Eliminate 'skip_intersection' keyword argument
Change-Id: I6e1acba344361ab5e7bdd28a695986d87929a4b1
---
checks/wmi.include | 24 +++++++-----------------
checks/wmi_cpuload | 10 ++++++----
2 files changed, 13 insertions(+), 21 deletions(-)
diff --git a/checks/wmi.include b/checks/wmi.include
index 058f378..8162ee0 100644
--- a/checks/wmi.include
+++ b/checks/wmi.include
@@ -261,23 +261,13 @@ def inventory_wmi_table(tables, **kwargs):
return []
potential_instances = set()
- if kwargs.get("skip_intersection", False):
- # Unfortunately there are tables which do NOT provide any
- # names. In this case we fallback to old behaviour.
- #
- # Eg. wmi_cpuload check plugin:
- # 'system_perf' section has only counters and comes together
- # with 'computer_system' which has table names and intersection
- # of these tables would be empty. Thus no service is discovered.
- potential_instances = set([None])
- else:
- # inventarize one item per instance that exists in all tables
- for required_table in required_tables:
- table_rows = tables[required_table].row_labels()
- if potential_instances:
- potential_instances &= set(table_rows)
- else:
- potential_instances = set(table_rows)
+ # inventarize one item per instance that exists in all tables
+ for required_table in required_tables:
+ table_rows = tables[required_table].row_labels()
+ if potential_instances:
+ potential_instances &= set(table_rows)
+ else:
+ potential_instances = set(table_rows)
# if there are multiple instances, don't include the summary line as it is
redundant
if len(potential_instances) > 1:
diff --git a/checks/wmi_cpuload b/checks/wmi_cpuload
index 0a96466..a4dc9ed 100644
--- a/checks/wmi_cpuload
+++ b/checks/wmi_cpuload
@@ -25,10 +25,12 @@
# Boston, MA 02110-1301 USA.
-def inventory_wmi_cpuload(parsed):
- return inventory_wmi_table(parsed, \
- required_tables = [ "computer_system", "system_perf"
],
- skip_intersection=True)
+def inventory_wmi_cpuload(tables):
+ if ("computer_system" not in tables.keys() or
+ "system_perf" not in tables.keys() or
+ any(isinstance(table, NullTable) for table in tables.itervalues())):
+ return []
+ return [(None, None)]
def check_wmi_cpuload(item, params, parsed):