diff mbox series

[error-report-web] Add configuations as error details

Message ID 20260515083831.2891826-1-changqing.li@windriver.com
State New
Headers show
Series [error-report-web] Add configuations as error details | expand

Commit Message

Changqing Li May 15, 2026, 8:38 a.m. UTC
Support to display local.conf,auto.conf,site.conf, toolcfg.conf on error
report web, if the genreated error report not contains these
configuations, set them to "" by default, and nothing will displayed.
if they are set, configurations will be displayed like:

Similar errors:
    1
Local Conf:
    INHERIT += "report-error"
Site Conf:
    DL_DIR ?= "/bitbake-setup/bitbake-builds/.bitbake-setup-downloads"
    SSTATE_DIR ?= "/bitbake-setup/bitbake-builds/.sstate-cache"
    BB_HASHSERVE_DB_DIR ?= "${SSTATE_DIR}"
Toolcfg Conf:
    OE_FRAGMENTS += "distro/poky machine/qemux86-64"

Releted oe commits:
7adf9707c0 report-error.bbclass: add local.conf/auto.conf into error report [master]
e3342d6d73 report-error.bbclass: add site.conf/toolcfg.conf into error report [maillist]

[YOCTO #13252]

Signed-off-by: Changqing Li <changqing.li@windriver.com>
---
 ...ild_local_conf_build_site_conf_and_more.py | 33 +++++++++++++++++++
 Post/models.py                                |  4 +++
 Post/parser.py                                |  7 +++-
 Post/test.py                                  |  4 +++
 templates/error-details.html                  | 20 +++++++++++
 test-data/test-payload.json                   |  8 +++--
 6 files changed, 73 insertions(+), 3 deletions(-)
 create mode 100644 Post/migrations/0010_build_auto_conf_build_local_conf_build_site_conf_and_more.py
diff mbox series

Patch

diff --git a/Post/migrations/0010_build_auto_conf_build_local_conf_build_site_conf_and_more.py b/Post/migrations/0010_build_auto_conf_build_local_conf_build_site_conf_and_more.py
new file mode 100644
index 0000000..f2ddfb8
--- /dev/null
+++ b/Post/migrations/0010_build_auto_conf_build_local_conf_build_site_conf_and_more.py
@@ -0,0 +1,33 @@ 
+# Generated by Django 4.2.30 on 2026-05-15 07:47
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('Post', '0009_build_idx_date'),
+    ]
+
+    operations = [
+        migrations.AddField(
+            model_name='build',
+            name='AUTO_CONF',
+            field=models.TextField(default='', max_length=5242880),
+        ),
+        migrations.AddField(
+            model_name='build',
+            name='LOCAL_CONF',
+            field=models.TextField(default='', max_length=5242880),
+        ),
+        migrations.AddField(
+            model_name='build',
+            name='SITE_CONF',
+            field=models.TextField(default='', max_length=5242880),
+        ),
+        migrations.AddField(
+            model_name='build',
+            name='TOOLCFG_CONF',
+            field=models.TextField(default='', max_length=5242880),
+        ),
+    ]
diff --git a/Post/models.py b/Post/models.py
index 541f394..01c5271 100644
--- a/Post/models.py
+++ b/Post/models.py
@@ -47,6 +47,10 @@  class Build(models.Model):
     LINK_BACK = models.TextField(max_length=300, blank=True, null=True)
     ERROR_TYPE = models.CharField(max_length=20, choices=ERROR_TYPE_CHOICES,
                                   default=ErrorType.RECIPE)
