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)
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)