summaryrefslogtreecommitdiffstats
path: root/bitbake/lib/toaster/orm/models.py
diff options
context:
space:
mode:
Diffstat (limited to 'bitbake/lib/toaster/orm/models.py')
-rw-r--r--bitbake/lib/toaster/orm/models.py49
1 files changed, 28 insertions, 21 deletions
diff --git a/bitbake/lib/toaster/orm/models.py b/bitbake/lib/toaster/orm/models.py
index 7f7e922ade..19c9686206 100644
--- a/bitbake/lib/toaster/orm/models.py
+++ b/bitbake/lib/toaster/orm/models.py
@@ -58,7 +58,6 @@ if 'sqlite' in settings.DATABASES['default']['ENGINE']:
58 return _base_insert(self, *args, **kwargs) 58 return _base_insert(self, *args, **kwargs)
59 QuerySet._insert = _insert 59 QuerySet._insert = _insert
60 60
61 from django.utils import six
62 def _create_object_from_params(self, lookup, params): 61 def _create_object_from_params(self, lookup, params):
63 """ 62 """
64 Tries to create an object using passed params. 63 Tries to create an object using passed params.
@@ -108,7 +107,7 @@ class ToasterSetting(models.Model):
108 107
109 108
110class ProjectManager(models.Manager): 109class ProjectManager(models.Manager):
111 def create_project(self, name, release, existing_project=None): 110 def create_project(self, name, release, existing_project=None, imported=False):
112 if existing_project and (release is not None): 111 if existing_project and (release is not None):
113 prj = existing_project 112 prj = existing_project
114 prj.bitbake_version = release.bitbake_version 113 prj.bitbake_version = release.bitbake_version
@@ -135,19 +134,19 @@ class ProjectManager(models.Manager):
135 134
136 if release is None: 135 if release is None:
137 return prj 136 return prj
138 137 if not imported:
139 for rdl in release.releasedefaultlayer_set.all(): 138 for rdl in release.releasedefaultlayer_set.all():
140 lv = Layer_Version.objects.filter( 139 lv = Layer_Version.objects.filter(
141 layer__name=rdl.layer_name, 140 layer__name=rdl.layer_name,
142 release=release).first() 141 release=release).first()
143 142
144 if lv: 143 if lv:
145 ProjectLayer.objects.create(project=prj, 144 ProjectLayer.objects.create(project=prj,
146 layercommit=lv, 145 layercommit=lv,
147 optional=False) 146 optional=False)
148 else: 147 else:
149 logger.warning("Default project layer %s not found" % 148 logger.warning("Default project layer %s not found" %
150 rdl.layer_name) 149 rdl.layer_name)
151 150
152 return prj 151 return prj
153 152
@@ -1390,9 +1389,6 @@ class Machine(models.Model):
1390 return "Machine " + self.name + "(" + self.description + ")" 1389 return "Machine " + self.name + "(" + self.description + ")"
1391 1390
1392 1391
1393
1394
1395
1396class BitbakeVersion(models.Model): 1392class BitbakeVersion(models.Model):
1397 1393
1398 name = models.CharField(max_length=32, unique = True) 1394 name = models.CharField(max_length=32, unique = True)
@@ -1717,9 +1713,9 @@ class CustomImageRecipe(Recipe):
1717 1713
1718 def generate_recipe_file_contents(self): 1714 def generate_recipe_file_contents(self):
1719 """Generate the contents for the recipe file.""" 1715 """Generate the contents for the recipe file."""
1720 # If we have no excluded packages we only need to _append 1716 # If we have no excluded packages we only need to :append
1721 if self.excludes_set.count() == 0: 1717 if self.excludes_set.count() == 0:
1722 packages_conf = "IMAGE_INSTALL_append = \" " 1718 packages_conf = "IMAGE_INSTALL:append = \" "
1723 1719
1724 for pkg in self.appends_set.all(): 1720 for pkg in self.appends_set.all():
1725 packages_conf += pkg.name+' ' 1721 packages_conf += pkg.name+' '
@@ -1734,7 +1730,7 @@ class CustomImageRecipe(Recipe):
1734 packages_conf += "\"" 1730 packages_conf += "\""
1735 1731
1736 base_recipe_path = self.get_base_recipe_file() 1732 base_recipe_path = self.get_base_recipe_file()
1737 if base_recipe_path: 1733 if base_recipe_path and os.path.isfile(base_recipe_path):
1738 base_recipe = open(base_recipe_path, 'r').read() 1734 base_recipe = open(base_recipe_path, 'r').read()
1739 else: 1735 else:
1740 # Pass back None to trigger error message to user 1736 # Pass back None to trigger error message to user
@@ -1854,6 +1850,8 @@ def signal_runbuilds():
1854 os.kill(int(pidf.read()), SIGUSR1) 1850 os.kill(int(pidf.read()), SIGUSR1)
1855 except FileNotFoundError: 1851 except FileNotFoundError:
1856 logger.info("Stopping existing runbuilds: no current process found") 1852 logger.info("Stopping existing runbuilds: no current process found")
1853 except ProcessLookupError:
1854 logger.warning("Stopping existing runbuilds: process lookup not found")
1857 1855
1858class Distro(models.Model): 1856class Distro(models.Model):
1859 search_allowed_fields = ["name", "description", "layer_version__layer__name"] 1857 search_allowed_fields = ["name", "description", "layer_version__layer__name"]
@@ -1870,6 +1868,15 @@ class Distro(models.Model):
1870 def __unicode__(self): 1868 def __unicode__(self):
1871 return "Distro " + self.name + "(" + self.description + ")" 1869 return "Distro " + self.name + "(" + self.description + ")"
1872 1870
1871class EventLogsImports(models.Model):
1872 name = models.CharField(max_length=255)
1873 imported = models.BooleanField(default=False)
1874 build_id = models.IntegerField(blank=True, null=True)
1875
1876 def __str__(self):
1877 return self.name
1878
1879
1873django.db.models.signals.post_save.connect(invalidate_cache) 1880django.db.models.signals.post_save.connect(invalidate_cache)
1874django.db.models.signals.post_delete.connect(invalidate_cache) 1881django.db.models.signals.post_delete.connect(invalidate_cache)
1875django.db.models.signals.m2m_changed.connect(invalidate_cache) 1882django.db.models.signals.m2m_changed.connect(invalidate_cache)