[bitbake-devel] [PATCH 05/94] bitbake: webhob: updates to Django models

Alex DAMIAN alexandru.damian at intel.com
Tue Sep 24 16:51:34 UTC 2013


From: Calin Dragomir <calinx.l.dragomir at intel.com>

Based on recent discussions with the team I have updated the
Django models we had in order to store information more clearly.
The updates include: renaming of some tables, removing of
unnecessary fields, adding supplementary tables to reflect relations
between objects.

Signed-off-by: Calin Dragomir <calinx.l.dragomir at intel.com>
Signed-off-by: Alexandru DAMIAN <alexandru.damian at intel.com>
---
 bitbake/lib/webhob/orm/models.py | 94 ++++++++++++++++++++--------------------
 1 file changed, 47 insertions(+), 47 deletions(-)

diff --git a/bitbake/lib/webhob/orm/models.py b/bitbake/lib/webhob/orm/models.py
index 43b4319..6b8e2fa 100644
--- a/bitbake/lib/webhob/orm/models.py
+++ b/bitbake/lib/webhob/orm/models.py
@@ -1,22 +1,18 @@
 from django.db import models
 
 
-class Builds(models.Model):
+class Build(models.Model):
 
     BUILD_OUTCOME = (
-        (0, 'Succeded'),
+        (0, 'Succeeded'),
         (1, 'Failed'),
     )
 
     uuid = models.CharField(max_length=100, unique=True)
     target = models.CharField(max_length=100)
-    host_machine = models.CharField(max_length=100)
+    machine = models.ForeignKey('Machine', related_name='build_machine')
     distro = models.CharField(max_length=100)
     distro_version = models.CharField(max_length=100)
-    host_system = models.CharField(max_length=100)
-    host_distribution = models.CharField(max_length=100)
-    target_system = models.ForeignKey('Machines', related_name='builds_machines')
-    layers = models.ManyToManyField('Layers')
     started_on = models.DateTimeField()
     completed_on = models.DateTimeField()
     outcome = models.IntegerField(choices=BUILD_OUTCOME)
@@ -29,7 +25,7 @@ class Builds(models.Model):
     bitbake_version = models.CharField(max_length=50)
 
 
-class Tasks(models.Model):
+class Task(models.Model):
 
     SSTATE_RESULT = (
         (0, 'Not Applicable'), # For rest of tasks, but they still need checking.
@@ -47,23 +43,23 @@ class Tasks(models.Model):
         (0, 'Covered'),
         (1, 'Sstate'),
         (2, 'Existing'),
-        (3, 'Succeded'),
+        (3, 'Succeeded'),
         (4, 'Failed'),
     )
 
-    uuid = models.ForeignKey(Builds, to_field='uuid', related_name='tasks_builds')
+    build = models.ForeignKey(Build, related_name='task_build')
     order = models.IntegerField()
     task_executed = models.BooleanField() # True means Executed, False means Prebuilt
     outcome = models.IntegerField(choices=TASK_OUTCOME)
     sstate_checksum = models.CharField(max_length=100)
     path_to_sstate_obj = models.FilePathField(max_length=500, blank=True)
-    recipe = models.ForeignKey('Recipes', related_name='builds_recipes')
+    recipe = models.ForeignKey('Recipe', related_name='build_recipe')
     task_name = models.CharField(max_length=100)
-    source_url = models.FilePathField(max_length=200)
-    log_file = models.FilePathField(max_length=200, blank=True)
-    work_directory = models.FilePathField(max_length=200)
+    source_url = models.FilePathField(max_length=255)
+    log_file = models.FilePathField(max_length=255, blank=True)
+    work_directory = models.FilePathField(max_length=255)
     script_type = models.IntegerField(choices=TASK_CODING)
-    file_path = models.FilePathField(max_length=200)
+    file_path = models.FilePathField(max_length=255)
     line_number = models.IntegerField()
     py_stack_trace = models.TextField()
     disk_io = models.DecimalField(max_digits=20, decimal_places=10)
@@ -74,54 +70,52 @@ class Tasks(models.Model):
     error = models.TextField()
     warning = models.TextField()
     sstate_result = models.IntegerField(choices=SSTATE_RESULT)
-    diffsigs = models.CharField(max_length=500)
 
 
-class Task_Dependencies(models.Model):
-    task = models.ForeignKey(Tasks, related_name='task_dependencies_task')
-    depends_on = models.ForeignKey(Tasks, related_name='task_dependencies_depends')
+class Task_Dependency(models.Model):
+    task = models.ForeignKey(Task, related_name='task_dependencies_task')
+    depends_on = models.ForeignKey(Task, related_name='task_dependencies_depends')
 
 
-class Targets(models.Model):
-    uuid = models.ForeignKey(Builds, to_field='uuid',  related_name='targets_builds')
+class Target(models.Model):
+    build = models.ForeignKey(Build, related_name='target_build')
     is_image = models.BooleanField()
 
 
