def showMemStat(warning, critical, s):
    pl_op = {}
    if not s:
        pl_op["message"] = ("MEMORY STATUS UNKNOWN")
        pl_op['exit_status'] = utils.PluginStatusCode.UNKNOWN
        return pl_op
    try:
        totalMem = utils.convertSize((int(s['memory']['memfree'])
                                      + int(s['memory']['memused'])),
                                     "KB", "GB")
    except (KeyError, ValueError) as e:
        pl_op["message"] = "key: %s not found" % str(e)
        pl_op["exit_status"] = utils.PluginStatusCode.UNKNOWN
        return pl_op

    crit_value = (totalMem * critical) / 100
    war_value = (totalMem * warning) / 100
    usedMem = utils.convertSize(int(s['memory']['memused']) - int(
        s['memory']['cached']), "KB", "GB")
    usedPercent = usedMem * 100.0 / totalMem
    if usedMem >= crit_value:
        pl_op["message"] = utils.PluginStatus.CRITICAL
        pl_op['exit_status'] = utils.PluginStatusCode.CRITICAL
    elif usedMem >= war_value:
        pl_op["message"] = utils.PluginStatus.WARNING
        pl_op['exit_status'] = utils.PluginStatusCode.WARNING
    else:
        pl_op["message"] = utils.PluginStatus.OK
        pl_op['exit_status'] = utils.PluginStatusCode.OK
    try:
        pl_op["message"] += ("- %.2f%% used(%.2fGB out of %.2fGB)|"
                             "Total=%.2fGB;%.2f;%.2f;0;%.2f"
                             " Used=%.2fGB Buffered=%.2fGB"
                             " Cached=%.2fGB" % (
                                 usedPercent,
                                 usedMem,
                                 totalMem,
                                 totalMem,
                                 war_value,
                                 crit_value,
                                 totalMem,
                                 usedMem,
                                 utils.convertSize(int(s['memory']['buffers']),
                                                   "KB", "GB"),
                                 utils.convertSize(int(s['memory']['cached']),
                                                   "KB", "GB")))
    except (KeyError, ValueError, TypeError) as e:
        pl_op["message"] = "key: %s not found" % str(e)
        pl_op["exit_status"] = utils.PluginStatusCode.UNKNOWN
        return pl_op
    return pl_op
def showSwapStat(warning, critical, s):
    pl_op = {}
    if not s:
        pl_op["message"] = ("SWAP STATUS UNKNOWN")
        pl_op['exit_status'] = utils.PluginStatusCode.UNKNOWN
        return pl_op
    try:
        totalSwap = utils.convertSize((int(s['memory']['swpfree'])
                                       + int(s['memory']['swpused'])),
                                      "KB", "GB")
    except (KeyError, ValueError, TypeError) as e:
        pl_op["message"] = "key: %s not found" % str(e)
        pl_op["exit_status"] = utils.PluginStatusCode.UNKNOWN
        return pl_op

    crit_value = (totalSwap * critical) / 100
    war_value = (totalSwap * warning) / 100
    if utils.convertSize(int(s['memory']['swpused']),
                         "KB", "GB") >= crit_value:
        pl_op["message"] = utils.PluginStatus.CRITICAL
        pl_op['exit_status'] = utils.PluginStatusCode.CRITICAL
    elif utils.convertSize(int(s['memory']['swpused']),
                           "KB", "GB") >= war_value:
        pl_op["message"] = utils.PluginStatus.WARNING
        pl_op['exit_status'] = utils.PluginStatusCode.WARNING
    else:
        pl_op["message"] = utils.PluginStatus.OK
        pl_op['exit_status'] = utils.PluginStatusCode.OK
    try:
        pl_op["message"] += ("- %.2f%% used(%.2fGB out of %.2fGB)|Used=%.2fGB;"
                             "%.2f;%.2f;0;%.2f" % (
                                 float(s['memory']['swpused-percent']),
                                 utils.convertSize(int(s['memory']['swpused']),
                                                   "KB", "GB"),
                                 totalSwap,
                                 utils.convertSize(int(s['memory']['swpused']),
                                                   "KB", "GB"),
                                 war_value,
                                 crit_value,
                                 totalSwap))
    except (KeyError, ValueError, TypeError) as e:
        pl_op["message"] = "key: %s not found" % str(e)
        pl_op["exit_status"] = utils.PluginStatusCode.UNKNOWN
        return pl_op
    return pl_op
