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

# .1.3.6.1.4.1.12196.13.0.9.0 1
# .1.3.6.1.4.1.12196.13.0.10.0 7.1-20b.20140926-1505


def inventory_kemp_loadmaster_ha(info):
    if info and info[0][0] != "0":
        return [(None, None)]


def check_kemp_loadmaster_ha(_no_item, _no_params, info):
    map_states = {
        "0": "none",
        "1": "master",
        "2": "standby",
        "3": "passive",
    }

    return 0, "Device is: %s (Firmware: %s)" % (map_states[info[0][0]], info[0][1])


check_info["kemp_loadmaster_ha"] = {
    "check_function": check_kemp_loadmaster_ha,
    "inventory_function": inventory_kemp_loadmaster_ha,
    "service_description": "HA State",
    "snmp_info": (
        ".1.3.6.1.4.1.12196.13.0",
        [
            "9",  # B100-MIB::hAstate
            "10",  # B100-MIB::patchVersion
        ],
    ),
    "snmp_scan_function": lambda oid: oid(".1.3.6.1.2.1.1.2.0")
    in [".1.3.6.1.4.1.12196.250.10", ".1.3.6.1.4.1.2021.250.10"]
    and oid(".1.3.6.1.4.1.12196.13.0.9.*"),
}
