]>
git.ipfire.org Git - people/shoehn/ipfire.org.git/blob - www/webapp/handlers_stasy.py
3 from __future__
import division
10 from handlers_base
import *
12 class StasyBaseHandler(BaseHandler
):
15 return backend
.Stasy()
17 def format_size(self
, s
):
18 units
= ("K", "M", "G", "T")
21 while s
>= 1024 and unit
< len(units
):
25 return "%.1f%s" % (s
, units
[unit
])
27 def cut_string(self
, s
, limit
=15):
33 def render(self
, *args
, **kwargs
):
35 "cut_string" : self
.cut_string
,
36 "format_size" : self
.format_size
,
39 return BaseHandler
.render(self
, *args
, **kwargs
)
42 class StasyIndexHandler(StasyBaseHandler
):
44 self
.render("stasy-index.html")
47 profile_id
= self
.get_argument("profile_id", None)
49 raise tornado
.web
.HTTPError(400, "No profile ID was given.")
51 if not self
.stasy
.profile_exists(profile_id
):
52 raise tornado
.web
.HTTPError(404, "Profile does not exist.")
54 self
.redirect("/profile/%s" % profile_id
)
57 class StasyProfileDetailHandler(StasyBaseHandler
):
58 def get(self
, profile_id
):
59 profile
= self
.stasy
.get_profile(profile_id
)
61 raise tornado
.web
.HTTPError(404, "Profile not found: %s" % profile_id
)
63 self
.render("stasy-profile-detail.html", profile
=profile
)
66 class StasyStatsHandler(StasyBaseHandler
):
68 self
.render("stasy-stats.html")
71 class StasyStatsCPUHandler(StasyBaseHandler
):
73 return self
.render("stasy-stats-cpus.html",
74 cpu_vendors
=self
.stasy
.cpu_vendors_map
,
75 average_speed
=self
.stasy
.cpu_speed_average
,
76 cpu_speeds
=self
.stasy
.cpu_speed_map
)
79 class StasyStatsCPUFlagsHandler(StasyBaseHandler
):
86 ("virt", ("vmx", "svm")),
89 for name
, flag
in flags
:
90 kwargs
["cpus_" + name
] = self
.stasy
.get_cpu_flag_map(flag
)
94 return self
.render("stasy-stats-cpu-flags.html", **kwargs
)
96 class StasyStatsMemoryHandler(StasyBaseHandler
):
98 return self
.render("stasy-stats-memory.html",
99 average_memory
=self
.stasy
.memory_average
,
100 memory
=self
.stasy
.get_memory_map())
103 class StasyStatsOSesHandler(StasyBaseHandler
):
105 return self
.render("stasy-stats-oses.html",
106 arches
=self
.stasy
.arch_map
,
107 kernels
=self
.stasy
.kernel_map
,
108 releases
=self
.stasy
.release_map
)
111 class StasyStatsVirtualHandler(StasyBaseHandler
):
113 return self
.render("stasy-stats-virtual.html",
114 hypervisor_vendors
= self
.stasy
.hypervisor_map
,
115 is_virtual
= self
.stasy
.virtual_map
)
117 class StasyStatsGeoHandler(StasyBaseHandler
):
119 return self
.render("stasy-stats-geo.html",
120 languages
= self
.stasy
.get_language_map(),
121 geo_locations
= self
.stasy
.get_geo_location_map())
124 class StasyStatsNetworkHandler(StasyBaseHandler
):
126 return self
.render("stasy-stats-network.html",
127 network_zones
=self
.stasy
.get_network_zones_map())
130 class StasyStatsVendorDetail(StasyBaseHandler
):
131 def get(self
, bus
, vendor_id
):
137 cls
= bus2cls
[bus
.lower()]
138 vendor_name
= cls().get_vendor(vendor_id
)
140 # Get a list of all models we know from this vendor
141 models
= self
.stasy
.get_models_by_vendor(bus
, vendor_id
)
143 self
.render("stasy-vendor-detail.html",
144 vendor_name
=vendor_name
, models
=models
)
147 class StasyStatsModelDetail(StasyBaseHandler
):
148 def get(self
, bus
, vendor_id
, model_id
):
154 cls
= bus2cls
[bus
.lower()]
156 vendor_name
= cls().get_vendor(vendor_id
)
157 model_name
= cls().get_device(vendor_id
, model_id
)
160 self
.stasy
.get_device_percentage(bus
, vendor_id
, model_id
) * 100
162 self
.render("stasy-model-detail.html",
164 vendor_name
=vendor_name
,
166 model_name
=model_name
,
167 percentage
=percentage
)
170 class AdminFireinfoStatsHandler(StasyBaseHandler
):
172 _
= self
.locale
.translate
176 data
["profiles_count"], data
["profiles_count_all"] = \
177 self
.stasy
.get_profile_ratio()
179 data
["archives_count"] = self
.stasy
.get_archives_count()
182 since
= { "hours" : 24 }
183 updates
= self
.stasy
.get_updates_by_release_since(since
)
184 #updates[_("All versions")] = self.stasy.get_updated_since(since).count()
185 data
["updated_since_24h"] = updates
187 self
.render("stasy-stats-admin.html", **data
)