summaryrefslogtreecommitdiffstats
path: root/bitbake/lib/toaster/orm
diff options
context:
space:
mode:
authorAlexandru DAMIAN <alexandru.damian@intel.com>2014-06-03 16:26:17 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2014-06-06 10:32:55 +0100
commit07cd9a3b3494d6d6f5f015aece686e79d7db6c78 (patch)
tree12864c8e21d0fb8fa2bae5f3d21c18e80abd3705 /bitbake/lib/toaster/orm
parentb68b74ddd4be4a767e84c72a011cc087e059d132 (diff)
downloadpoky-07cd9a3b3494d6d6f5f015aece686e79d7db6c78.tar.gz
bitbake: toaster: add project related models
We introduce the notion of a project in Toaster as the item that holds the specification for triggering a build: the set of layers used, the set of configuration variable values, and the set of targets to be build. Builds triggered through Toaster will be associated with a Project, and they will be configured based on the project settings at the moment when the build is ordered. (Bitbake rev: 0bf0251ae05442ae260c6099b389bf765c4fef26) Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake/lib/toaster/orm')
-rw-r--r--bitbake/lib/toaster/orm/models.py19
1 files changed, 19 insertions, 0 deletions
diff --git a/bitbake/lib/toaster/orm/models.py b/bitbake/lib/toaster/orm/models.py
index 8aa7126a9b..8d4f21b420 100644
--- a/bitbake/lib/toaster/orm/models.py
+++ b/bitbake/lib/toaster/orm/models.py
@@ -23,6 +23,10 @@ from django.db import models
23from django.db.models import F 23from django.db.models import F
24from django.utils.encoding import python_2_unicode_compatible 24from django.utils.encoding import python_2_unicode_compatible
25 25
26class Project(models.Model):
27 name = models.CharField(max_length=100)
28 created = models.DateTimeField(auto_now_add = True)
29 updated = models.DateTimeField(auto_now = True)
26 30
27class Build(models.Model): 31class Build(models.Model):
28 SUCCEEDED = 0 32 SUCCEEDED = 0
@@ -37,6 +41,7 @@ class Build(models.Model):
37 41
38 search_allowed_fields = ['machine', 'cooker_log_path', "target__target", "target__target_image_file__file_name"] 42 search_allowed_fields = ['machine', 'cooker_log_path', "target__target", "target__target_image_file__file_name"]
39 43
44 project = models.ForeignKey(Project)
40 machine = models.CharField(max_length=100) 45 machine = models.CharField(max_length=100)
41 distro = models.CharField(max_length=100) 46 distro = models.CharField(max_length=100)
42 distro_version = models.CharField(max_length=100) 47 distro_version = models.CharField(max_length=100)
@@ -54,6 +59,9 @@ class Build(models.Model):
54 tgts = Target.objects.filter(build_id = self.id).order_by( 'target' ); 59 tgts = Target.objects.filter(build_id = self.id).order_by( 'target' );
55 return( tgts ); 60 return( tgts );
56 61
62class ProjectTarget(models.Model):
63 project = models.ForeignKey(Project)
64 target = models.CharField(max_length=100)
57 65
58@python_2_unicode_compatible 66@python_2_unicode_compatible
59class Target(models.Model): 67class Target(models.Model):
@@ -324,6 +332,12 @@ class Recipe_Dependency(models.Model):
324 dep_type = models.IntegerField(choices=DEPENDS_TYPE) 332 dep_type = models.IntegerField(choices=DEPENDS_TYPE)
325 objects = Recipe_DependencyManager() 333 objects = Recipe_DependencyManager()
326 334
335class ProjectLayer(models.Model):
336 project = models.ForeignKey(Project)
337 name = models.CharField(max_length = 100)
338 giturl = models.CharField(max_length = 254)
339 commit = models.CharField(max_length = 254)
340
327class Layer(models.Model): 341class Layer(models.Model):
328 name = models.CharField(max_length=100) 342 name = models.CharField(max_length=100)
329 local_path = models.FilePathField(max_length=255) 343 local_path = models.FilePathField(max_length=255)
@@ -338,6 +352,11 @@ class Layer_Version(models.Model):
338 priority = models.IntegerField() 352 priority = models.IntegerField()
339 353
340 354
355class ProjectVariable(models.Model):
356 project = models.ForeignKey(Project)
357 name = models.CharField(max_length=100)
358 value = models.TextField(blank = True)
359
341class Variable(models.Model): 360class Variable(models.Model):
342 search_allowed_fields = ['variable_name', 'variable_value', 361 search_allowed_fields = ['variable_name', 'variable_value',
343 'vhistory__file_name', "description"] 362 'vhistory__file_name', "description"]