+    LOCAL_CONF = models.TextField(max_length=int(settings.MAX_UPLOAD_SIZE), default="")
+    AUTO_CONF = models.TextField(max_length=int(settings.MAX_UPLOAD_SIZE), default="")
+    SITE_CONF = models.TextField(max_length=int(settings.MAX_UPLOAD_SIZE), default="")
+    TOOLCFG_CONF = models.TextField(max_length=int(settings.MAX_UPLOAD_SIZE), default="")
 
     class Meta:
         indexes = [
diff --git a/Post/parser.py b/Post/parser.py
index 08f471d..7b6df06 100644
--- a/Post/parser.py
+++ b/Post/parser.py
@@ -50,7 +50,12 @@  class Parser:
             b.EMAIL = str(jsondata['email'])
             b.LINK_BACK = jsondata.get("link_back", None)
             b.ERROR_TYPE = jsondata.get("error_type", ErrorType.RECIPE)
-
+            
+            b.LOCAL_CONF = str(jsondata.get('local_conf', ""))
+            b.AUTO_CONF = str(jsondata.get('auto_conf', ""))
+            b.SITE_CONF = str(jsondata.get('site_conf', ""))
+            b.TOOLCFG_CONF = str(jsondata.get('toolcfg_conf', ""))
+            
             # Extract the branch and commit
             g = re.match(r'(.*): (.*)', jsondata['branch_commit'])
 
diff --git a/Post/test.py b/Post/test.py
index 5acb68e..82316ff 100755
--- a/Post/test.py
+++ b/Post/test.py
@@ -46,6 +46,10 @@  def compare_db_obj_with_payload(self, bf_object):
     self.assertEqual(bf_object.BUILD.NAME == str(payload['username']), True)
     self.assertEqual(bf_object.BUILD.EMAIL == str(payload['email']), True)
     self.assertEqual(bf_object.BUILD.LINK_BACK == payload.get("link_back", None), True)
+    self.assertEqual(bf_object.BUILD.LOCAL_CONF == payload.get("local_conf", None), True)
+    self.assertEqual(bf_object.BUILD.AUTO_CONF == payload.get("auto_conf", None), True)
+    self.assertEqual(bf_object.BUILD.SITE_CONF == payload.get("site_conf", None), True)
+    self.assertEqual(bf_object.BUILD.TOOLCFG_CONF == payload.get("toolcfg_conf", None), True)
 
     g = re.match(r'(.*): (.*)', payload['branch_commit'])
 
diff --git a/templates/error-details.html b/templates/error-details.html
index 35bf0aa..7f8bda2 100644
--- a/templates/error-details.html
+++ b/templates/error-details.html
@@ -81,6 +81,26 @@ 
           {% endwith %}
         </dd>
 
+        {% if detail.BUILD.LOCAL_CONF != "" %}
+        <dt></a>Local Conf:</dt>
+        <dd style="white-space: pre-wrap;">{{ detail.BUILD.LOCAL_CONF }}</dd>
+        {% endif %}
+
+        {% if detail.BUILD.AUTO_CONF != "" %}
+        <dt></a>Auto Conf:</dt>
+        <dd style="white-space: pre-wrap;">{{ detail.BUILD.AUTO_CONF }}</dd>
+        {% endif %}
+
+        {% if detail.BUILD.SITE_CONF != "" %}
+        <dt></a>Site Conf:</dt>
+        <dd style="white-space: pre-wrap;">{{ detail.BUILD.SITE_CONF }}</dd>
+        {% endif %}
+
+        {% if detail.BUILD.TOOLCFG_CONF != "" %}
+        <dt></a>Toolcfg Conf:</dt>
+        <dd style="white-space: pre-wrap;">{{ detail.BUILD.TOOLCFG_CONF }}</dd>
+        {% endif %}
+
       </dl>
       <div>
         <a class="btn btn-block" target="_blank" href="{{bugzilla_url}}/enter_bug.cgi?classification=__all" >Open a bug</a>
diff --git a/test-data/test-payload.json b/test-data/test-payload.json
index 0428a16..c712d20 100644
--- a/test-data/test-payload.json
+++ b/test-data/test-payload.json
@@ -1,4 +1,5 @@ 
 {
+    "auto_conf": "",
     "branch_commit": "(master-test): 736b49449233c936e3099b314a58e91ad17f9774", 
     "build_sys": "x86_64-linux", 
     "component": "base-passwd", 
@@ -11,8 +12,11 @@ 
             "package": "base-passwd-3.5.29-r0", 
             "task": "do_install"
         }
-    ], 
+    ],
+    "local_conf": "",
     "machine": "qemux86", 
     "nativelsb": "Ubuntu-14.04", 
-    "target_sys": "i586-poky-linux"
+    "site_conf": "",
+    "target_sys": "i586-poky-linux",
+    "toolcfg_conf":""
 }