summaryrefslogtreecommitdiffstats
path: root/tools/pharos-dashboard/dashboard/views.py
diff options
context:
space:
mode:
Diffstat (limited to 'tools/pharos-dashboard/dashboard/views.py')
-rw-r--r--tools/pharos-dashboard/dashboard/views.py23
1 files changed, 23 insertions, 0 deletions
diff --git a/tools/pharos-dashboard/dashboard/views.py b/tools/pharos-dashboard/dashboard/views.py
index a4c0c4e9..da31802f 100644
--- a/tools/pharos-dashboard/dashboard/views.py
+++ b/tools/pharos-dashboard/dashboard/views.py
@@ -48,3 +48,26 @@ class DevelopmentPodsView(TemplateView):
context = super(DevelopmentPodsView, self).get_context_data(**kwargs)
context.update({'title': "Development Pods", 'dev_pods': dev_pods})
return context
+
+
+class ResourceUtilizationView(TemplateView):
+ template_name = "dashboard/resource_utilization.html"
+
+ def get_context_data(self, **kwargs):
+ resources = Resource.objects.all()
+ pods = []
+ for resource in resources:
+ utilization = {'idle': 0, 'online': 0, 'offline': 0}
+ # query measurement points for the last week
+ statistics = JenkinsStatistic.objects.filter(slave=resource.slave,
+ timestamp__gte=timezone.now() - timedelta(
+ days=7))
+ statistics_cnt = statistics.count()
+ if statistics_cnt != 0:
+ utilization['idle'] = statistics.filter(idle=True).count()
+ utilization['online'] = statistics.filter(online=True).count()
+ utilization['offline'] = statistics.filter(offline=True).count()
+ pods.append((resource, utilization))
+ context = super(ResourceUtilizationView, self).get_context_data(**kwargs)
+ context.update({'title': "Development Pods", 'pods': pods})
+ return context