From 971df12c95bfa17459d042857e5200f4a7f60cd4 Mon Sep 17 00:00:00 2001 From: akhilbatra898 Date: Tue, 25 Jul 2017 03:30:18 +0530 Subject: 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 --- qtip/web/bench/models.py | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) (limited to 'qtip/web/bench/models.py') 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]) -- cgit 1.2.3-korg