[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 12:23:41 PDT 2016



On 06/14/2016 11:44 AM, Aníbal Limón wrote:
> 
> 
> 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

I made the change now is at contrib branch,

http://git.yoctoproject.org/cgit/cgit.cgi/error-report-web/log/?h=alimon/devel

	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/932e8c4d/attachment.pgp>


More information about the yocto mailing list