summaryrefslogtreecommitdiffstats
path: root/qtip/web/bench/models.py
diff options
context:
space:
mode:
authorakhilbatra898 <akhil.batra@research.iiit.ac.in>2017-07-25 03:30:18 +0530
committerAkhil Batra <akhil.batra@research.iiit.ac.in>2017-07-25 02:03:23 +0000
commit971df12c95bfa17459d042857e5200f4a7f60cd4 (patch)
treed75610f678ed9c40ac7b63e88143e35fc52ccc07 /qtip/web/bench/models.py
parent05ed8bbe8a4e3c6092152382fdb42e33fd3841a2 (diff)
Implement benchmark running and logging the output
- Run benchmark by adding new tasks - Modify Task model to have log as log files - Add new urls for respective views - Module for running benchmarks in background - Updating status of tasks - Listing and detailed log of all tasks - Add corresponding html templates Change-Id: I244d1bb74949eeb470c738363f6917191e0f052d Signed-off-by: akhilbatra898 <akhil.batra@research.iiit.ac.in>
Diffstat (limited to 'qtip/web/bench/models.py')
-rw-r--r--qtip/web/bench/models.py26
1 files changed, 22 insertions, 4 deletions
diff --git a/qtip/web/bench/models.py b/qtip/web/bench/models.py
index 863af739..3f0439d9 100644
--- a/qtip/web/bench/models.py
+++ b/qtip/web/bench/models.py
@@ -18,15 +18,33 @@ from django.urls import reverse
class Repo(models.Model):
name = models.CharField(max_length=200, blank=False)
- github_link = models.URLField(unique=True)
+ git_link = models.URLField(unique=True)
def get_absolute_url(self):
return reverse('repo_update', args=[self.pk])
+ def __str__(self):
+ return "%s, %s" % (self.name, self.git_link)
+
class Task(models.Model):
+ TASK_STATUS_CHOICES = (
+ ('P', 'Pending'),
+ ('IP', 'In progress'),
+ ('F', 'Finished')
+ )
+
start_time = models.DateTimeField(auto_now_add=True)
- end_time = models.DateTimeField()
- run_time = models.DurationField()
+ status = models.CharField(choices=TASK_STATUS_CHOICES, default='P', max_length=20)
+ end_time = models.DateTimeField(null=True)
+ run_time = models.DurationField(null=True)
repo = models.ForeignKey('Repo', on_delete=models.DO_NOTHING)
- log = models.TextField()
+ log = models.FileField(upload_to='logs')
+
+ def save(self, **kwargs):
+ if self.end_time:
+ self.run_time = self.end_time - self.start_time
+ super(Task, self).save(kwargs)
+
+ def get_absolute_url(self):
+ return reverse('task_view', args=[self.pk])