1
0
mirror of https://git.yoctoproject.org/poky synced 2026-06-01 13:09:50 +00:00

bitbake: toaster: refactor build model

We remove the "timespent", "errors_no" and "warnings_no" fields
in favor of computing the needed values at runtime. This prevents
inconsistencies in the UI.

Also removeing all references to BuildRequests from the interface -
all build details now display in the build dashboard.

Minor fixes related to data logging.

(Bitbake rev: 44f37394ed3e4ca02f940be172fe4395b0ee0f7d)

Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Alexandru DAMIAN
2015-06-17 17:30:34 +01:00
committed by Richard Purdie
parent 287b49a35b
commit 70c4eb8d3a
23 changed files with 503 additions and 209 deletions
+13 -6
View File
@@ -147,7 +147,7 @@ class Project(models.Model):
if (-1 == build_id):
return( 0 )
try:
return Build.objects.filter(id = build_id)[ 0 ].errors_no
return Build.objects.filter(id = build_id)[ 0 ].errors.count()
except (Build.DoesNotExist,IndexError):
return( "not_found" )
@@ -156,7 +156,7 @@ class Project(models.Model):
if (-1 == build_id):
return( 0 )
try:
return Build.objects.filter(id = build_id)[ 0 ].warnings_no
return Build.objects.filter(id = build_id)[ 0 ].warnings.count()
except (Build.DoesNotExist,IndexError):
return( "not_found" )
@@ -248,10 +248,7 @@ class Build(models.Model):
distro_version = models.CharField(max_length=100)
started_on = models.DateTimeField()
completed_on = models.DateTimeField()
timespent = models.IntegerField(default=0)
outcome = models.IntegerField(choices=BUILD_OUTCOME, default=IN_PROGRESS)
errors_no = models.IntegerField(default=0)
warnings_no = models.IntegerField(default=0)
cooker_log_path = models.CharField(max_length=500)
build_name = models.CharField(max_length=100)
bitbake_version = models.CharField(max_length=50)
@@ -281,6 +278,17 @@ class Build(models.Model):
def toaster_exceptions(self):
return self.logmessage_set.filter(level=LogMessage.EXCEPTION)
@property
def errors(self):
return (self.logmessage_set.filter(level=LogMessage.ERROR)|self.logmessage_set.filter(level=LogMessage.EXCEPTION))
@property
def warnings(self):
return self.logmessage_set.filter(level=LogMessage.WARNING)
@property
def timespent_seconds(self):
return (self.completed_on - self.started_on).total_seconds()
def get_current_status(self):
from bldcontrol.models import BuildRequest
@@ -298,7 +306,6 @@ class BuildArtifact(models.Model):
file_name = models.FilePathField()
file_size = models.IntegerField()
def get_local_file_name(self):
try:
deploydir = Variable.objects.get(build = self.build, variable_name="DEPLOY_DIR").variable_value