#!/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.

# NOTE: Careful when replacing the *-import below with a more specific import. This can cause
# problems because it might remove variables from the check-context which are necessary for
# resolving legacy discovery results such as [("SUMMARY", "diskstat_default_levels")]. Furthermore,
# it might also remove variables needed for accessing discovery rulesets.
from cmk.base.check_legacy_includes.blade_scan import *  # pylint: disable=wildcard-import,unused-wildcard-import


def inventory_blade_powermod(info):
    return [(line[0], "", '""') for line in info if line[1] == "1"]


def check_blade_powermod(index, _no_param, info):
    for line in info:
        if line[0] == index:
            present, status, text = line[1:]
            if present != "1":
                return (2, "Not present")
            elif status != "1":
                return (2, "%s" % text)
            return (0, "%s" % text)
    return (3, "Module %s not found in SNMP info" % index)


check_info["blade_powermod"] = {
    "check_function": check_blade_powermod,
    "inventory_function": inventory_blade_powermod,
    "service_description": "Power Module %s",
    "snmp_info": (".1.3.6.1.4.1.2.3.51.2.2.4.1.1", [1, 2, 3, 4]),
    "snmp_scan_function": scan_blade_power_modules,
}