-class Artifacts(models.Model):
-    uuid = models.ForeignKey(Builds, to_field='uuid', related_name='artifacts_builds')
-    target = models.ForeignKey(Targets, related_name='artifacts_targets')
+class Artifact(models.Model):
+    build = models.ForeignKey(Build, related_name='artifact_build')
+    target = models.ForeignKey(Target, related_name='artifact_target')
     file_name = models.CharField(max_length=100)
     file_size = models.IntegerField()
 
 
-class Packages_In_Images(models.Model):
-    package = models.ForeignKey('Packages', related_name='packages_in_images_package')
-    target = models.ForeignKey(Targets, related_name='packages_in_images_target')
+class Package_In_Image(models.Model):
+    package = models.ForeignKey('Package', related_name='package_in_image_package')
+    target = models.ForeignKey(Target, related_name='package_in_image_target')
 
 
-class Packages(models.Model):
-    package_id = models.IntegerField()
-    recipe = models.ForeignKey('Recipes', related_name='packages_recipes')
+class Package(models.Model):
+    recipe = models.ForeignKey('Recipe', related_name='package_recipe')
     name = models.CharField(max_length=100)
     version = models.CharField(max_length=100)
     size = models.IntegerField()
 
 
-class Package_Dependencies(models.Model):
-    package = models.ForeignKey(Packages, related_name='package_dependencies_package')
-    depends_on = models.ForeignKey(Packages, related_name='package_dependencies_depends')
+class Package_Dependency(models.Model):
+    package = models.ForeignKey(Package, related_name='package_dependencies_package')
+    depends_on = models.ForeignKey(Package, related_name='package_dependencies_depends')
 
 
 class Filelist(models.Model):
-    package = models.ForeignKey(Packages, related_name='filelist_packages')
-    complete_file_path = models.FilePathField(max_length=200, blank=True)
+    package = models.ForeignKey(Package, related_name='filelist_package')
+    complete_file_path = models.FilePathField(max_length=255, blank=True)
     file_size = models.IntegerField()
 
 
-class Recipes(models.Model):
+class Recipe(models.Model):
     name = models.CharField(max_length=100)
     version = models.CharField(max_length=100)
-    layer = models.ForeignKey('Layers', related_name='recipes_layers')
+    layer = models.ForeignKey('Build_Layer', related_name='recipe_build_layer')
     summary = models.CharField(max_length=100)
     description = models.CharField(max_length=100)
     section = models.CharField(max_length=100)
@@ -130,33 +124,39 @@ class Recipes(models.Model):
     homepage = models.URLField()
     bugtracker = models.URLField()
     author = models.CharField(max_length=100)
-    file_path = models.FilePathField(max_length=200)
+    file_path = models.FilePathField(max_length=255)
 
 
-class Recipe_Dependencies(models.Model):
-    recipe = models.ForeignKey(Recipes, related_name='recipe_dependencies_recipe')
-    depends_on = models.ForeignKey(Recipes, related_name='recipe_dependencies_depends')
+class Recipe_Dependency(models.Model):
+    recipe = models.ForeignKey(Recipe, related_name='recipe_dependencies_recipe')
+    depends_on = models.ForeignKey(Recipe, related_name='recipe_dependencies_depends')
 
 
-class Layers(models.Model):
+class Layer(models.Model):
     name = models.CharField(max_length=100)
+    local_path = models.FilePathField(max_length=255)
+    layer_index_url = models.URLField()
+
+
+class Build_Layer(models.Model):
+    build = models.ForeignKey(Build, related_name='build_layer_build')
+    layer = models.ForeignKey(Layer, related_name='build_layer_layer')
     branch = models.CharField(max_length=50)
     commit = models.CharField(max_length=100)
     priority = models.IntegerField()
-    link_to_oe_core = models.URLField()
 
 
-class Variables(models.Model):
-    uuid = models.ForeignKey(Builds, to_field='uuid', related_name='variables_builds')
+class Variable(models.Model):
+    build = models.ForeignKey(Build, related_name='variable_build')
     variable_name = models.CharField(max_length=100)
     variable_value = models.TextField()
-    file = models.FilePathField(max_length=200)
+    file = models.FilePathField(max_length=255)
     changed = models.BooleanField()
     human_readable_name = models.CharField(max_length=200)
     description = models.TextField()
 
 
-class Machines(models.Model):
+class Machine(models.Model):
     name = models.CharField(max_length=100)
     description = models.TextField()
 
-- 
1.8.1.2




More information about the bitbake-devel mailing list