diff options
Diffstat (limited to 'bitbake/lib/toaster/orm')
-rw-r--r-- | bitbake/lib/toaster/orm/fixtures/README | 2 | ||||
-rwxr-xr-x | bitbake/lib/toaster/orm/fixtures/gen_fixtures.py | 447 | ||||
-rw-r--r-- | bitbake/lib/toaster/orm/fixtures/oe-core.xml | 48 | ||||
-rw-r--r-- | bitbake/lib/toaster/orm/fixtures/poky.xml | 118 | ||||
-rw-r--r-- | bitbake/lib/toaster/orm/fixtures/settings.xml | 4 | ||||
-rw-r--r-- | bitbake/lib/toaster/orm/management/commands/lsupdates.py | 16 | ||||
-rw-r--r-- | bitbake/lib/toaster/orm/migrations/0020_models_bigautofield.py | 173 | ||||
-rw-r--r-- | bitbake/lib/toaster/orm/migrations/0021_eventlogsimports.py | 22 | ||||
-rw-r--r-- | bitbake/lib/toaster/orm/models.py | 49 |
9 files changed, 795 insertions, 84 deletions
diff --git a/bitbake/lib/toaster/orm/fixtures/README b/bitbake/lib/toaster/orm/fixtures/README index 1b1c660aac..7cd745e26b 100644 --- a/bitbake/lib/toaster/orm/fixtures/README +++ b/bitbake/lib/toaster/orm/fixtures/README | |||
@@ -27,4 +27,4 @@ Data can be provided in XML, JSON and if installed YAML formats. | |||
27 | 27 | ||
28 | Use the django management command manage.py loaddata <your fixture file> | 28 | Use the django management command manage.py loaddata <your fixture file> |
29 | For further information see the Django command documentation at: | 29 | For further information see the Django command documentation at: |
30 | https://docs.djangoproject.com/en/1.8/ref/django-admin/#django-admin-loaddata | 30 | https://docs.djangoproject.com/en/3.2/ref/django-admin/#django-admin-loaddata |
diff --git a/bitbake/lib/toaster/orm/fixtures/gen_fixtures.py b/bitbake/lib/toaster/orm/fixtures/gen_fixtures.py new file mode 100755 index 0000000000..71afe3914e --- /dev/null +++ b/bitbake/lib/toaster/orm/fixtures/gen_fixtures.py | |||
@@ -0,0 +1,447 @@ | |||
1 | #!/usr/bin/env python3 | ||
2 | # ex:ts=4:sw=4:sts=4:et | ||
3 | # -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*- | ||
4 | # | ||
5 | # Generate Toaster Fixtures for 'poky.xml' and 'oe-core.xml' | ||
6 | # | ||
7 | # Copyright (C) 2022 Wind River Systems | ||
8 | # SPDX-License-Identifier: GPL-2.0-only | ||
9 | # | ||
10 | # Edit the 'current_releases' table for each new release cycle | ||
11 | # | ||
12 | # Usage: ./get_fixtures all | ||
13 | # | ||
14 | |||
15 | import os | ||
16 | import sys | ||
17 | import argparse | ||
18 | |||
19 | verbose = False | ||
20 | |||
21 | #################################### | ||
22 | # Releases | ||
23 | # | ||
24 | # https://wiki.yoctoproject.org/wiki/Releases | ||
25 | # | ||
26 | # NOTE: for the current releases table, it helps to keep continuing releases | ||
27 | # in the same table positions since this minimizes the patch diff for review. | ||
28 | # The order of the table does not matter since Toaster presents them sorted. | ||
29 | # | ||
30 | # Traditionally, the two most current releases are included in addition to the | ||
31 | # 'master' branch and the local installation's 'HEAD'. | ||
32 | # It is also policy to include all active LTS releases. | ||
33 | # | ||
34 | |||
35 | # [Codename, Yocto Project Version, Release Date, Current Version, Support Level, Poky Version, BitBake branch] | ||
36 | current_releases = [ | ||
37 | # Release slot #1 | ||
38 | ['Kirkstone','4.0','April 2022','4.0.8 (March 2023)','Stable - Long Term Support (until Apr. 2024)','','2.0'], | ||
39 | # Release slot #2 'local' | ||
40 | ['HEAD','HEAD','','Local Yocto Project','HEAD','','HEAD'], | ||
41 | # Release slot #3 'master' | ||
42 | ['Master','master','','Yocto Project master','master','','master'], | ||
43 | # Release slot #4 | ||
44 | ['Mickledore','4.2','April 2023','4.2.0 (April 2023)','Support for 7 months (until October 2023)','','2.4'], | ||
45 | # ['Langdale','4.1','October 2022','4.1.2 (January 2023)','Support for 7 months (until May 2023)','','2.2'], | ||
46 | # ['Honister','3.4','October 2021','3.4.2 (February 2022)','Support for 7 months (until May 2022)','26.0','1.52'], | ||
47 | # ['Hardknott','3.3','April 2021','3.3.5 (March 2022)','Stable - Support for 13 months (until Apr. 2022)','25.0','1.50'], | ||
48 | # ['Gatesgarth','3.2','Oct 2020','3.2.4 (May 2021)','EOL','24.0','1.48'], | ||
49 | # Optional Release slot #5 | ||
50 | ['Dunfell','3.1','April 2020','3.1.23 (February 2023)','Stable - Long Term Support (until Apr. 2024)','23.0','1.46'], | ||
51 | ] | ||
52 | |||
53 | default_poky_layers = [ | ||
54 | 'openembedded-core', | ||
55 | 'meta-poky', | ||
56 | 'meta-yocto-bsp', | ||
57 | ] | ||
58 | |||
59 | default_oe_core_layers = [ | ||
60 | 'openembedded-core', | ||
61 | ] | ||
62 | |||
63 | #################################### | ||
64 | # Templates | ||
65 | |||
66 | prolog_template = '''\ | ||
67 | <?xml version="1.0" encoding="utf-8"?> | ||
68 | <django-objects version="1.0"> | ||
69 | <!-- Set the project default value for DISTRO --> | ||
70 | <object model="orm.toastersetting" pk="1"> | ||
71 | <field type="CharField" name="name">DEFCONF_DISTRO</field> | ||
72 | <field type="CharField" name="value">{{distro}}</field> | ||
73 | </object> | ||
74 | ''' | ||
75 | |||
76 | #<!-- Bitbake versions which correspond to the metadata release -->') | ||
77 | bitbakeversion_poky_template = '''\ | ||
78 | <object model="orm.bitbakeversion" pk="{{bitbake_id}}"> | ||
79 | <field type="CharField" name="name">{{name}}</field> | ||
80 | <field type="CharField" name="giturl">git://git.yoctoproject.org/poky</field> | ||
81 | <field type="CharField" name="branch">{{branch}}</field> | ||
82 | <field type="CharField" name="dirpath">bitbake</field> | ||
83 | </object> | ||
84 | ''' | ||
85 | bitbakeversion_oecore_template = '''\ | ||
86 | <object model="orm.bitbakeversion" pk="{{bitbake_id}}"> | ||
87 | <field type="CharField" name="name">{{name}}</field> | ||
88 | <field type="CharField" name="giturl">git://git.openembedded.org/bitbake</field> | ||
89 | <field type="CharField" name="branch">{{bitbakeversion}}</field> | ||
90 | </object> | ||
91 | ''' | ||
92 | |||
93 | # <!-- Releases available --> | ||
94 | releases_available_template = '''\ | ||
95 | <object model="orm.release" pk="{{ra_count}}"> | ||
96 | <field type="CharField" name="name">{{name}}</field> | ||
97 | <field type="CharField" name="description">{{description}}</field> | ||
98 | <field rel="ManyToOneRel" to="orm.bitbakeversion" name="bitbake_version">{{ra_count}}</field> | ||
99 | <field type="CharField" name="branch_name">{{release}}</field> | ||
100 | <field type="TextField" name="helptext">Toaster will run your builds {{help_source}}.</field> | ||
101 | </object> | ||
102 | ''' | ||
103 | |||
104 | # <!-- Default project layers for each release --> | ||
105 | default_layers_template = '''\ | ||
106 | <object model="orm.releasedefaultlayer" pk="{{rdl_count}}"> | ||
107 | <field rel="ManyToOneRel" to="orm.release" name="release">{{release_id}}</field> | ||
108 | <field type="CharField" name="layer_name">{{layer}}</field> | ||
109 | </object> | ||
110 | ''' | ||
111 | |||
112 | default_layers_preface = '''\ | ||
113 | <!-- Default layers provided by poky | ||
114 | openembedded-core | ||
115 | meta-poky | ||
116 | meta-yocto-bsp | ||
117 | --> | ||
118 | ''' | ||
119 | |||
120 | layer_poky_template = '''\ | ||
121 | <object model="orm.layer" pk="{{layer_id}}"> | ||
122 | <field type="CharField" name="name">{{layer}}</field> | ||
123 | <field type="CharField" name="layer_index_url"></field> | ||
124 | <field type="CharField" name="vcs_url">{{vcs_url}}</field> | ||
125 | <field type="CharField" name="vcs_web_url">{{vcs_web_url}}</field> | ||
126 | <field type="CharField" name="vcs_web_tree_base_url">{{vcs_web_tree_base_url}}</field> | ||
127 | <field type="CharField" name="vcs_web_file_base_url">{{vcs_web_file_base_url}}</field> | ||
128 | </object> | ||
129 | ''' | ||
130 | |||
131 | layer_oe_core_template = '''\ | ||
132 | <object model="orm.layer" pk="{{layer_id}}"> | ||
133 | <field type="CharField" name="name">{{layer}}</field> | ||
134 | <field type="CharField" name="vcs_url">{{vcs_url}}</field> | ||
135 | <field type="CharField" name="vcs_web_url">{{vcs_web_url}}</field> | ||
136 | <field type="CharField" name="vcs_web_tree_base_url">{{vcs_web_tree_base_url}}</field> | ||
137 | <field type="CharField" name="vcs_web_file_base_url">{{vcs_web_file_base_url}}</field> | ||
138 | </object> | ||
139 | ''' | ||
140 | |||
141 | layer_version_template = '''\ | ||
142 | <object model="orm.layer_version" pk="{{lv_count}}"> | ||
143 | <field rel="ManyToOneRel" to="orm.layer" name="layer">{{layer_id}}</field> | ||
144 | <field type="IntegerField" name="layer_source">0</field> | ||
145 | <field rel="ManyToOneRel" to="orm.release" name="release">{{release_id}}</field> | ||
146 | <field type="CharField" name="branch">{{branch}}</field> | ||
147 | <field type="CharField" name="dirpath">{{dirpath}}</field> | ||
148 | </object> | ||
149 | ''' | ||
150 | |||
151 | layer_version_HEAD_template = '''\ | ||
152 | <object model="orm.layer_version" pk="{{lv_count}}"> | ||
153 | <field rel="ManyToOneRel" to="orm.layer" name="layer">{{layer_id}}</field> | ||
154 | <field type="IntegerField" name="layer_source">0</field> | ||
155 | <field rel="ManyToOneRel" to="orm.release" name="release">{{release_id}}</field> | ||
156 | <field type="CharField" name="branch">{{branch}}</field> | ||
157 | <field type="CharField" name="commit">{{commit}}</field> | ||
158 | <field type="CharField" name="dirpath">{{dirpath}}</field> | ||
159 | </object> | ||
160 | ''' | ||
161 | |||
162 | layer_version_oe_core_template = '''\ | ||
163 | <object model="orm.layer_version" pk="1"> | ||
164 | <field rel="ManyToOneRel" to="orm.layer" name="layer">1</field> | ||
165 | <field rel="ManyToOneRel" to="orm.release" name="release">2</field> | ||
166 | <field type="CharField" name="local_path">OE-CORE-LAYER-DIR</field> | ||
167 | <field type="CharField" name="branch">HEAD</field> | ||
168 | <field type="CharField" name="dirpath">meta</field> | ||
169 | <field type="IntegerField" name="layer_source">0</field> | ||
170 | </object> | ||
171 | ''' | ||
172 | |||
173 | epilog_template = '''\ | ||
174 | </django-objects> | ||
175 | ''' | ||
176 | |||
177 | ################################# | ||
178 | # Helper Routines | ||
179 | # | ||
180 | |||
181 | def print_str(str,fd): | ||
182 | # Avoid extra newline at end | ||
183 | if str and (str[-1] == '\n'): | ||
184 | str = str[0:-1] | ||
185 | print(str,file=fd) | ||
186 | |||
187 | def print_template(template,params,fd): | ||
188 | for line in template.split('\n'): | ||
189 | p = line.find('{{') | ||
190 | while p > 0: | ||
191 | q = line.find('}}') | ||
192 | key = line[p+2:q] | ||
193 | if key in params: | ||
194 | line = line[0:p] + params[key] + line[q+2:] | ||
195 | else: | ||
196 | line = line[0:p] + '?' + key + '?' + line[q+2:] | ||
197 | p = line.find('{{') | ||
198 | if line: | ||
199 | print(line,file=fd) | ||
200 | |||
201 | ################################# | ||
202 | # Generate poky.xml | ||
203 | # | ||
204 | |||
205 | def generate_poky(): | ||
206 | fd = open('poky.xml','w') | ||
207 | |||
208 | params = {} | ||
209 | params['distro'] = 'poky' | ||
210 | print_template(prolog_template,params,fd) | ||
211 | print_str('',fd) | ||
212 | |||
213 | print_str(' <!-- Bitbake versions which correspond to the metadata release -->',fd) | ||
214 | for i,release in enumerate(current_releases): | ||
215 | params = {} | ||
216 | params['release'] = release[0] | ||
217 | params['Release'] = release[0] | ||
218 | params['release_version'] = release[1] | ||
219 | if not (params['release'] in ('HEAD')): # 'master', | ||
220 | params['release'] = params['release'][0].lower() + params['release'][1:] | ||
221 | params['name'] = params['release'] | ||
222 | params['bitbake_id'] = str(i+1) | ||
223 | params['branch'] = params['release'] | ||
224 | print_template(bitbakeversion_poky_template,params,fd) | ||
225 | print_str('',fd) | ||
226 | |||
227 | print_str('',fd) | ||
228 | print_str(' <!-- Releases available -->',fd) | ||
229 | for i,release in enumerate(current_releases): | ||
230 | params = {} | ||
231 | params['release'] = release[0] | ||
232 | params['Release'] = release[0] | ||
233 | params['release_version'] = release[1] | ||
234 | if not (params['release'] in ('HEAD')): #'master', | ||
235 | params['release'] = params['release'][0].lower() + params['release'][1:] | ||
236 | params['h_release'] = '?h={{release}}' | ||
237 | params['name'] = params['release'] | ||
238 | params['ra_count'] = str(i+1) | ||
239 | params['branch'] = params['release'] | ||
240 | |||
241 | if 'HEAD' == params['release']: | ||
242 | params['help_source'] = 'with the version of the Yocto Project you have cloned or downloaded to your computer' | ||
243 | params['description'] = 'Local Yocto Project' | ||
244 | params['name'] = 'local' | ||
245 | else: | ||
246 | params['help_source'] = 'using the tip of the <a href="https://git.yoctoproject.org/cgit/cgit.cgi/poky/log/{{h_release}}">Yocto Project {{Release}} branch</a>' | ||
247 | params['description'] = 'Yocto Project {{release_version}} "{{Release}}"' | ||
248 | if 'master' == params['release']: | ||
249 | params['h_release'] = '' | ||
250 | params['description'] = 'Yocto Project master' | ||
251 | |||
252 | print_template(releases_available_template,params,fd) | ||
253 | print_str('',fd) | ||
254 | |||
255 | print_str(' <!-- Default project layers for each release -->',fd) | ||
256 | rdl_count = 1 | ||
257 | for i,release in enumerate(current_releases): | ||
258 | for j,layer in enumerate(default_poky_layers): | ||
259 | params = {} | ||
260 | params['layer'] = layer | ||
261 | params['release'] = release[0] | ||
262 | params['Release'] = release[0] | ||
263 | params['release_version'] = release[1] | ||
264 | if not (params['release'] in ('master','HEAD')): | ||
265 | params['release'] = params['release'][0].lower() + params['release'][1:] | ||
266 | params['release_id'] = str(i+1) | ||
267 | params['rdl_count'] = str(rdl_count) | ||
268 | params['branch'] = params['release'] | ||
269 | print_template(default_layers_template,params,fd) | ||
270 | rdl_count += 1 | ||
271 | print_str('',fd) | ||
272 | |||
273 | print_str(default_layers_preface,fd) | ||
274 | lv_count = 1 | ||
275 | for i,layer in enumerate(default_poky_layers): | ||
276 | params = {} | ||
277 | params['layer'] = layer | ||
278 | params['layer_id'] = str(i+1) | ||
279 | params['vcs_url'] = 'git://git.yoctoproject.org/poky' | ||
280 | params['vcs_web_url'] = 'https://git.yoctoproject.org/cgit/cgit.cgi/poky' | ||
281 | params['vcs_web_tree_base_url'] = 'https://git.yoctoproject.org/cgit/cgit.cgi/poky/tree/%path%?h=%branch%' | ||
282 | params['vcs_web_file_base_url'] = 'https://git.yoctoproject.org/cgit/cgit.cgi/poky/tree/%path%?h=%branch%' | ||
283 | |||
284 | if i: | ||
285 | print_str('',fd) | ||
286 | print_template(layer_poky_template,params,fd) | ||
287 | for j,release in enumerate(current_releases): | ||
288 | params['release'] = release[0] | ||
289 | params['Release'] = release[0] | ||
290 | params['release_version'] = release[1] | ||
291 | if not (params['release'] in ('master','HEAD')): | ||
292 | params['release'] = params['release'][0].lower() + params['release'][1:] | ||
293 | params['release_id'] = str(j+1) | ||
294 | params['lv_count'] = str(lv_count) | ||
295 | params['branch'] = params['release'] | ||
296 | params['commit'] = params['release'] | ||
297 | |||
298 | params['dirpath'] = params['layer'] | ||
299 | if params['layer'] in ('openembedded-core'): #'openembedded-core', | ||
300 | params['dirpath'] = 'meta' | ||
301 | |||
302 | if 'HEAD' == params['release']: | ||
303 | print_template(layer_version_HEAD_template,params,fd) | ||
304 | else: | ||
305 | print_template(layer_version_template,params,fd) | ||
306 | lv_count += 1 | ||
307 | |||
308 | print_str(epilog_template,fd) | ||
309 | fd.close() | ||
310 | |||
311 | ################################# | ||
312 | # Generate oe-core.xml | ||
313 | # | ||
314 | |||
315 | def generate_oe_core(): | ||
316 | fd = open('oe-core.xml','w') | ||
317 | |||
318 | params = {} | ||
319 | params['distro'] = 'nodistro' | ||
320 | print_template(prolog_template,params,fd) | ||
321 | print_str('',fd) | ||
322 | |||
323 | print_str(' <!-- Bitbake versions which correspond to the metadata release -->',fd) | ||
324 | for i,release in enumerate(current_releases): | ||
325 | params = {} | ||
326 | params['release'] = release[0] | ||
327 | params['Release'] = release[0] | ||
328 | params['bitbakeversion'] = release[6] | ||
329 | params['release_version'] = release[1] | ||
330 | if not (params['release'] in ('HEAD')): # 'master', | ||
331 | params['release'] = params['release'][0].lower() + params['release'][1:] | ||
332 | params['name'] = params['release'] | ||
333 | params['bitbake_id'] = str(i+1) | ||
334 | params['branch'] = params['release'] | ||
335 | print_template(bitbakeversion_oecore_template,params,fd) | ||
336 | print_str('',fd) | ||
337 | |||
338 | print_str(' <!-- Releases available -->',fd) | ||
339 | for i,release in enumerate(current_releases): | ||
340 | params = {} | ||
341 | params['release'] = release[0] | ||
342 | params['Release'] = release[0] | ||
343 | params['release_version'] = release[1] | ||
344 | if not (params['release'] in ('HEAD')): #'master', | ||
345 | params['release'] = params['release'][0].lower() + params['release'][1:] | ||
346 | params['h_release'] = '?h={{release}}' | ||
347 | params['name'] = params['release'] | ||
348 | params['ra_count'] = str(i+1) | ||
349 | params['branch'] = params['release'] | ||
350 | |||
351 | if 'HEAD' == params['release']: | ||
352 | params['help_source'] = 'with the version of OpenEmbedded that you have cloned or downloaded to your computer' | ||
353 | params['description'] = 'Local Openembedded' | ||
354 | params['name'] = 'local' | ||
355 | else: | ||
356 | params['help_source'] = 'using the tip of the <a href=\\"https://cgit.openembedded.org/openembedded-core/log/{{h_release}}\\">OpenEmbedded {{Release}}</a> branch' | ||
357 | params['description'] = 'Openembedded {{Release}}' | ||
358 | if 'master' == params['release']: | ||
359 | params['h_release'] = '' | ||
360 | params['description'] = 'OpenEmbedded core master' | ||
361 | params['Release'] = params['release'] | ||
362 | |||
363 | print_template(releases_available_template,params,fd) | ||
364 | print_str('',fd) | ||
365 | |||
366 | print_str(' <!-- Default layers for each release -->',fd) | ||
367 | rdl_count = 1 | ||
368 | for i,release in enumerate(current_releases): | ||
369 | for j,layer in enumerate(default_oe_core_layers): | ||
370 | params = {} | ||
371 | params['layer'] = layer | ||
372 | params['release'] = release[0] | ||
373 | params['Release'] = release[0] | ||
374 | params['release_version'] = release[1] | ||
375 | if not (params['release'] in ('master','HEAD')): | ||
376 | params['release'] = params['release'][0].lower() + params['release'][1:] | ||
377 | params['release_id'] = str(i+1) | ||
378 | params['rdl_count'] = str(rdl_count) | ||
379 | params['branch'] = params['release'] | ||
380 | print_template(default_layers_template,params,fd) | ||
381 | rdl_count += 1 | ||
382 | print_str('',fd) | ||
383 | |||
384 | print_str('',fd) | ||
385 | print_str(' <!-- Layer for the Local release -->',fd) | ||
386 | lv_count = 1 | ||
387 | for i,layer in enumerate(default_oe_core_layers): | ||
388 | params = {} | ||
389 | params['layer'] = layer | ||
390 | params['layer_id'] = str(i+1) | ||
391 | params['vcs_url'] = 'git://git.openembedded.org/openembedded-core' | ||
392 | params['vcs_web_url'] = 'https://cgit.openembedded.org/openembedded-core' | ||
393 | params['vcs_web_tree_base_url'] = 'https://cgit.openembedded.org/openembedded-core/tree/%path%?h=%branch%' | ||
394 | params['vcs_web_file_base_url'] = 'https://cgit.openembedded.org/openembedded-core/tree/%path%?h=%branch%' | ||
395 | if i: | ||
396 | print_str('',fd) | ||
397 | print_template(layer_oe_core_template,params,fd) | ||
398 | |||
399 | print_template(layer_version_oe_core_template,params,fd) | ||
400 | print_str('',fd) | ||
401 | |||
402 | print_str(epilog_template,fd) | ||
403 | fd.close() | ||
404 | |||
405 | ################################# | ||
406 | # Help | ||
407 | # | ||
408 | |||
409 | def list_releases(): | ||
410 | print("Release ReleaseVer BitbakeVer Support Level") | ||
411 | print("========== =========== ========== ==============================================") | ||
412 | for release in current_releases: | ||
413 | print("%10s %10s %11s %s" % (release[0],release[1],release[6],release[4])) | ||
414 | |||
415 | ################################# | ||
416 | # main | ||
417 | # | ||
418 | |||
419 | def main(argv): | ||
420 | global verbose | ||
421 | |||
422 | parser = argparse.ArgumentParser(description='gen_fixtures.py: table generate the fixture files') | ||
423 | parser.add_argument('--poky', '-p', action='store_const', const='poky', dest='command', help='Generate the poky.xml file') | ||
424 | parser.add_argument('--oe-core', '-o', action='store_const', const='oe_core', dest='command', help='Generate the oe-core.xml file') | ||
425 | parser.add_argument('--all', '-a', action='store_const', const='all', dest='command', help='Generate all fixture files') | ||
426 | parser.add_argument('--list', '-l', action='store_const', const='list', dest='command', help='List the release table') | ||
427 | parser.add_argument('--verbose', '-v', action='store_true', dest='verbose', help='Enable verbose debugging output') | ||
428 | args = parser.parse_args() | ||
429 | |||
430 | verbose = args.verbose | ||
431 | if 'poky' == args.command: | ||
432 | generate_poky() | ||
433 | elif 'oe_core' == args.command: | ||
434 | generate_oe_core() | ||
435 | elif 'all' == args.command: | ||
436 | generate_poky() | ||
437 | generate_oe_core() | ||
438 | elif 'all' == args.command: | ||
439 | list_releases() | ||
440 | elif 'list' == args.command: | ||
441 | list_releases() | ||
442 | |||
443 | else: | ||
444 | print("No command for 'gen_fixtures.py' selected") | ||
445 | |||
446 | if __name__ == '__main__': | ||
447 | main(sys.argv[1:]) | ||
diff --git a/bitbake/lib/toaster/orm/fixtures/oe-core.xml b/bitbake/lib/toaster/orm/fixtures/oe-core.xml index 026d94869a..950f2a98af 100644 --- a/bitbake/lib/toaster/orm/fixtures/oe-core.xml +++ b/bitbake/lib/toaster/orm/fixtures/oe-core.xml | |||
@@ -8,9 +8,9 @@ | |||
8 | 8 | ||
9 | <!-- Bitbake versions which correspond to the metadata release --> | 9 | <!-- Bitbake versions which correspond to the metadata release --> |
10 | <object model="orm.bitbakeversion" pk="1"> | 10 | <object model="orm.bitbakeversion" pk="1"> |
11 | <field type="CharField" name="name">dunfell</field> | 11 | <field type="CharField" name="name">kirkstone</field> |
12 | <field type="CharField" name="giturl">git://git.openembedded.org/bitbake</field> | 12 | <field type="CharField" name="giturl">git://git.openembedded.org/bitbake</field> |
13 | <field type="CharField" name="branch">1.46</field> | 13 | <field type="CharField" name="branch">2.0</field> |
14 | </object> | 14 | </object> |
15 | <object model="orm.bitbakeversion" pk="2"> | 15 | <object model="orm.bitbakeversion" pk="2"> |
16 | <field type="CharField" name="name">HEAD</field> | 16 | <field type="CharField" name="name">HEAD</field> |
@@ -23,18 +23,23 @@ | |||
23 | <field type="CharField" name="branch">master</field> | 23 | <field type="CharField" name="branch">master</field> |
24 | </object> | 24 | </object> |
25 | <object model="orm.bitbakeversion" pk="4"> | 25 | <object model="orm.bitbakeversion" pk="4"> |
26 | <field type="CharField" name="name">gatesgarth</field> | 26 | <field type="CharField" name="name">mickledore</field> |
27 | <field type="CharField" name="giturl">git://git.openembedded.org/bitbake</field> | ||
28 | <field type="CharField" name="branch">2.4</field> | ||
29 | </object> | ||
30 | <object model="orm.bitbakeversion" pk="5"> | ||
31 | <field type="CharField" name="name">dunfell</field> | ||
27 | <field type="CharField" name="giturl">git://git.openembedded.org/bitbake</field> | 32 | <field type="CharField" name="giturl">git://git.openembedded.org/bitbake</field> |
28 | <field type="CharField" name="branch">1.48</field> | 33 | <field type="CharField" name="branch">1.46</field> |
29 | </object> | 34 | </object> |
30 | 35 | ||
31 | <!-- Releases available --> | 36 | <!-- Releases available --> |
32 | <object model="orm.release" pk="1"> | 37 | <object model="orm.release" pk="1"> |
33 | <field type="CharField" name="name">dunfell</field> | 38 | <field type="CharField" name="name">kirkstone</field> |
34 | <field type="CharField" name="description">Openembedded Dunfell</field> | 39 | <field type="CharField" name="description">Openembedded Kirkstone</field> |
35 | <field rel="ManyToOneRel" to="orm.bitbakeversion" name="bitbake_version">1</field> | 40 | <field rel="ManyToOneRel" to="orm.bitbakeversion" name="bitbake_version">1</field> |
36 | <field type="CharField" name="branch_name">dunfell</field> | 41 | <field type="CharField" name="branch_name">kirkstone</field> |
37 | <field type="TextField" name="helptext">Toaster will run your builds using the tip of the <a href=\"http://cgit.openembedded.org/openembedded-core/log/?h=dunfell\">OpenEmbedded Dunfell</a> branch.</field> | 42 | <field type="TextField" name="helptext">Toaster will run your builds using the tip of the <a href=\"https://cgit.openembedded.org/openembedded-core/log/?h=kirkstone\">OpenEmbedded Kirkstone</a> branch.</field> |
38 | </object> | 43 | </object> |
39 | <object model="orm.release" pk="2"> | 44 | <object model="orm.release" pk="2"> |
40 | <field type="CharField" name="name">local</field> | 45 | <field type="CharField" name="name">local</field> |
@@ -48,14 +53,21 @@ | |||
48 | <field type="CharField" name="description">OpenEmbedded core master</field> | 53 | <field type="CharField" name="description">OpenEmbedded core master</field> |
49 | <field rel="ManyToOneRel" to="orm.bitbakeversion" name="bitbake_version">3</field> | 54 | <field rel="ManyToOneRel" to="orm.bitbakeversion" name="bitbake_version">3</field> |
50 | <field type="CharField" name="branch_name">master</field> | 55 | <field type="CharField" name="branch_name">master</field> |
51 | <field type="TextField" name="helptext">Toaster will run your builds using the tip of the <a href=\"http://cgit.openembedded.org/openembedded-core/log/\">OpenEmbedded master</a> branch.</field> | 56 | <field type="TextField" name="helptext">Toaster will run your builds using the tip of the <a href=\"https://cgit.openembedded.org/openembedded-core/log/\">OpenEmbedded master</a> branch.</field> |
52 | </object> | 57 | </object> |
53 | <object model="orm.release" pk="4"> | 58 | <object model="orm.release" pk="4"> |
54 | <field type="CharField" name="name">gatesgarth</field> | 59 | <field type="CharField" name="name">mickledore</field> |
55 | <field type="CharField" name="description">Openembedded Gatesgarth</field> | 60 | <field type="CharField" name="description">Openembedded Mickledore</field> |
56 | <field rel="ManyToOneRel" to="orm.bitbakeversion" name="bitbake_version">4</field> | 61 | <field rel="ManyToOneRel" to="orm.bitbakeversion" name="bitbake_version">4</field> |
57 | <field type="CharField" name="branch_name">gatesgarth</field> | 62 | <field type="CharField" name="branch_name">mickledore</field> |
58 | <field type="TextField" name="helptext">Toaster will run your builds using the tip of the <a href=\"http://cgit.openembedded.org/openembedded-core/log/?h=gatesgarth\">OpenEmbedded Gatesgarth</a> branch.</field> | 63 | <field type="TextField" name="helptext">Toaster will run your builds using the tip of the <a href=\"https://cgit.openembedded.org/openembedded-core/log/?h=mickledore\">OpenEmbedded Mickledore</a> branch.</field> |
64 | </object> | ||
65 | <object model="orm.release" pk="5"> | ||
66 | <field type="CharField" name="name">dunfell</field> | ||
67 | <field type="CharField" name="description">Openembedded Dunfell</field> | ||
68 | <field rel="ManyToOneRel" to="orm.bitbakeversion" name="bitbake_version">5</field> | ||
69 | <field type="CharField" name="branch_name">dunfell</field> | ||
70 | <field type="TextField" name="helptext">Toaster will run your builds using the tip of the <a href=\"https://cgit.openembedded.org/openembedded-core/log/?h=dunfell\">OpenEmbedded Dunfell</a> branch.</field> | ||
59 | </object> | 71 | </object> |
60 | 72 | ||
61 | <!-- Default layers for each release --> | 73 | <!-- Default layers for each release --> |
@@ -75,15 +87,19 @@ | |||
75 | <field rel="ManyToOneRel" to="orm.release" name="release">4</field> | 87 | <field rel="ManyToOneRel" to="orm.release" name="release">4</field> |
76 | <field type="CharField" name="layer_name">openembedded-core</field> | 88 | <field type="CharField" name="layer_name">openembedded-core</field> |
77 | </object> | 89 | </object> |
90 | <object model="orm.releasedefaultlayer" pk="5"> | ||
91 | <field rel="ManyToOneRel" to="orm.release" name="release">5</field> | ||
92 | <field type="CharField" name="layer_name">openembedded-core</field> | ||
93 | </object> | ||
78 | 94 | ||
79 | 95 | ||
80 | <!-- Layer for the Local release --> | 96 | <!-- Layer for the Local release --> |
81 | <object model="orm.layer" pk="1"> | 97 | <object model="orm.layer" pk="1"> |
82 | <field type="CharField" name="name">openembedded-core</field> | 98 | <field type="CharField" name="name">openembedded-core</field> |
83 | <field type="CharField" name="vcs_url">git://git.openembedded.org/openembedded-core</field> | 99 | <field type="CharField" name="vcs_url">git://git.openembedded.org/openembedded-core</field> |
84 | <field type="CharField" name="vcs_web_url">http://cgit.openembedded.org/openembedded-core</field> | 100 | <field type="CharField" name="vcs_web_url">https://cgit.openembedded.org/openembedded-core</field> |
85 | <field type="CharField" name="vcs_web_tree_base_url">http://cgit.openembedded.org/openembedded-core/tree/%path%?h=%branch%</field> | 101 | <field type="CharField" name="vcs_web_tree_base_url">https://cgit.openembedded.org/openembedded-core/tree/%path%?h=%branch%</field> |
86 | <field type="CharField" name="vcs_web_file_base_url">http://cgit.openembedded.org/openembedded-core/tree/%path%?h=%branch%</field> | 102 | <field type="CharField" name="vcs_web_file_base_url">https://cgit.openembedded.org/openembedded-core/tree/%path%?h=%branch%</field> |
87 | </object> | 103 | </object> |
88 | <object model="orm.layer_version" pk="1"> | 104 | <object model="orm.layer_version" pk="1"> |
89 | <field rel="ManyToOneRel" to="orm.layer" name="layer">1</field> | 105 | <field rel="ManyToOneRel" to="orm.layer" name="layer">1</field> |
diff --git a/bitbake/lib/toaster/orm/fixtures/poky.xml b/bitbake/lib/toaster/orm/fixtures/poky.xml index a468a54c49..121e52fd45 100644 --- a/bitbake/lib/toaster/orm/fixtures/poky.xml +++ b/bitbake/lib/toaster/orm/fixtures/poky.xml | |||
@@ -8,9 +8,9 @@ | |||
8 | 8 | ||
9 | <!-- Bitbake versions which correspond to the metadata release --> | 9 | <!-- Bitbake versions which correspond to the metadata release --> |
10 | <object model="orm.bitbakeversion" pk="1"> | 10 | <object model="orm.bitbakeversion" pk="1"> |
11 | <field type="CharField" name="name">dunfell</field> | 11 | <field type="CharField" name="name">kirkstone</field> |
12 | <field type="CharField" name="giturl">git://git.yoctoproject.org/poky</field> | 12 | <field type="CharField" name="giturl">git://git.yoctoproject.org/poky</field> |
13 | <field type="CharField" name="branch">dunfell</field> | 13 | <field type="CharField" name="branch">kirkstone</field> |
14 | <field type="CharField" name="dirpath">bitbake</field> | 14 | <field type="CharField" name="dirpath">bitbake</field> |
15 | </object> | 15 | </object> |
16 | <object model="orm.bitbakeversion" pk="2"> | 16 | <object model="orm.bitbakeversion" pk="2"> |
@@ -26,20 +26,26 @@ | |||
26 | <field type="CharField" name="dirpath">bitbake</field> | 26 | <field type="CharField" name="dirpath">bitbake</field> |
27 | </object> | 27 | </object> |
28 | <object model="orm.bitbakeversion" pk="4"> | 28 | <object model="orm.bitbakeversion" pk="4"> |
29 | <field type="CharField" name="name">gatesgarth</field> | 29 | <field type="CharField" name="name">mickledore</field> |
30 | <field type="CharField" name="giturl">git://git.yoctoproject.org/poky</field> | 30 | <field type="CharField" name="giturl">git://git.yoctoproject.org/poky</field> |
31 | <field type="CharField" name="branch">gatesgarth</field> | 31 | <field type="CharField" name="branch">mickledore</field> |
32 | <field type="CharField" name="dirpath">bitbake</field> | ||
33 | </object> | ||
34 | <object model="orm.bitbakeversion" pk="5"> | ||
35 | <field type="CharField" name="name">dunfell</field> | ||
36 | <field type="CharField" name="giturl">git://git.yoctoproject.org/poky</field> | ||
37 | <field type="CharField" name="branch">dunfell</field> | ||
32 | <field type="CharField" name="dirpath">bitbake</field> | 38 | <field type="CharField" name="dirpath">bitbake</field> |
33 | </object> | 39 | </object> |
34 | 40 | ||
35 | 41 | ||
36 | <!-- Releases available --> | 42 | <!-- Releases available --> |
37 | <object model="orm.release" pk="1"> | 43 | <object model="orm.release" pk="1"> |
38 | <field type="CharField" name="name">dunfell</field> | 44 | <field type="CharField" name="name">kirkstone</field> |
39 | <field type="CharField" name="description">Yocto Project 3.1 "Dunfell"</field> | 45 | <field type="CharField" name="description">Yocto Project 4.0 "Kirkstone"</field> |
40 | <field rel="ManyToOneRel" to="orm.bitbakeversion" name="bitbake_version">1</field> | 46 | <field rel="ManyToOneRel" to="orm.bitbakeversion" name="bitbake_version">1</field> |
41 | <field type="CharField" name="branch_name">dunfell</field> | 47 | <field type="CharField" name="branch_name">kirkstone</field> |
42 | <field type="TextField" name="helptext">Toaster will run your builds using the tip of the <a href="http://git.yoctoproject.org/cgit/cgit.cgi/poky/log/?h=dunfell">Yocto Project Dunfell branch</a>.</field> | 48 | <field type="TextField" name="helptext">Toaster will run your builds using the tip of the <a href="https://git.yoctoproject.org/cgit/cgit.cgi/poky/log/?h=kirkstone">Yocto Project Kirkstone branch</a>.</field> |
43 | </object> | 49 | </object> |
44 | <object model="orm.release" pk="2"> | 50 | <object model="orm.release" pk="2"> |
45 | <field type="CharField" name="name">local</field> | 51 | <field type="CharField" name="name">local</field> |
@@ -53,14 +59,21 @@ | |||
53 | <field type="CharField" name="description">Yocto Project master</field> | 59 | <field type="CharField" name="description">Yocto Project master</field> |
54 | <field rel="ManyToOneRel" to="orm.bitbakeversion" name="bitbake_version">3</field> | 60 | <field rel="ManyToOneRel" to="orm.bitbakeversion" name="bitbake_version">3</field> |
55 | <field type="CharField" name="branch_name">master</field> | 61 | <field type="CharField" name="branch_name">master</field> |
56 | <field type="TextField" name="helptext">Toaster will run your builds using the tip of the <a href="http://git.yoctoproject.org/cgit/cgit.cgi/poky/log/">Yocto Project Master branch</a>.</field> | 62 | <field type="TextField" name="helptext">Toaster will run your builds using the tip of the <a href="https://git.yoctoproject.org/cgit/cgit.cgi/poky/log/">Yocto Project Master branch</a>.</field> |
57 | </object> | 63 | </object> |
58 | <object model="orm.release" pk="4"> | 64 | <object model="orm.release" pk="4"> |
59 | <field type="CharField" name="name">gatesgarth</field> | 65 | <field type="CharField" name="name">mickledore</field> |
60 | <field type="CharField" name="description">Yocto Project 3.2 "Gatesgarth"</field> | 66 | <field type="CharField" name="description">Yocto Project 4.2 "Mickledore"</field> |
61 | <field rel="ManyToOneRel" to="orm.bitbakeversion" name="bitbake_version">4</field> | 67 | <field rel="ManyToOneRel" to="orm.bitbakeversion" name="bitbake_version">4</field> |
62 | <field type="CharField" name="branch_name">gatesgarth</field> | 68 | <field type="CharField" name="branch_name">mickledore</field> |
63 | <field type="TextField" name="helptext">Toaster will run your builds using the tip of the <a href="http://git.yoctoproject.org/cgit/cgit.cgi/poky/log/?h=gatesgarth">Yocto Project Gatesgarth branch</a>.</field> | 69 | <field type="TextField" name="helptext">Toaster will run your builds using the tip of the <a href="https://git.yoctoproject.org/cgit/cgit.cgi/poky/log/?h=mickledore">Yocto Project Mickledore branch</a>.</field> |
70 | </object> | ||
71 | <object model="orm.release" pk="5"> | ||
72 | <field type="CharField" name="name">dunfell</field> | ||
73 | <field type="CharField" name="description">Yocto Project 3.1 "Dunfell"</field> | ||
74 | <field rel="ManyToOneRel" to="orm.bitbakeversion" name="bitbake_version">5</field> | ||
75 | <field type="CharField" name="branch_name">dunfell</field> | ||
76 | <field type="TextField" name="helptext">Toaster will run your builds using the tip of the <a href="https://git.yoctoproject.org/cgit/cgit.cgi/poky/log/?h=dunfell">Yocto Project Dunfell branch</a>.</field> | ||
64 | </object> | 77 | </object> |
65 | 78 | ||
66 | <!-- Default project layers for each release --> | 79 | <!-- Default project layers for each release --> |
@@ -112,6 +125,18 @@ | |||
112 | <field rel="ManyToOneRel" to="orm.release" name="release">4</field> | 125 | <field rel="ManyToOneRel" to="orm.release" name="release">4</field> |
113 | <field type="CharField" name="layer_name">meta-yocto-bsp</field> | 126 | <field type="CharField" name="layer_name">meta-yocto-bsp</field> |
114 | </object> | 127 | </object> |
128 | <object model="orm.releasedefaultlayer" pk="13"> | ||
129 | <field rel="ManyToOneRel" to="orm.release" name="release">5</field> | ||
130 | <field type="CharField" name="layer_name">openembedded-core</field> | ||
131 | </object> | ||
132 | <object model="orm.releasedefaultlayer" pk="14"> | ||
133 | <field rel="ManyToOneRel" to="orm.release" name="release">5</field> | ||
134 | <field type="CharField" name="layer_name">meta-poky</field> | ||
135 | </object> | ||
136 | <object model="orm.releasedefaultlayer" pk="15"> | ||
137 | <field rel="ManyToOneRel" to="orm.release" name="release">5</field> | ||
138 | <field type="CharField" name="layer_name">meta-yocto-bsp</field> | ||
139 | </object> | ||
115 | 140 | ||
116 | <!-- Default layers provided by poky | 141 | <!-- Default layers provided by poky |
117 | openembedded-core | 142 | openembedded-core |
@@ -122,15 +147,15 @@ | |||
122 | <field type="CharField" name="name">openembedded-core</field> | 147 | <field type="CharField" name="name">openembedded-core</field> |
123 | <field type="CharField" name="layer_index_url"></field> | 148 | <field type="CharField" name="layer_index_url"></field> |
124 | <field type="CharField" name="vcs_url">git://git.yoctoproject.org/poky</field> | 149 | <field type="CharField" name="vcs_url">git://git.yoctoproject.org/poky</field> |
125 | <field type="CharField" name="vcs_web_url">http://git.yoctoproject.org/cgit/cgit.cgi/poky</field> | 150 | <field type="CharField" name="vcs_web_url">https://git.yoctoproject.org/cgit/cgit.cgi/poky</field> |
126 | <field type="CharField" name="vcs_web_tree_base_url">http://git.yoctoproject.org/cgit/cgit.cgi/poky/tree/%path%?h=%branch%</field> | 151 | <field type="CharField" name="vcs_web_tree_base_url">https://git.yoctoproject.org/cgit/cgit.cgi/poky/tree/%path%?h=%branch%</field> |
127 | <field type="CharField" name="vcs_web_file_base_url">http://git.yoctoproject.org/cgit/cgit.cgi/poky/tree/%path%?h=%branch%</field> | 152 | <field type="CharField" name="vcs_web_file_base_url">https://git.yoctoproject.org/cgit/cgit.cgi/poky/tree/%path%?h=%branch%</field> |
128 | </object> | 153 | </object> |
129 | <object model="orm.layer_version" pk="1"> | 154 | <object model="orm.layer_version" pk="1"> |
130 | <field rel="ManyToOneRel" to="orm.layer" name="layer">1</field> | 155 | <field rel="ManyToOneRel" to="orm.layer" name="layer">1</field> |
131 | <field type="IntegerField" name="layer_source">0</field> | 156 | <field type="IntegerField" name="layer_source">0</field> |
132 | <field rel="ManyToOneRel" to="orm.release" name="release">1</field> | 157 | <field rel="ManyToOneRel" to="orm.release" name="release">1</field> |
133 | <field type="CharField" name="branch">dunfell</field> | 158 | <field type="CharField" name="branch">kirkstone</field> |
134 | <field type="CharField" name="dirpath">meta</field> | 159 | <field type="CharField" name="dirpath">meta</field> |
135 | </object> | 160 | </object> |
136 | <object model="orm.layer_version" pk="2"> | 161 | <object model="orm.layer_version" pk="2"> |
@@ -152,7 +177,14 @@ | |||
152 | <field rel="ManyToOneRel" to="orm.layer" name="layer">1</field> | 177 | <field rel="ManyToOneRel" to="orm.layer" name="layer">1</field> |
153 | <field type="IntegerField" name="layer_source">0</field> | 178 | <field type="IntegerField" name="layer_source">0</field> |
154 | <field rel="ManyToOneRel" to="orm.release" name="release">4</field> | 179 | <field rel="ManyToOneRel" to="orm.release" name="release">4</field> |
155 | <field type="CharField" name="branch">gatesgarth</field> | 180 | <field type="CharField" name="branch">mickledore</field> |
181 | <field type="CharField" name="dirpath">meta</field> | ||
182 | </object> | ||
183 | <object model="orm.layer_version" pk="5"> | ||
184 | <field rel="ManyToOneRel" to="orm.layer" name="layer">1</field> | ||
185 | <field type="IntegerField" name="layer_source">0</field> | ||
186 | <field rel="ManyToOneRel" to="orm.release" name="release">5</field> | ||
187 | <field type="CharField" name="branch">dunfell</field> | ||
156 | <field type="CharField" name="dirpath">meta</field> | 188 | <field type="CharField" name="dirpath">meta</field> |
157 | </object> | 189 | </object> |
158 | 190 | ||
@@ -160,18 +192,18 @@ | |||
160 | <field type="CharField" name="name">meta-poky</field> | 192 | <field type="CharField" name="name">meta-poky</field> |
161 | <field type="CharField" name="layer_index_url"></field> | 193 | <field type="CharField" name="layer_index_url"></field> |
162 | <field type="CharField" name="vcs_url">git://git.yoctoproject.org/poky</field> | 194 | <field type="CharField" name="vcs_url">git://git.yoctoproject.org/poky</field> |
163 | <field type="CharField" name="vcs_web_url">http://git.yoctoproject.org/cgit/cgit.cgi/poky</field> | 195 | <field type="CharField" name="vcs_web_url">https://git.yoctoproject.org/cgit/cgit.cgi/poky</field> |
164 | <field type="CharField" name="vcs_web_tree_base_url">http://git.yoctoproject.org/cgit/cgit.cgi/poky/tree/%path%?h=%branch%</field> | 196 | <field type="CharField" name="vcs_web_tree_base_url">https://git.yoctoproject.org/cgit/cgit.cgi/poky/tree/%path%?h=%branch%</field> |
165 | <field type="CharField" name="vcs_web_file_base_url">http://git.yoctoproject.org/cgit/cgit.cgi/poky/tree/%path%?h=%branch%</field> | 197 | <field type="CharField" name="vcs_web_file_base_url">https://git.yoctoproject.org/cgit/cgit.cgi/poky/tree/%path%?h=%branch%</field> |
166 | </object> | 198 | </object> |
167 | <object model="orm.layer_version" pk="5"> | 199 | <object model="orm.layer_version" pk="6"> |
168 | <field rel="ManyToOneRel" to="orm.layer" name="layer">2</field> | 200 | <field rel="ManyToOneRel" to="orm.layer" name="layer">2</field> |
169 | <field type="IntegerField" name="layer_source">0</field> | 201 | <field type="IntegerField" name="layer_source">0</field> |
170 | <field rel="ManyToOneRel" to="orm.release" name="release">1</field> | 202 | <field rel="ManyToOneRel" to="orm.release" name="release">1</field> |
171 | <field type="CharField" name="branch">dunfell</field> | 203 | <field type="CharField" name="branch">kirkstone</field> |
172 | <field type="CharField" name="dirpath">meta-poky</field> | 204 | <field type="CharField" name="dirpath">meta-poky</field> |
173 | </object> | 205 | </object> |
174 | <object model="orm.layer_version" pk="6"> | 206 | <object model="orm.layer_version" pk="7"> |
175 | <field rel="ManyToOneRel" to="orm.layer" name="layer">2</field> | 207 | <field rel="ManyToOneRel" to="orm.layer" name="layer">2</field> |
176 | <field type="IntegerField" name="layer_source">0</field> | 208 | <field type="IntegerField" name="layer_source">0</field> |
177 | <field rel="ManyToOneRel" to="orm.release" name="release">2</field> | 209 | <field rel="ManyToOneRel" to="orm.release" name="release">2</field> |
@@ -179,18 +211,25 @@ | |||
179 | <field type="CharField" name="commit">HEAD</field> | 211 | <field type="CharField" name="commit">HEAD</field> |
180 | <field type="CharField" name="dirpath">meta-poky</field> | 212 | <field type="CharField" name="dirpath">meta-poky</field> |
181 | </object> | 213 | </object> |
182 | <object model="orm.layer_version" pk="7"> | 214 | <object model="orm.layer_version" pk="8"> |
183 | <field rel="ManyToOneRel" to="orm.layer" name="layer">2</field> | 215 | <field rel="ManyToOneRel" to="orm.layer" name="layer">2</field> |
184 | <field type="IntegerField" name="layer_source">0</field> | 216 | <field type="IntegerField" name="layer_source">0</field> |
185 | <field rel="ManyToOneRel" to="orm.release" name="release">3</field> | 217 | <field rel="ManyToOneRel" to="orm.release" name="release">3</field> |
186 | <field type="CharField" name="branch">master</field> | 218 | <field type="CharField" name="branch">master</field> |
187 | <field type="CharField" name="dirpath">meta-poky</field> | 219 | <field type="CharField" name="dirpath">meta-poky</field> |
188 | </object> | 220 | </object> |
189 | <object model="orm.layer_version" pk="8"> | 221 | <object model="orm.layer_version" pk="9"> |
190 | <field rel="ManyToOneRel" to="orm.layer" name="layer">2</field> | 222 | <field rel="ManyToOneRel" to="orm.layer" name="layer">2</field> |
191 | <field type="IntegerField" name="layer_source">0</field> | 223 | <field type="IntegerField" name="layer_source">0</field> |
192 | <field rel="ManyToOneRel" to="orm.release" name="release">4</field> | 224 | <field rel="ManyToOneRel" to="orm.release" name="release">4</field> |
193 | <field type="CharField" name="branch">gatesgarth</field> | 225 | <field type="CharField" name="branch">mickledore</field> |
226 | <field type="CharField" name="dirpath">meta-poky</field> | ||
227 | </object> | ||
228 | <object model="orm.layer_version" pk="10"> | ||
229 | <field rel="ManyToOneRel" to="orm.layer" name="layer">2</field> | ||
230 | <field type="IntegerField" name="layer_source">0</field> | ||
231 | <field rel="ManyToOneRel" to="orm.release" name="release">5</field> | ||
232 | <field type="CharField" name="branch">dunfell</field> | ||
194 | <field type="CharField" name="dirpath">meta-poky</field> | 233 | <field type="CharField" name="dirpath">meta-poky</field> |
195 | </object> | 234 | </object> |
196 | 235 | ||
@@ -198,18 +237,18 @@ | |||
198 | <field type="CharField" name="name">meta-yocto-bsp</field> | 237 | <field type="CharField" name="name">meta-yocto-bsp</field> |
199 | <field type="CharField" name="layer_index_url"></field> | 238 | <field type="CharField" name="layer_index_url"></field> |
200 | <field type="CharField" name="vcs_url">git://git.yoctoproject.org/poky</field> | 239 | <field type="CharField" name="vcs_url">git://git.yoctoproject.org/poky</field> |
201 | <field type="CharField" name="vcs_web_url">http://git.yoctoproject.org/cgit/cgit.cgi/poky</field> | 240 | <field type="CharField" name="vcs_web_url">https://git.yoctoproject.org/cgit/cgit.cgi/poky</field> |
202 | <field type="CharField" name="vcs_web_tree_base_url">http://git.yoctoproject.org/cgit/cgit.cgi/poky/tree/%path%?h=%branch%</field> | 241 | <field type="CharField" name="vcs_web_tree_base_url">https://git.yoctoproject.org/cgit/cgit.cgi/poky/tree/%path%?h=%branch%</field> |
203 | <field type="CharField" name="vcs_web_file_base_url">http://git.yoctoproject.org/cgit/cgit.cgi/poky/tree/%path%?h=%branch%</field> | 242 | <field type="CharField" name="vcs_web_file_base_url">https://git.yoctoproject.org/cgit/cgit.cgi/poky/tree/%path%?h=%branch%</field> |
204 | </object> | 243 | </object> |
205 | <object model="orm.layer_version" pk="9"> | 244 | <object model="orm.layer_version" pk="11"> |
206 | <field rel="ManyToOneRel" to="orm.layer" name="layer">3</field> | 245 | <field rel="ManyToOneRel" to="orm.layer" name="layer">3</field> |
207 | <field type="IntegerField" name="layer_source">0</field> | 246 | <field type="IntegerField" name="layer_source">0</field> |
208 | <field rel="ManyToOneRel" to="orm.release" name="release">1</field> | 247 | <field rel="ManyToOneRel" to="orm.release" name="release">1</field> |
209 | <field type="CharField" name="branch">dunfell</field> | 248 | <field type="CharField" name="branch">kirkstone</field> |
210 | <field type="CharField" name="dirpath">meta-yocto-bsp</field> | 249 | <field type="CharField" name="dirpath">meta-yocto-bsp</field> |
211 | </object> | 250 | </object> |
212 | <object model="orm.layer_version" pk="10"> | 251 | <object model="orm.layer_version" pk="12"> |
213 | <field rel="ManyToOneRel" to="orm.layer" name="layer">3</field> | 252 | <field rel="ManyToOneRel" to="orm.layer" name="layer">3</field> |
214 | <field type="IntegerField" name="layer_source">0</field> | 253 | <field type="IntegerField" name="layer_source">0</field> |
215 | <field rel="ManyToOneRel" to="orm.release" name="release">2</field> | 254 | <field rel="ManyToOneRel" to="orm.release" name="release">2</field> |
@@ -217,18 +256,25 @@ | |||
217 | <field type="CharField" name="commit">HEAD</field> | 256 | <field type="CharField" name="commit">HEAD</field> |
218 | <field type="CharField" name="dirpath">meta-yocto-bsp</field> | 257 | <field type="CharField" name="dirpath">meta-yocto-bsp</field> |
219 | </object> | 258 | </object> |
220 | <object model="orm.layer_version" pk="11"> | 259 | <object model="orm.layer_version" pk="13"> |
221 | <field rel="ManyToOneRel" to="orm.layer" name="layer">3</field> | 260 | <field rel="ManyToOneRel" to="orm.layer" name="layer">3</field> |
222 | <field type="IntegerField" name="layer_source">0</field> | 261 | <field type="IntegerField" name="layer_source">0</field> |
223 | <field rel="ManyToOneRel" to="orm.release" name="release">3</field> | 262 | <field rel="ManyToOneRel" to="orm.release" name="release">3</field> |
224 | <field type="CharField" name="branch">master</field> | 263 | <field type="CharField" name="branch">master</field> |
225 | <field type="CharField" name="dirpath">meta-yocto-bsp</field> | 264 | <field type="CharField" name="dirpath">meta-yocto-bsp</field> |
226 | </object> | 265 | </object> |
227 | <object model="orm.layer_version" pk="12"> | 266 | <object model="orm.layer_version" pk="14"> |
228 | <field rel="ManyToOneRel" to="orm.layer" name="layer">3</field> | 267 | <field rel="ManyToOneRel" to="orm.layer" name="layer">3</field> |
229 | <field type="IntegerField" name="layer_source">0</field> | 268 | <field type="IntegerField" name="layer_source">0</field> |
230 | <field rel="ManyToOneRel" to="orm.release" name="release">4</field> | 269 | <field rel="ManyToOneRel" to="orm.release" name="release">4</field> |
231 | <field type="CharField" name="branch">gatesgarth</field> | 270 | <field type="CharField" name="branch">mickledore</field> |
271 | <field type="CharField" name="dirpath">meta-yocto-bsp</field> | ||
272 | </object> | ||
273 | <object model="orm.layer_version" pk="15"> | ||
274 | <field rel="ManyToOneRel" to="orm.layer" name="layer">3</field> | ||
275 | <field type="IntegerField" name="layer_source">0</field> | ||
276 | <field rel="ManyToOneRel" to="orm.release" name="release">5</field> | ||
277 | <field type="CharField" name="branch">dunfell</field> | ||
232 | <field type="CharField" name="dirpath">meta-yocto-bsp</field> | 278 | <field type="CharField" name="dirpath">meta-yocto-bsp</field> |
233 | </object> | 279 | </object> |
234 | </django-objects> | 280 | </django-objects> |
diff --git a/bitbake/lib/toaster/orm/fixtures/settings.xml b/bitbake/lib/toaster/orm/fixtures/settings.xml index 78c0fdca7f..02c26a6974 100644 --- a/bitbake/lib/toaster/orm/fixtures/settings.xml +++ b/bitbake/lib/toaster/orm/fixtures/settings.xml | |||
@@ -12,14 +12,14 @@ | |||
12 | </object> | 12 | </object> |
13 | <object model="orm.toastersetting" pk="4"> | 13 | <object model="orm.toastersetting" pk="4"> |
14 | <field type="CharField" name="name">DEFCONF_MACHINE</field> | 14 | <field type="CharField" name="name">DEFCONF_MACHINE</field> |
15 | <field type="CharField" name="value">qemux86</field> | 15 | <field type="CharField" name="value">qemux86-64</field> |
16 | </object> | 16 | </object> |
17 | <object model="orm.toastersetting" pk="5"> | 17 | <object model="orm.toastersetting" pk="5"> |
18 | <field type="CharField" name="name">DEFCONF_SSTATE_DIR</field> | 18 | <field type="CharField" name="name">DEFCONF_SSTATE_DIR</field> |
19 | <field type="CharField" name="value">${TOPDIR}/../sstate-cache</field> | 19 | <field type="CharField" name="value">${TOPDIR}/../sstate-cache</field> |
20 | </object> | 20 | </object> |
21 | <object model="orm.toastersetting" pk="6"> | 21 | <object model="orm.toastersetting" pk="6"> |
22 | <field type="CharField" name="name">DEFCONF_IMAGE_INSTALL_append</field> | 22 | <field type="CharField" name="name">DEFCONF_IMAGE_INSTALL:append</field> |
23 | <field type="CharField" name="value"></field> | 23 | <field type="CharField" name="value"></field> |
24 | </object> | 24 | </object> |
25 | <object model="orm.toastersetting" pk="7"> | 25 | <object model="orm.toastersetting" pk="7"> |
diff --git a/bitbake/lib/toaster/orm/management/commands/lsupdates.py b/bitbake/lib/toaster/orm/management/commands/lsupdates.py index 2fbd7be3d2..6d64830ebd 100644 --- a/bitbake/lib/toaster/orm/management/commands/lsupdates.py +++ b/bitbake/lib/toaster/orm/management/commands/lsupdates.py | |||
@@ -21,7 +21,7 @@ import threading | |||
21 | import time | 21 | import time |
22 | logger = logging.getLogger("toaster") | 22 | logger = logging.getLogger("toaster") |
23 | 23 | ||
24 | DEFAULT_LAYERINDEX_SERVER = "http://layers.openembedded.org/layerindex/api/" | 24 | DEFAULT_LAYERINDEX_SERVER = "https://layers.openembedded.org/layerindex/api/" |
25 | 25 | ||
26 | # Add path to bitbake modules for layerindexlib | 26 | # Add path to bitbake modules for layerindexlib |
27 | # lib/toaster/orm/management/commands/lsupdates.py (abspath) | 27 | # lib/toaster/orm/management/commands/lsupdates.py (abspath) |
@@ -40,7 +40,7 @@ class Spinner(threading.Thread): | |||
40 | """ A simple progress spinner to indicate download/parsing is happening""" | 40 | """ A simple progress spinner to indicate download/parsing is happening""" |
41 | def __init__(self, *args, **kwargs): | 41 | def __init__(self, *args, **kwargs): |
42 | super(Spinner, self).__init__(*args, **kwargs) | 42 | super(Spinner, self).__init__(*args, **kwargs) |
43 | self.setDaemon(True) | 43 | self.daemon = True |
44 | self.signal = True | 44 | self.signal = True |
45 | 45 | ||
46 | def run(self): | 46 | def run(self): |
@@ -87,13 +87,13 @@ class Command(BaseCommand): | |||
87 | 87 | ||
88 | # update branches; only those that we already have names listed in the | 88 | # update branches; only those that we already have names listed in the |
89 | # Releases table | 89 | # Releases table |
90 | whitelist_branch_names = [rel.branch_name | 90 | allowed_branch_names = [rel.branch_name |
91 | for rel in Release.objects.all()] | 91 | for rel in Release.objects.all()] |
92 | if len(whitelist_branch_names) == 0: | 92 | if len(allowed_branch_names) == 0: |
93 | raise Exception("Failed to make list of branches to fetch") | 93 | raise Exception("Failed to make list of branches to fetch") |
94 | 94 | ||
95 | logger.info("Fetching metadata for %s", | 95 | logger.info("Fetching metadata for %s", |
96 | " ".join(whitelist_branch_names)) | 96 | " ".join(allowed_branch_names)) |
97 | 97 | ||
98 | # We require a non-empty bb.data, but we can fake it with a dictionary | 98 | # We require a non-empty bb.data, but we can fake it with a dictionary |
99 | layerindex = layerindexlib.LayerIndex({"DUMMY" : "VALUE"}) | 99 | layerindex = layerindexlib.LayerIndex({"DUMMY" : "VALUE"}) |
@@ -101,8 +101,8 @@ class Command(BaseCommand): | |||
101 | http_progress = Spinner() | 101 | http_progress = Spinner() |
102 | http_progress.start() | 102 | http_progress.start() |
103 | 103 | ||
104 | if whitelist_branch_names: | 104 | if allowed_branch_names: |
105 | url_branches = ";branch=%s" % ','.join(whitelist_branch_names) | 105 | url_branches = ";branch=%s" % ','.join(allowed_branch_names) |
106 | else: | 106 | else: |
107 | url_branches = "" | 107 | url_branches = "" |
108 | layerindex.load_layerindex("%s%s" % (self.apiurl, url_branches)) | 108 | layerindex.load_layerindex("%s%s" % (self.apiurl, url_branches)) |
diff --git a/bitbake/lib/toaster/orm/migrations/0020_models_bigautofield.py b/bitbake/lib/toaster/orm/migrations/0020_models_bigautofield.py new file mode 100644 index 0000000000..f19b5dddbc --- /dev/null +++ b/bitbake/lib/toaster/orm/migrations/0020_models_bigautofield.py | |||
@@ -0,0 +1,173 @@ | |||
1 | # Generated by Django 3.2.12 on 2022-03-06 03:28 | ||
2 | |||
3 | from django.db import migrations, models | ||
4 | |||
5 | |||
6 | class Migration(migrations.Migration): | ||
7 | |||
8 | dependencies = [ | ||
9 | ('orm', '0019_django_2_2'), | ||
10 | ] | ||
11 | |||
12 | operations = [ | ||
13 | migrations.AlterField( | ||
14 | model_name='bitbakeversion', | ||
15 | name='id', | ||
16 | field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'), | ||
17 | ), | ||
18 | migrations.AlterField( | ||
19 | model_name='build', | ||
20 | name='id', | ||
21 | field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'), | ||
22 | ), | ||
23 | migrations.AlterField( | ||
24 | model_name='distro', | ||
25 | name='id', | ||
26 | field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'), | ||
27 | ), | ||
28 | migrations.AlterField( | ||
29 | model_name='helptext', | ||
30 | name='id', | ||
31 | field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'), | ||
32 | ), | ||
33 | migrations.AlterField( | ||
34 | model_name='layer', | ||
35 | name='id', | ||
36 | field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'), | ||
37 | ), | ||
38 | migrations.AlterField( | ||
39 | model_name='layer_version', | ||
40 | name='id', | ||
41 | field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'), | ||
42 | ), | ||
43 | migrations.AlterField( | ||
44 | model_name='layerversiondependency', | ||
45 | name='id', | ||
46 | field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'), | ||
47 | ), | ||
48 | migrations.AlterField( | ||
49 | model_name='logmessage', | ||
50 | name='id', | ||
51 | field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'), | ||
52 | ), | ||
53 | migrations.AlterField( | ||
54 | model_name='machine', | ||
55 | name='id', | ||
56 | field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'), | ||
57 | ), | ||
58 | migrations.AlterField( | ||
59 | model_name='package', | ||
60 | name='id', | ||
61 | field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'), | ||
62 | ), | ||
63 | migrations.AlterField( | ||
64 | model_name='package_dependency', | ||
65 | name='id', | ||
66 | field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'), | ||
67 | ), | ||
68 | migrations.AlterField( | ||
69 | model_name='package_file', | ||
70 | name='id', | ||
71 | field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'), | ||
72 | ), | ||
73 | migrations.AlterField( | ||
74 | model_name='project', | ||
75 | name='id', | ||
76 | field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'), | ||
77 | ), | ||
78 | migrations.AlterField( | ||
79 | model_name='projectlayer', | ||
80 | name='id', | ||
81 | field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'), | ||
82 | ), | ||
83 | migrations.AlterField( | ||
84 | model_name='projecttarget', | ||
85 | name='id', | ||
86 | field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'), | ||
87 | ), | ||
88 | migrations.AlterField( | ||
89 | model_name='projectvariable', | ||
90 | name='id', | ||
91 | field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'), | ||
92 | ), | ||
93 | migrations.AlterField( | ||
94 | model_name='provides', | ||
95 | name='id', | ||
96 | field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'), | ||
97 | ), | ||
98 | migrations.AlterField( | ||
99 | model_name='recipe', | ||
100 | name='id', | ||
101 | field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'), | ||
102 | ), | ||
103 | migrations.AlterField( | ||
104 | model_name='recipe_dependency', | ||
105 | name='id', | ||
106 | field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'), | ||
107 | ), | ||
108 | migrations.AlterField( | ||
109 | model_name='release', | ||
110 | name='id', | ||
111 | field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'), | ||
112 | ), | ||
113 | migrations.AlterField( | ||
114 | model_name='releasedefaultlayer', | ||
115 | name='id', | ||
116 | field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'), | ||
117 | ), | ||
118 | migrations.AlterField( | ||
119 | model_name='target', | ||
120 | name='id', | ||
121 | field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'), | ||
122 | ), | ||
123 | migrations.AlterField( | ||
124 | model_name='target_file', | ||
125 | name='id', | ||
126 | field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'), | ||
127 | ), | ||
128 | migrations.AlterField( | ||
129 | model_name='target_image_file', | ||
130 | name='id', | ||
131 | field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'), | ||
132 | ), | ||
133 | migrations.AlterField( | ||
134 | model_name='target_installed_package', | ||
135 | name='id', | ||
136 | field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'), | ||
137 | ), | ||
138 | migrations.AlterField( | ||
139 | model_name='targetkernelfile', | ||
140 | name='id', | ||
141 | field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'), | ||
142 | ), | ||
143 | migrations.AlterField( | ||
144 | model_name='targetsdkfile', | ||
145 | name='id', | ||
146 | field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'), | ||
147 | ), | ||
148 | migrations.AlterField( | ||
149 | model_name='task', | ||
150 | name='id', | ||
151 | field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'), | ||
152 | ), | ||
153 | migrations.AlterField( | ||
154 | model_name='task_dependency', | ||
155 | name='id', | ||
156 | field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'), | ||
157 | ), | ||
158 | migrations.AlterField( | ||
159 | model_name='toastersetting', | ||
160 | name='id', | ||
161 | field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'), | ||
162 | ), | ||
163 | migrations.AlterField( | ||
164 | model_name='variable', | ||
165 | name='id', | ||
166 | field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'), | ||
167 | ), | ||
168 | migrations.AlterField( | ||
169 | model_name='variablehistory', | ||
170 | name='id', | ||
171 | field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'), | ||
172 | ), | ||
173 | ] | ||
diff --git a/bitbake/lib/toaster/orm/migrations/0021_eventlogsimports.py b/bitbake/lib/toaster/orm/migrations/0021_eventlogsimports.py new file mode 100644 index 0000000000..328eb5753c --- /dev/null +++ b/bitbake/lib/toaster/orm/migrations/0021_eventlogsimports.py | |||
@@ -0,0 +1,22 @@ | |||
1 | # Generated by Django 4.2.5 on 2023-11-23 18:44 | ||
2 | |||
3 | from django.db import migrations, models | ||
4 | |||
5 | |||
6 | class Migration(migrations.Migration): | ||
7 | |||
8 | dependencies = [ | ||
9 | ('orm', '0020_models_bigautofield'), | ||
10 | ] | ||
11 | |||
12 | operations = [ | ||
13 | migrations.CreateModel( | ||
14 | name='EventLogsImports', | ||
15 | fields=[ | ||
16 | ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), | ||
17 | ('name', models.CharField(max_length=255)), | ||
18 | ('imported', models.BooleanField(default=False)), | ||
19 | ('build_id', models.IntegerField(blank=True, null=True)), | ||
20 | ], | ||
21 | ), | ||
22 | ] | ||
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) |