diff options
Diffstat (limited to 'bitbake/lib/toaster/orm/models.py')
-rw-r--r-- | bitbake/lib/toaster/orm/models.py | 49 |
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 | ||
110 | class ProjectManager(models.Manager): | 109 | class 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 | |||
1396 | class BitbakeVersion(models.Model): | 1392 | class 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 | ||
1858 | class Distro(models.Model): | 1856 | class 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 | ||
1871 | class 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 | |||
1873 | django.db.models.signals.post_save.connect(invalidate_cache) | 1880 | django.db.models.signals.post_save.connect(invalidate_cache) |
1874 | django.db.models.signals.post_delete.connect(invalidate_cache) | 1881 | django.db.models.signals.post_delete.connect(invalidate_cache) |
1875 | django.db.models.signals.m2m_changed.connect(invalidate_cache) | 1882 | django.db.models.signals.m2m_changed.connect(invalidate_cache) |