70 lines
2.0 KiB
Python
70 lines
2.0 KiB
Python
#!/usr/bin/env python3
|
|
# -*- coding: utf-8 -*-
|
|
# Copyright (C) 2019 tribe29 GmbH - License: GNU General Public License v2
|
|
# This file is part of Checkmk (https://checkmk.com). It is subject to the terms and
|
|
# conditions defined in the file COPYING, which is part of this source code package.
|
|
from dataclasses import dataclass
|
|
from typing import Iterable, Mapping, Tuple, NamedTuple
|
|
from .agent_based_api.v1 import check_levels, equals, register, Service, SNMPTree, get_value_store, all_of, exists
|
|
from .agent_based_api.v1.type_defs import CheckResult, DiscoveryResult, StringTable
|
|
from .utils.temperature import check_temperature, TempParamDict
|
|
|
|
def parse_clever_pdu_temp_120(string_table: StringTable):
|
|
data=string_table[0]
|
|
parsed = {}
|
|
parsed = {
|
|
"Master Temperature" : int(data[0]),
|
|
}
|
|
return parsed
|
|
|
|
|
|
|
|
register.snmp_section(
|
|
name="clever_pdu_temp_120",
|
|
parsed_section_name="clever_pdu_temp_120",
|
|
parse_function=parse_clever_pdu_temp_120,
|
|
detect = all_of(
|
|
equals(
|
|
".1.3.6.1.2.1.1.2.0",
|
|
".1.3.6.1.4.1.30966",
|
|
),
|
|
exists(".1.3.6.1.4.1.30966.10.3.2.70.0"),
|
|
),
|
|
fetch=SNMPTree(
|
|
".1.3.6.1.4.1.30966.10.3.2",
|
|
[
|
|
"13", # mTemperature
|
|
],
|
|
),
|
|
)
|
|
|
|
|
|
def discover_clever_pdu_temp_120(section) -> DiscoveryResult:
|
|
if section.get("Master Temperature") == 0:
|
|
return
|
|
else:
|
|
yield from (Service(item=item) for item in section)
|
|
|
|
|
|
def check_clever_pdu_temp_120(item, params: TempParamDict, section) -> CheckResult:
|
|
if (temperature := section.get(item)) is None:
|
|
return
|
|
yield from check_temperature(
|
|
reading=temperature,
|
|
params=params,
|
|
unique_name=item,
|
|
value_store=get_value_store(),
|
|
)
|
|
|
|
|
|
|
|
register.check_plugin(
|
|
name="clever_pdu_temp_120",
|
|
service_name="%s",
|
|
discovery_function=discover_clever_pdu_temp_120,
|
|
check_function=check_clever_pdu_temp_120,
|
|
check_ruleset_name="temperature",
|
|
check_default_parameters={},
|
|
|
|
)
|