summaryrefslogtreecommitdiffstats
path: root/tools/pharos-dashboard/jenkins/models.py
diff options
context:
space:
mode:
authormaxbr <maxbr@mi.fu-berlin.de>2016-08-25 12:10:55 +0200
committermaxbr <maxbr@mi.fu-berlin.de>2016-08-25 12:10:55 +0200
commitb67557fdf3ddab95d2834c8aa01dcc0d120685dd (patch)
tree20e4ab79342e26b4f6f8d7c83be1cb5989d08392 /tools/pharos-dashboard/jenkins/models.py
parent4ef923cbe9d4d4f3348657389661ffa99e89f919 (diff)
Add a Resource detail view
JIRA: RELENG-12 The resource page contains an utilization diagram, future bookings with their jira tickets and a list of servers. Change-Id: I2123ccbe96cde29a56af32b933ebbf6ba2668ed1 Signed-off-by: maxbr <maxbr@mi.fu-berlin.de>
Diffstat (limited to 'tools/pharos-dashboard/jenkins/models.py')
-rw-r--r--tools/pharos-dashboard/jenkins/models.py13
1 files changed, 13 insertions, 0 deletions
diff --git a/tools/pharos-dashboard/jenkins/models.py b/tools/pharos-dashboard/jenkins/models.py
index 438a8827..354887ab 100644
--- a/tools/pharos-dashboard/jenkins/models.py
+++ b/tools/pharos-dashboard/jenkins/models.py
@@ -1,4 +1,5 @@
from django.db import models
+from django.utils import timezone
class JenkinsSlave(models.Model):
@@ -18,6 +19,18 @@ class JenkinsSlave(models.Model):
last_job_installer = models.CharField(max_length=50, default='')
last_job_result = models.CharField(max_length=30, default='')
+ def get_utilization(self, timedelta):
+ """
+ Return a dictionary containing the count of idle, online and offline measurements in the time from
+ now-timedelta to now
+ """
+ utilization = {'idle': 0, 'online': 0, 'offline': 0}
+ statistics = self.jenkinsstatistic_set.filter(timestamp__gte=timezone.now() - timedelta)
+ utilization['idle'] = statistics.filter(idle=True).count()
+ utilization['online'] = statistics.filter(online=True).count()
+ utilization['offline'] = statistics.filter(offline=True).count()
+ return utilization
+
class Meta:
db_table = 'jenkins_slave'