Module: check_mk
Branch: master
Commit: a7e71423f401f0d5ba9e2ddff404e9ce11d35b64
URL:
http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=a7e71423f401f0…
Author: Lars Michelsen <lm(a)mathias-kettner.de>
Date: Mon Feb 19 07:26:31 2018 +0100
Moved drop_dotzero() from lib to utils
Change-Id: I167bc01256b67dfbd387dece919c75b9cd2425dc
---
web/htdocs/lib.py | 45 --------------------------------------
web/plugins/metrics/check_mk.py | 9 ++++----
web/plugins/perfometer/check_mk.py | 19 ++++++++++++++++
web/plugins/views/inventory.py | 21 ++++++++++++++++--
4 files changed, 43 insertions(+), 51 deletions(-)
diff --git a/web/htdocs/lib.py b/web/htdocs/lib.py
index 609ecc0..7a57927 100644
--- a/web/htdocs/lib.py
+++ b/web/htdocs/lib.py
@@ -164,48 +164,3 @@ def cmp_version(a, b):
aa = map(tryint, a.split("."))
bb = map(tryint, b.split("."))
return cmp(aa, bb)
-
-
-def nic_speed_human_readable(bits_per_second):
- if bits_per_second == 10000000:
- return "10 Mbit/s"
- elif bits_per_second == 100000000:
- return "100 Mbit/s"
- elif bits_per_second == 1000000000:
- return "1 Gbit/s"
- elif bits_per_second < 1500:
- return "%d bit/s" % bits_per_second
- elif bits_per_second < 1000000:
- return "%s Kbit/s" % drop_dotzero(bits_per_second / 1000.0, digits=1)
- elif bits_per_second < 1000000000:
- return "%s Mbit/s" % drop_dotzero(bits_per_second / 1000000.0,
digits=2)
- else:
- return "%s Gbit/s" % drop_dotzero(bits_per_second / 1000000000.0,
digits=2)
-
-# Converts a number into a floating point number
-# and drop useless zeroes at the end of the fraction
-# 45.1 -> "45.1"
-# 45.0 -> "45"
-def drop_dotzero(v, digits=2):
- t = "%%.%df" % digits % v
- if "." in t:
- return t.rstrip("0").rstrip(".")
- else:
- return t
-
-
-def number_human_readable(n, precision=1, unit="B"):
- base = 1024.0
- if unit == "Bit":
- base = 1000.0
-
- n = float(n)
- f = "%." + str(precision) + "f"
- if abs(n) > base * base * base:
- return (f + "G%s") % (n / (base * base * base), unit)
- elif abs(n) > base * base:
- return (f + "M%s") % (n / (base * base), unit)
- elif abs(n) > base:
- return (f + "k%s") % (n / base, unit)
- else:
- return (f + "%s") % (n, unit)
diff --git a/web/plugins/metrics/check_mk.py b/web/plugins/metrics/check_mk.py
index 3d4184f..fe2054f 100644
--- a/web/plugins/metrics/check_mk.py
+++ b/web/plugins/metrics/check_mk.py
@@ -24,6 +24,7 @@
# to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
# Boston, MA 02110-1301 USA.
+import utils
import cmk.render
# TODO Graphingsystem:
@@ -141,7 +142,7 @@ unit_info["1/s"] = {
"title" : _("per second"),
"description" : _("Frequency (displayed in events/s)"),
"symbol" : _("/s"),
- "render" : lambda v: "%s%s" % (drop_dotzero(v),
_("/s")),
+ "render" : lambda v: "%s%s" % (utils.drop_dotzero(v),
_("/s")),
}
unit_info["hz"] = {
@@ -233,7 +234,7 @@ unit_info["bytes/d"] = {
unit_info["c"] = {
"title" : _("Degree Celsius"),
"symbol" : u"°C",
- "render" : lambda v: "%s %s" % (drop_dotzero(v),
u"°C"),
+ "render" : lambda v: "%s %s" % (utils.drop_dotzero(v),
u"°C"),
}
unit_info["a"] = {
@@ -269,13 +270,13 @@ unit_info["wh"] = {
unit_info["dbm"] = {
"title" : _("Decibel-milliwatts"),
"symbol" : _("dBm"),
- "render" : lambda v: "%s %s" % (drop_dotzero(v),
_("dBm")),
+ "render" : lambda v: "%s %s" % (utils.drop_dotzero(v),
_("dBm")),
}
unit_info["dbmv"] = {
"title" : _("Decibel-millivolt"),
"symbol" : _("dBmV"),
- "render" : lambda v: "%s %s" % (drop_dotzero(v),
_("dBmV")),
+ "render" : lambda v: "%s %s" % (utils.drop_dotzero(v),
_("dBmV")),
}
unit_info["db"] = {
diff --git a/web/plugins/perfometer/check_mk.py b/web/plugins/perfometer/check_mk.py
index 8469ffe..0a79c91 100644
--- a/web/plugins/perfometer/check_mk.py
+++ b/web/plugins/perfometer/check_mk.py
@@ -36,6 +36,25 @@ import cmk.render
# 3. The parsed performance data as a list of 7-tuples of
# (varname, value, unit, warn, crit, min, max)
+
+# TODO: Migrate to cmk.render.*
+def number_human_readable(n, precision=1, unit="B"):
+ base = 1024.0
+ if unit == "Bit":
+ base = 1000.0
+
+ n = float(n)
+ f = "%." + str(precision) + "f"
+ if abs(n) > base * base * base:
+ return (f + "G%s") % (n / (base * base * base), unit)
+ elif abs(n) > base * base:
+ return (f + "M%s") % (n / (base * base), unit)
+ elif abs(n) > base:
+ return (f + "k%s") % (n / base, unit)
+ else:
+ return (f + "%s") % (n, unit)
+
+
def perfometer_esx_vsphere_datastores(row, check_command, perf_data):
used_mb = perf_data[0][1]
maxx = perf_data[0][-1]
diff --git a/web/plugins/views/inventory.py b/web/plugins/views/inventory.py
index 15e9c09..68604fb 100644
--- a/web/plugins/views/inventory.py
+++ b/web/plugins/views/inventory.py
@@ -24,7 +24,7 @@
# to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
# Boston, MA 02110-1301 USA.
-
+import utils
import inventory
from cmk.regex import regex
import cmk.defines as defines
@@ -254,10 +254,27 @@ def inv_paint_bytes_rounded(b):
return "number", "%d %s" % (b, units[0])
+def _nic_speed_human_readable(bits_per_second):
+ if bits_per_second == 10000000:
+ return "10 Mbit/s"
+ elif bits_per_second == 100000000:
+ return "100 Mbit/s"
+ elif bits_per_second == 1000000000:
+ return "1 Gbit/s"
+ elif bits_per_second < 1500:
+ return "%d bit/s" % bits_per_second
+ elif bits_per_second < 1000000:
+ return "%s Kbit/s" % utils.drop_dotzero(bits_per_second / 1000.0,
digits=1)
+ elif bits_per_second < 1000000000:
+ return "%s Mbit/s" % utils.drop_dotzero(bits_per_second / 1000000.0,
digits=2)
+ else:
+ return "%s Gbit/s" % utils.drop_dotzero(bits_per_second / 1000000000.0,
digits=2)
+
+
@decorate_inv_paint
def inv_paint_nic_speed(bits_per_second):
if bits_per_second:
- return "number", nic_speed_human_readable(int(bits_per_second))
+ return "number", _nic_speed_human_readable(int(bits_per_second))
else:
return "", ""