From: Michael Tremer Date: Tue, 30 Oct 2018 13:01:41 +0000 (+0000) Subject: fireinfo: Show average amount of memory on index page X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=846044768005e1052b9d963eb736fb00821ec093;p=ipfire.org.git fireinfo: Show average amount of memory on index page Signed-off-by: Michael Tremer --- diff --git a/src/backend/fireinfo.py b/src/backend/fireinfo.py index 8c76da1c..80be0736 100644 --- a/src/backend/fireinfo.py +++ b/src/backend/fireinfo.py @@ -1903,16 +1903,13 @@ class Fireinfo(Object): if res: return res.percentage - def get_memory_amounts(self, when=None): + def get_average_memory_amount(self, when=None): res = self.db.get("WITH profiles AS (SELECT fireinfo_profiles_with_data_at(%s) AS id) \ - SELECT AVG(fireinfo_profiles_memory.amount) AS avg, \ - STDDEV(fireinfo_profiles_memory.amount) AS stddev, \ - MIN(fireinfo_profiles_memory.amount) AS min, \ - MAX(fireinfo_profiles_memory.amount) AS max FROM profiles \ + SELECT AVG(fireinfo_profiles_memory.amount) AS avg FROM profiles \ LEFT JOIN fireinfo_profiles_memory ON profiles.id = fireinfo_profiles_memory.profile_id", when) if res: - return (res.avg or 0, res.stddev or 0, res.min or 0, res.max or 0) + return res.avg or 0 def get_arch_map(self, when=None): res = self.db.query("WITH profiles AS (SELECT fireinfo_profiles_with_data_at(%s) AS id) \ diff --git a/src/backend/util.py b/src/backend/util.py index e64039ee..ea7692a0 100644 --- a/src/backend/util.py +++ b/src/backend/util.py @@ -3,14 +3,17 @@ import random import string -def format_size(s): - units = ("B", "k", "M", "G", "T") +def format_size(s, max_unit=None): + units = ("B", "kB", "MB", "GB", "TB") i = 0 while s >= 1024 and i < len(units) - 1: s /= 1024 i += 1 + if max_unit and units[i] == max_unit: + break + return "%.0f%s" % (s, units[i]) def format_time(s, shorter=True): diff --git a/src/templates/fireinfo/index.html b/src/templates/fireinfo/index.html index 9f8ff37a..5f562915 100644 --- a/src/templates/fireinfo/index.html +++ b/src/templates/fireinfo/index.html @@ -50,6 +50,20 @@ +
+
+
+
+

{{ format_size(memory_avg * 1024, "MB") }}

+ +

+ {{ _("Average Amount of Memory") }} +

+
+
+
+
+
diff --git a/src/web/fireinfo.py b/src/web/fireinfo.py index bd3ec2a8..ca4446b5 100644 --- a/src/web/fireinfo.py +++ b/src/web/fireinfo.py @@ -158,6 +158,9 @@ class IndexHandler(BaseHandler): # Release "latest_release" : self.backend.releases.get_latest(), + # Hardware + "memory_avg" : self.backend.fireinfo.get_average_memory_amount(when=self.when), + # Virtualization "hypervisors" : self.fireinfo.get_hypervisor_map(when=self.when), "virtual_ratio" : self.fireinfo.get_virtual_ratio(when=self.when),