fail_ifNot_Py3()

    senderData = []
    jsonData = []

    p_Output = getOutput(BIN_PATH)
    pRunStatus = p_Output[0]
    pOut = p_Output[1]

    errors = None
    if pOut:
        getCpuData_Out = getCpuData(pOut)
        cpuErrors = getCpuData_Out[2]
        senderData.extend(getCpuData_Out[0])
        jsonData.extend(getCpuData_Out[1])
        if cpuErrors:
            errors = 'cpu_err'
            senderData.append('"%s" mini.cpu.info[ConfigStatus] "%s"' %
                              (HOST, cpuErrors))

    if not errors:
        senderData.append(
            '"%s" mini.cpu.info[ConfigStatus] "%s"' %
            (HOST,
             pRunStatus))  # OS_NOCMD, OS_ERROR, UNKNOWN_EXC_ERROR, CONFIGURED

    link = r'https://github.com/nobodysu/zabbix-mini-IPMI/issues'
    sendStatusKey = 'mini.cpu.info[SendStatus]'
    processData(senderData, jsonData, AGENT_CONF_PATH, SENDER_WRAPPER_PATH,
                SENDER_PATH, TIMEOUT, HOST, link, sendStatusKey)
                for i in softwareElementState:
                    if i[0] == val:
                        val = i[1]

            if key == 'hw.bios.TargetOperatingSystem':
                for i in targetOS:
                    if i[0] == val:
                        val = i[1]

            sender.append('"%s" %s "%s"' % (host, key, val))

    return sender


if __name__ == '__main__':

    fail_ifNot_Py3()

    host = str(sys.argv[2])

    p_out_once = get_output(cmd)
    p_out = p_out_once[0]
    senderData = findValues(p_out)

    timeout = '0'

    link = 'https://github.com/nobodysu/zabbix-hardware'
    sendStatusKey = 'hw.bios.info[SendStatus]'
    processData(senderData, '', agentConf, senderPyPath, senderPath, timeout,
                host, link, sendStatusKey)
        scanConfigError = listDisks_Out[0]   # SCAN_OS_NOCMD, SCAN_OS_ERROR, SCAN_UNKNOWN_ERROR
        diskList = listDisks_Out[1]
    else:
        scanConfigError = ''
        diskList = diskListManual   # or just use manually provided settings

    if diskList:
        getDisksTempSCT_Out = getDisksTempSCT()

        diskConfigError = getDisksTempSCT_Out[0]   # D_OS_NOCMD, D_OS_ERROR, NOTEMPS, UNKNOWN_EXC_ERROR
        senderData = getDisksTempSCT_Out[1]
    else:
        diskConfigError = 'NODISKS'
        senderData = []

    if scanConfigError != '':
        senderData.append(host + ' mini.disk.info[ConfigStatus] "' + scanConfigError + '"')   # takes precedence
    elif diskConfigError != '':
        senderData.append(host + ' mini.disk.info[ConfigStatus] "' + diskConfigError + '"')   # on mixed errors
    else:
        senderData.append(host + ' mini.disk.info[ConfigStatus] "CONFIGURED"')   # signals that client host is configured

    for d in diskList:
        dR = replaceStr(d)
        jsonData.append({'{#DISK}':dR})   # available disks must always be populated to LLD

    link = r'https://github.com/nobodysu/zabbix-mini-IPMI/issues'
    processData(senderData, jsonData, agentConf, senderPyPath, senderPath, timeout, host, link)

Exemple #4
0
            jsonData.extend(getVoltages_Out[1])

        if gatherBoardFans == 'yes':
            getBoardFans_Out = getBoardFans()
            senderData.extend(getBoardFans_Out[0])
            jsonData.extend(getBoardFans_Out[1])

        if gatherGpuData == 'yes':
            getGpuData_Out = getGpuData()
            senderData.extend(getGpuData_Out[0])
            jsonData.extend(getGpuData_Out[1])
            if getGpuData_Out[2]:
                statusC = 'gpu_err'
                # mini.cpu.info[ConfigStatus] is used to track configuration states including cpu and gpu:
                senderData.append(host + ' mini.cpu.info[ConfigStatus] "' + getGpuData_Out[2] + '"')   # NOGPUS, NOGPUTEMPS

        if gatherCpuData == 'yes':
            getCpuData_Out = getCpuData(currentBoard)
            senderData.extend(getCpuData_Out[0])
            jsonData.extend(getCpuData_Out[1])
            if getCpuData_Out[2]:
                statusC = 'cpu_err'
                senderData.append(host + ' mini.cpu.info[ConfigStatus] "' + getCpuData_Out[2] + '"')   # NOCPUS, NOCPUTEMPS (comes after gpu call and can supersede its errors on trigger)

    if not statusC:
        senderData.append(host + ' mini.cpu.info[ConfigStatus] "' + getOutput_Out[0] + '"')   # OS_NOCMD, OS_ERROR, UNKNOWN_EXC_ERROR, CONFIGURED

    link = r'https://github.com/nobodysu/zabbix-mini-IPMI/issues'
    processData(senderData, jsonData, agentConf, senderPyPath, senderPath, timeout, host, link)