Exemple #3
0
def showMemStat(warning, critical, s):
    pl_op = {}
    if not s:
        pl_op["message"] = ("MEMORY STATUS UNKNOWN")
        pl_op['exit_status'] = utils.PluginStatusCode.UNKNOWN
        return pl_op
    try:
        totalMem = utils.convertSize(
            (int(s['memory']['memfree']) + int(s['memory']['memused'])), "KB",
            "GB")
    except (KeyError, ValueError) as e:
        pl_op["message"] = "key: %s not found" % str(e)
        pl_op["exit_status"] = utils.PluginStatusCode.UNKNOWN
        return pl_op

    crit_value = (totalMem * critical) / 100
    war_value = (totalMem * warning) / 100
    usedMem = utils.convertSize(
        int(s['memory']['memused']) - int(s['memory']['cached']), "KB", "GB")
    usedPercent = usedMem * 100.0 / totalMem
    if usedMem >= crit_value:
        pl_op["message"] = utils.PluginStatus.CRITICAL
        pl_op['exit_status'] = utils.PluginStatusCode.CRITICAL
    elif usedMem >= war_value:
        pl_op["message"] = utils.PluginStatus.WARNING
        pl_op['exit_status'] = utils.PluginStatusCode.WARNING
    else:
        pl_op["message"] = utils.PluginStatus.OK
        pl_op['exit_status'] = utils.PluginStatusCode.OK
    try:
        pl_op["message"] += (
            "- %.2f%% used(%.2fGB out of %.2fGB)|"
            "Total=%.2fGB;%.2f;%.2f;0;%.2f"
            " Used=%.2fGB Buffered=%.2fGB"
            " Cached=%.2fGB" %
            (usedPercent, usedMem, totalMem, totalMem, war_value, crit_value,
             totalMem, usedMem,
             utils.convertSize(int(s['memory']['buffers']), "KB", "GB"),
             utils.convertSize(int(s['memory']['cached']), "KB", "GB")))
    except (KeyError, ValueError, TypeError) as e:
        pl_op["message"] = "key: %s not found" % str(e)
        pl_op["exit_status"] = utils.PluginStatusCode.UNKNOWN
        return pl_op
    return pl_op
Exemple #4
0
    args = parser.parse_args()
    # Check the various performance statuses for the host
    numVolumes, used, avail = checkVolumePerfData(args.hostgroup)
    statusstr = utils.PluginStatus.OK
    exitstatus = utils.PluginStatusCode.OK
    if numVolumes == 0:
        statusstr = utils.PluginStatus.OK
        exitstatus = utils.PluginStatusCode.OK
        print("%s - No volumes found|used=0;%s;%s;0;%s;" %
              (statusstr, args.warn, args.crit, 100))
    elif numVolumes > 0 and used == 0 and avail == 0:
        statusstr = utils.PluginStatus.UNKNOWN
        exitstatus = utils.PluginStatusCode.UNKNOWN
        print("%s - Volume utilization data could not be read" % statusstr)
    else:
        warn = int((args.warn * avail) / 100.0)
        crit = int((args.crit * avail) / 100.0)
        usedpercent = int((used / avail) * 100.0)
        if (usedpercent >= args.warn):
            statusstr = utils.PluginStatus.WARNING
            exitstatus = utils.PluginStatusCode.WARNING
        if (usedpercent >= args.crit):
            statusstr = utils.PluginStatus.CRITICAL
            exitstatus = utils.PluginStatusCode.CRITICAL
        availGB = utils.convertSize(avail, "KB", "GB")
        print("%s - used %s%% of available %s GB|used=%s;%s;%s;0;%s;" %
              (statusstr, usedpercent, availGB, usedpercent, args.warn,
               args.crit, 100))

    sys.exit(exitstatus)
    args = parser.parse_args()
    # Check the various performance statuses for the host
    numVolumes, used, avail = checkVolumePerfData(args.hostgroup)
    statusstr = utils.PluginStatus.OK
    exitstatus = utils.PluginStatusCode.OK
    if numVolumes == 0:
        statusstr = utils.PluginStatus.OK
        exitstatus = utils.PluginStatusCode.OK
        print("%s - No volumes found|used=0;%s;%s;0;%s;" % (statusstr, args.warn, args.crit, 100))
    elif numVolumes > 0 and used == 0 and avail == 0:
        statusstr = utils.PluginStatus.UNKNOWN
        exitstatus = utils.PluginStatusCode.UNKNOWN
        print("%s - Volume utilization data could not be read" % statusstr)
    else:
        warn = int((args.warn * avail) / 100.0)
        crit = int((args.crit * avail) / 100.0)
        usedpercent = int((used / avail) * 100.0)
        if usedpercent >= args.warn:
            statusstr = utils.PluginStatus.WARNING
            exitstatus = utils.PluginStatusCode.WARNING
        if usedpercent >= args.crit:
            statusstr = utils.PluginStatus.CRITICAL
            exitstatus = utils.PluginStatusCode.CRITICAL
        availGB = utils.convertSize(avail, "KB", "GB")
        print(
            "%s - used %s%% of available %s GB|used=%s;%s;%s;0;%s;"
            % (statusstr, usedpercent, availGB, usedpercent, args.warn, args.crit, 100)
        )

    sys.exit(exitstatus)
Exemple #6
0
 def testMBToMB(self):
     retVal = utils.convertSize(900, 'MB', 'MB')
     assert (retVal == 900)
Exemple #7
0
 def testInvalidInput(self):
     with self.assertRaises(ValueError):
         utils.convertSize(89, 'P', 'M')
Exemple #8
0
 def testPBtoMB(self):
     retVal = utils.convertSize(8, 'PB', 'MB')
     assert (round(retVal, 0) == 8589934592)
Exemple #9
0
 def testBytesToMB(self):
     retVal = utils.convertSize(778999, 'B', 'MB')
     assert (round(retVal, 2) == 0.74)