summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xplugins/check_vol_utilization.py32
-rw-r--r--plugins/volcap/volCap.c2
2 files changed, 14 insertions, 20 deletions
diff --git a/plugins/check_vol_utilization.py b/plugins/check_vol_utilization.py
index ab58e58..8500df0 100755
--- a/plugins/check_vol_utilization.py
+++ b/plugins/check_vol_utilization.py
@@ -32,8 +32,6 @@ def showVolumeUtilization(vname, warnLevel, critLevel):
sys.stdout.write("UNKNOWN: Failed to get the "
"Volume Utilization Data\n")
sys.exit(utils.PluginStatusCode.UNKNOWN)
-# print buf
-
####################################################################
#statvfs.frsize * statvfs.f_blocks# Size of filesystem in bytes #
#statvfs.frsize * statvfs.f_bfree # Actual number of free bytes #
@@ -41,35 +39,31 @@ def showVolumeUtilization(vname, warnLevel, critLevel):
#ordinary users are allowed to use (excl. reserved space #
####################################################################
#total size in KB
- total_size = (buf['f_bsize'] * buf['f_blocks']) * 0.000976563
+ total_size = (buf['f_bsize'] * buf['f_blocks']) / 1024.0
#Available free size in KB
- free_size = (buf['f_bsize'] * buf['f_bavail']) * 0.000976563
+ free_size = (buf['f_bsize'] * buf['f_bavail']) / 1024.0
#used size in KB
- used_size = total_size - ((buf['f_bsize'] * buf['f_bfree']) * 0.000976563)
+ used_size = total_size - ((buf['f_bsize'] * buf['f_bfree']) / 1024.0)
vol_utilization = (used_size / total_size) * 100
perfLines = []
- perfLines.append(("utilization=%s%%;%s;%s total=%s "
- "used=%s free=%s" % (str(int(vol_utilization)),
- str(warnLevel), str(critLevel),
- str(int(total_size)),
- str(int(used_size)),
- str(int(free_size)))))
-# print perfLines
-
+ perfLines.append(("utilization=%.2f%%;%d;%d total=%0.2f "
+ "used=%0.2f free=%0.2f" % (vol_utilization, warnLevel,
+ critLevel, total_size,
+ used_size, free_size)))
if int(vol_utilization) > critLevel:
sys.stdout.write(
- ("CRITICAL: Utilization:%s%%"
- "| %s\n" % (str(int(vol_utilization)), " ".join(perfLines))))
+ ("CRITICAL: Utilization:%0.2f%%"
+ "| %s\n" % (vol_utilization, " ".join(perfLines))))
sys.exit(utils.PluginStatusCode.CRITICAL)
elif int(vol_utilization) > warnLevel:
sys.stdout.write(
- ("WARNING: Utilization:%s%%"
- "| %s\n" % (str(int(vol_utilization)), " ".join(perfLines))))
+ ("WARNING: Utilization:%0.2f%%"
+ "| %s\n" % (vol_utilization, " ".join(perfLines))))
sys.exit(utils.PluginStatusCode.WARNING)
else:
sys.stdout.write(
- ("OK: Utilization:%s%%"
- "| %s\n" % (str(int(vol_utilization)), " ".join(perfLines))))
+ ("OK: Utilization:%0.2f%%"
+ "| %s\n" % (vol_utilization, " ".join(perfLines))))
sys.exit(utils.PluginStatusCode.OK)
diff --git a/plugins/volcap/volCap.c b/plugins/volcap/volCap.c
index 5eb61db..8c0c4e4 100644
--- a/plugins/volcap/volCap.c
+++ b/plugins/volcap/volCap.c
@@ -115,7 +115,7 @@ static PyObject *glfspy_statvfs (PyObject *self, PyObject *args)
closelog ();
//return Py_BuildValue("i", rv);
if(rv == 0)
- return Py_BuildValue("{s:i,s:i,s:i,s:i,s:i,s:i,s:i,s:i,s:i,s:i,s:i}","f_bsize",buf.f_bsize,"f_frsize",buf.f_frsize,"f_blocks",buf.f_blocks,"f_bfree",buf.f_bfree,"f_bavail",buf.f_bavail,"f_files",buf.f_files,"f_ffree",buf.f_ffree,"f_favail",buf.f_favail,"f_fsid",buf.f_fsid,"f_flag",buf.f_flag,"f_namemax",buf.f_namemax);
+ return Py_BuildValue("{s:l,s:l,s:l,s:l,s:l,s:l,s:l,s:l,s:l,s:l,s:l}","f_bsize",buf.f_bsize,"f_frsize",buf.f_frsize,"f_blocks",buf.f_blocks,"f_bfree",buf.f_bfree,"f_bavail",buf.f_bavail,"f_files",buf.f_files,"f_ffree",buf.f_ffree,"f_favail",buf.f_favail,"f_fsid",buf.f_fsid,"f_flag",buf.f_flag,"f_namemax",buf.f_namemax);
else {
if(rv == USAGE_ERROR)
PyErr_SetString(StatvfsError, "Usage error");