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.li...@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)|



Michael

--
_______________________________________________
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto

Reply via email to