From 07cd9a3b3494d6d6f5f015aece686e79d7db6c78 Mon Sep 17 00:00:00 2001 From: Alexandru DAMIAN Date: Tue, 3 Jun 2014 16:26:17 +0100 Subject: 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 Signed-off-by: Richard Purdie --- bitbake/lib/toaster/orm/models.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'bitbake') 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 from django.db.models import F from django.utils.encoding import python_2_unicode_compatible +class Project(models.Model): + name = models.CharField(max_length=100) + created = models.DateTimeField(auto_now_add = True) + updated = models.DateTimeField(auto_now = True) class Build(models.Model): SUCCEEDED = 0 @@ -37,6 +41,7 @@ class Build(models.Model): search_allowed_fields = ['machine', 'cooker_log_path', "target__target", "target__target_image_file__file_name"] + project = models.ForeignKey(Project) machine = models.CharField(max_length=100) distro = models.CharField(max_length=100) distro_version = models.CharField(max_length=100) @@ -54,6 +59,9 @@ class Build(models.Model): tgts = Target.objects.filter(build_id = self.id).order_by( 'target' ); return( tgts ); +class ProjectTarget(models.Model): + project = models.ForeignKey(Project) + target = models.CharField(max_length=100) @python_2_unicode_compatible class Target(models.Model): @@ -324,6 +332,12 @@ class Recipe_Dependency(models.Model): dep_type = models.IntegerField(choices=DEPENDS_TYPE) objects = Recipe_DependencyManager() +class ProjectLayer(models.Model): + project = models.ForeignKey(Project) + name = models.CharField(max_length = 100) + giturl = models.CharField(max_length = 254) + commit = models.CharField(max_length = 254) + class Layer(models.Model): name = models.CharField(max_length=100) local_path = models.FilePathField(max_length=255) @@ -338,6 +352,11 @@ class Layer_Version(models.Model): priority = models.IntegerField() +class ProjectVariable(models.Model): + project = models.ForeignKey(Project) + name = models.CharField(max_length=100) + value = models.TextField(blank = True) + class Variable(models.Model): search_allowed_fields = ['variable_name', 'variable_value', 'vhistory__file_name', "description"] -- cgit v1.2.3-54-g00ecf