mirror of
git://git.yoctoproject.org/layerindex-web.git
synced 2025-07-19 20:59:01 +02:00
Save recipe source URLs
Save each remote SRC_URI so we can use these for the recipe reporting system. This replaces an earlier implementation in the rrs branch where we simply stored SRC_URI verbatim. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
This commit is contained in:
parent
c183b360ff
commit
ebceecb7fd
|
@ -112,6 +112,9 @@ class DynamicBuildDepAdmin(admin.ModelAdmin):
|
||||||
search_fields = ['name']
|
search_fields = ['name']
|
||||||
filter_horizontal = ('package_configs',)
|
filter_horizontal = ('package_configs',)
|
||||||
|
|
||||||
|
class SourceAdmin(admin.ModelAdmin):
|
||||||
|
pass
|
||||||
|
|
||||||
class ClassicRecipeAdmin(admin.ModelAdmin):
|
class ClassicRecipeAdmin(admin.ModelAdmin):
|
||||||
search_fields = ['filename', 'pn']
|
search_fields = ['filename', 'pn']
|
||||||
list_filter = ['layerbranch__layer__name', 'layerbranch__branch__name']
|
list_filter = ['layerbranch__layer__name', 'layerbranch__branch__name']
|
||||||
|
@ -184,6 +187,7 @@ admin.site.register(LayerUpdate, LayerUpdateAdmin)
|
||||||
admin.site.register(PackageConfig, PackageConfigAdmin)
|
admin.site.register(PackageConfig, PackageConfigAdmin)
|
||||||
admin.site.register(StaticBuildDep, StaticBuildDepAdmin)
|
admin.site.register(StaticBuildDep, StaticBuildDepAdmin)
|
||||||
admin.site.register(DynamicBuildDep, DynamicBuildDepAdmin)
|
admin.site.register(DynamicBuildDep, DynamicBuildDepAdmin)
|
||||||
|
admin.site.register(Source, SourceAdmin)
|
||||||
admin.site.register(Recipe, RecipeAdmin)
|
admin.site.register(Recipe, RecipeAdmin)
|
||||||
admin.site.register(RecipeFileDependency)
|
admin.site.register(RecipeFileDependency)
|
||||||
admin.site.register(Machine, MachineAdmin)
|
admin.site.register(Machine, MachineAdmin)
|
||||||
|
|
22
layerindex/migrations/0011_source.py
Normal file
22
layerindex/migrations/0011_source.py
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('layerindex', '0010_add_dependencies'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.CreateModel(
|
||||||
|
name='Source',
|
||||||
|
fields=[
|
||||||
|
('id', models.AutoField(verbose_name='ID', primary_key=True, serialize=False, auto_created=True)),
|
||||||
|
('url', models.CharField(max_length=255)),
|
||||||
|
('recipe', models.ForeignKey(to='layerindex.Recipe')),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
]
|
|
@ -378,6 +378,13 @@ class Recipe(models.Model):
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return os.path.join(self.filepath, self.filename)
|
return os.path.join(self.filepath, self.filename)
|
||||||
|
|
||||||
|
class Source(models.Model):
|
||||||
|
recipe = models.ForeignKey(Recipe)
|
||||||
|
url = models.CharField(max_length=255)
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
return '%s - %s' % (self.recipe.pn, self.url)
|
||||||
|
|
||||||
class PackageConfig(models.Model):
|
class PackageConfig(models.Model):
|
||||||
recipe = models.ForeignKey(Recipe)
|
recipe = models.ForeignKey(Recipe)
|
||||||
feature = models.CharField(max_length=255)
|
feature = models.CharField(max_length=255)
|
||||||
|
|
|
@ -59,7 +59,7 @@ def update_recipe_file(tinfoil, data, path, recipe, layerdir_start, repodir):
|
||||||
from django.db import DatabaseError
|
from django.db import DatabaseError
|
||||||
|
|
||||||
fn = str(os.path.join(path, recipe.filename))
|
fn = str(os.path.join(path, recipe.filename))
|
||||||
from layerindex.models import PackageConfig, StaticBuildDep, DynamicBuildDep
|
from layerindex.models import PackageConfig, StaticBuildDep, DynamicBuildDep, Source
|
||||||
try:
|
try:
|
||||||
logger.debug('Updating recipe %s' % fn)
|
logger.debug('Updating recipe %s' % fn)
|
||||||
if hasattr(tinfoil, 'parse_recipe_file'):
|
if hasattr(tinfoil, 'parse_recipe_file'):
|
||||||
|
@ -92,6 +92,19 @@ def update_recipe_file(tinfoil, data, path, recipe, layerdir_start, repodir):
|
||||||
static_build_dependency.save()
|
static_build_dependency.save()
|
||||||
static_build_dependency.recipes.add(recipe)
|
static_build_dependency.recipes.add(recipe)
|
||||||
|
|
||||||
|
# Handle sources
|
||||||
|
old_urls = list(recipe.source_set.values_list('url', flat=True))
|
||||||
|
for url in (envdata.getVar('SRC_URI', True) or '').split():
|
||||||
|
if not url.startswith('file://'):
|
||||||
|
url = url.split(';')[0]
|
||||||
|
if url in old_urls:
|
||||||
|
old_urls.remove(url)
|
||||||
|
else:
|
||||||
|
src = Source(recipe=recipe, url=url)
|
||||||
|
src.save()
|
||||||
|
for url in old_urls:
|
||||||
|
recipe.source_set.filter(url=url).delete()
|
||||||
|
|
||||||
# Handle the PACKAGECONFIG variables for this recipe
|
# Handle the PACKAGECONFIG variables for this recipe
|
||||||
PackageConfig.objects.filter(recipe=recipe).delete()
|
PackageConfig.objects.filter(recipe=recipe).delete()
|
||||||
package_config_VarFlags = envdata.getVarFlags("PACKAGECONFIG")
|
package_config_VarFlags = envdata.getVarFlags("PACKAGECONFIG")
|
||||||
|
|
Loading…
Reference in New Issue
Block a user