#!/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 cmk.base.check_legacy_includes import qnap
from cmk.base.check_legacy_includes.fan import check_fan

factory_settings["qnap_fan_default_levels"] = {
    "upper": (None, None),
    "lower": (2000, 1000),
}


def parse_qnap_fans(info):
    parsed = {}
    for fan, value in info:
        try:
            parsed[fan] = int(value.replace("RPM", ""))
        except ValueError:
            pass
    return parsed


@get_parsed_item_data
def check_qnap_fans(_item, params, data):
    return check_fan(data, params)


check_info["qnap_fans"] = {
    "inventory_function": discover(),
    "parse_function": parse_qnap_fans,
    "check_function": check_qnap_fans,
    "service_description": "QNAP FAN %s",
    "snmp_info": (".1.3.6.1.4.1.24681.1.2.15.1", [OID_END, 3]),
    "snmp_scan_function": qnap.scan,
    "has_perfdata": True,
    "default_levels_variable": "qnap_fan_default_levels",
    "group": "hw_fans",
}
