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


def inventory_emc_isilon_diskstatus(info):
    for disk_id, _name, _disk_status, _serial in info:
        yield disk_id, None


def check_emc_isilon_diskstatus(item, _no_params, info):
    for disk_id, name, disk_status, serial in info:
        if disk_id == item:
            message = "Disk %s, serial number %s status is %s" % (name, serial, disk_status)
            if disk_status in ["HEALTHY", "L3"]:
                status = 0
            else:
                status = 2
            return status, message


check_info["emc_isilon_diskstatus"] = {
    "check_function": check_emc_isilon_diskstatus,
    "inventory_function": inventory_emc_isilon_diskstatus,
    "service_description": "Disk bay %s Status",
    "snmp_info": (
        ".1.3.6.1.4.1.12124.2.52.1",
        [
            1,  # diskBay
            4,  # diskDeviceName
            5,  # diskStatus
            7,  # diskSerialNumber
        ],
    ),
    "snmp_scan_function": lambda oid: "isilon" in oid(".1.3.6.1.2.1.1.1.0").lower(),
}
