[yocto] [[PATCH][error-report-web] 5/8] Post/models.py: Build model add support for Error type.

Aníbal Limón anibal.limon at linux.intel.com
Tue Jun 14 09:44:08 PDT 2016



On 06/14/2016 08:30 AM, Michael Wood wrote:
> On 14/06/16 00:32, Aníbal Limón wrote:
>> In order to support other errors not only Recipe ones adds
>> a ERROR_TYPE field to the Build model defaults to "Recipe".
>>
>> Add a class for store BuildErrorType currently supported
>> Recipe, Core, Bitbake selftest and OE selftest.
>>
>> [YOCTO #7583]
>>
>> Signed-off-by: Aníbal Limón <anibal.limon at linux.intel.com>
>> ---
>>   Post/migrations/0005_build_error_type.py | 19 +++++++++++++++++++
>>   Post/models.py                           |  7 +++++++
>>   2 files changed, 26 insertions(+)
>>   create mode 100644 Post/migrations/0005_build_error_type.py
>>
>> diff --git a/Post/migrations/0005_build_error_type.py
>> b/Post/migrations/0005_build_error_type.py
>> new file mode 100644
>> index 0000000..96cdf8c
>> --- /dev/null
>> +++ b/Post/migrations/0005_build_error_type.py
>> @@ -0,0 +1,19 @@
>> +# -*- coding: utf-8 -*-
>> +from __future__ import unicode_literals
>> +
>> +from django.db import migrations, models
>> +
>> +
>> +class Migration(migrations.Migration):
>> +
>> +    dependencies = [
>> +        ('Post', '0004_auto_20160530_1126'),
>> +    ]
>> +
>> +    operations = [
>> +        migrations.AddField(
>> +            model_name='build',
>> +            name='ERROR_TYPE',
>> +            field=models.CharField(default=b'Recipe', max_length=64),
>> +        ),
>> +    ]
>> diff --git a/Post/models.py b/Post/models.py
>> index 84f8abf..f8d9916 100644
>> --- a/Post/models.py
>> +++ b/Post/models.py
>> @@ -11,6 +11,12 @@ from datetime import datetime
>>     import Levenshtein
>>   +class BuildErrorType(object):
>> +    RECIPE = "Recipe"
>> +    BITBAKE_CORE = "Core"
>> +    BITBAKE_SELFTEST = "Bitbake selftest"
>> +    OE_SELFTEST = "OE selftest"
>> +
>>   # Create your models here.
>>   class Build(models.Model):
>>       DATE = models.DateTimeField('Submit date', blank=True, null=True)
>> @@ -25,6 +31,7 @@ class Build(models.Model):
>>       NAME = models.CharField(max_length=50)
>>       EMAIL = models.CharField(max_length=50)
>>       LINK_BACK = models.TextField(max_length=300, blank=True, null=True)
>> +    ERROR_TYPE = models.CharField(max_length=64,
>> default=BuildErrorType.RECIPE)
>>     class BuildFailure(models.Model):
>>       TASK = models.CharField(max_length=1024)
> 
> Thanks for the patches.
> 
> Ideally we wouldn't use a char field here as if the type string ever
> changed the database could end up with multiple versions of the type
> strings depending on when the type was saved, it would be possible to
> handle that with migrations but it would be pretty messy. It also allows
> any arbitrary chars which we probably don't want if it's something we're
> going to be filtering on.  Here is an example from Toaster on how it can
> be done with the choices option and an enum style.
> 
> |OUTCOME_NA = -1 OUTCOME_SUCCESS = 0 OUTCOME_COVERED = 1 OUTCOME_CACHED
> = 2 OUTCOME_PREBUILT = 3 OUTCOME_FAILED = 4 OUTCOME_EMPTY = 5
> TASK_OUTCOME = ( (OUTCOME_NA, 'Not Available'), (OUTCOME_SUCCESS,
> 'Succeeded'), (OUTCOME_COVERED, 'Covered'), (OUTCOME_CACHED, 'Cached'),
> (OUTCOME_PREBUILT, 'Prebuilt'), (OUTCOME_FAILED, 'Failed'),
> (OUTCOME_EMPTY, 'Empty'), ) ||outcome =
> models.IntegerField(choices=TASK_OUTCOME, default=OUTCOME_NA)|
> 

Thanks for the feedback, i'll change to use choices instead of char values.

	alimon

> 
> 
> Michael
> 

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: OpenPGP digital signature
URL: <http://lists.yoctoproject.org/pipermail/yocto/attachments/20160614/5ea23909/attachment.pgp>


More information about the yocto mailing list