diff options
author | Alexandru DAMIAN <alexandru.damian@intel.com> | 2013-11-26 18:12:43 +0000 |
---|---|---|
committer | Paul Eggleton <paul.eggleton@linux.intel.com> | 2013-12-09 18:58:25 +0000 |
commit | f5d655bfaeb349c8680d74530617e34aa389d1f0 (patch) | |
tree | 18be508d3ec3e86b73e8ec35daa80b726d90b55a /lib/toaster/bldviewer | |
parent | 4930ff5b471761c2a8d16c1935cdab9cf141d2d8 (diff) | |
download | bitbake-contrib-f5d655bfaeb349c8680d74530617e34aa389d1f0.tar.gz |
toaster: change package storage model
Up until this patch, package information lived in two
places - one table for build packages and one table for
target installed packaged. This situation leads to
two problems: there is no direct link between a build
package and a installed package, and a lot of data is duplicated.
This change unifies all package types in a single table.
The SimpleUI remains the same for continuity sake,
but the REST API will be changed in a future patch.
The package dependencies and package files are now
kept in a single table.
Since we collect target installed package information at all times,
we need to expand it to supplement missing information if a
package is not actually built in the current build.
Small changes to the Simple UI reflect the updated database schema.
[YOCTO #5565]
[YOCTO #5269]
Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com>
Diffstat (limited to 'lib/toaster/bldviewer')
-rw-r--r-- | lib/toaster/bldviewer/templates/bpackage.html | 6 | ||||
-rw-r--r-- | lib/toaster/bldviewer/templates/package.html | 2 | ||||
-rw-r--r-- | lib/toaster/bldviewer/views.py | 25 |
3 files changed, 15 insertions, 18 deletions
diff --git a/lib/toaster/bldviewer/templates/bpackage.html b/lib/toaster/bldviewer/templates/bpackage.html index 4e6d9c677..ca092ca6a 100644 --- a/lib/toaster/bldviewer/templates/bpackage.html +++ b/lib/toaster/bldviewer/templates/bpackage.html @@ -23,7 +23,7 @@ <tr class="data"> <td><a name="#{{package.name}}" href="{% url bfile build.pk package.pk %}">{{package.name}} ({{package.filelist_bpackage.count}} files)</a></td> <td>{{package.version}}-{{package.revision}}</td> - <td><a href="{% url layer_versions_recipes package.recipe.layer_version_id %}#{{package.recipe.name}}">{{package.recipe.name}}</a>{{package.package_name}}</a></td> + <td>{%if package.recipe%}<a href="{% url "layer_versions_recipes" package.recipe.layer_version_id %}#{{package.recipe.name}}">{{package.recipe.name}}</a>{{package.package_name}}</a>{%endif%}</td> <td>{{package.summary}}</td> <td>{{package.section}}</td> @@ -32,8 +32,8 @@ <td>{{package.license}}</td> <td> <div style="height: 3em; overflow:auto"> - {% for bpd in package.bpackage_dependencies_package.all %} - {{bpd.dep_type}}: {{bpd.depends_on}} <br/> + {% for bpd in package.package_dependencies_source.all %} + {{bpd.dep_type}}: {{bpd.depends_on.name}} <br/> {% endfor %} </div> </td> diff --git a/lib/toaster/bldviewer/templates/package.html b/lib/toaster/bldviewer/templates/package.html index c22e988e9..b1246e788 100644 --- a/lib/toaster/bldviewer/templates/package.html +++ b/lib/toaster/bldviewer/templates/package.html @@ -23,7 +23,7 @@ <a href="{% url layer_versions_recipes package.recipe.layer_version_id %}#{{package.recipe.name}}">{{package.recipe.name}}</a>{{package.package_name}}</a>{%endif%}</td> <td> <div style="height: 4em; overflow:auto"> - {% for d in package.tpackage_dependencies_package.all %} + {% for d in package.package_dependencies_source.all %} <a href="#{{d.name}}">{{d.depends_on.name}}</a><br/> {% endfor %} </div> diff --git a/lib/toaster/bldviewer/views.py b/lib/toaster/bldviewer/views.py index 7be4d4b89..3eb785b6c 100644 --- a/lib/toaster/bldviewer/views.py +++ b/lib/toaster/bldviewer/views.py @@ -20,8 +20,9 @@ import operator from django.db.models import Q from django.shortcuts import render -from orm.models import Build, Target, Task, Layer, Layer_Version, Recipe, Target_Package, LogMessage, Variable -from orm.models import Task_Dependency, Recipe_Dependency, Build_Package, Build_File, Build_Package_Dependency +from orm.models import Build, Target, Task, Layer, Layer_Version, Recipe, LogMessage, Variable +from orm.models import Task_Dependency, Recipe_Dependency, Package, Package_File, Package_Dependency +from orm.models import Target_Installed_Package from django.views.decorators.cache import cache_control @cache_control(no_store=True) @@ -78,23 +79,20 @@ def configuration(request, build_id): def bpackage(request, build_id): template = 'bpackage.html' - packages = Build_Package.objects.filter(build = build_id) + packages = Package.objects.filter(build = build_id) context = {'build': Build.objects.filter(pk=build_id)[0], 'packages' : packages} return render(request, template, context) def bfile(request, build_id, package_id): template = 'bfile.html' - files = Build_File.objects.filter(bpackage = package_id) + files = Package_File.objects.filter(package = package_id) context = {'build': Build.objects.filter(pk=build_id)[0], 'files' : files} return render(request, template, context) def tpackage(request, build_id, target_id): template = 'package.html' - - packages = Target_Package.objects.filter(target=target_id) - - context = {'build' : Build.objects.filter(pk=build_id)[0],'packages': packages} - + packages = map(lambda x: x.package, list(Target_Installed_Package.objects.filter(target=target_id))) + context = {'build': Build.objects.filter(pk=build_id)[0], 'packages' : packages} return render(request, template, context) def layer(request): @@ -135,17 +133,16 @@ def model_explorer(request, model_name): model_mapping = { 'build': Build, 'target': Target, - 'target_package': Target_Package, 'task': Task, 'task_dependency': Task_Dependency, - 'package': Build_Package, + 'package': Package, 'layer': Layer, 'layerversion': Layer_Version, 'recipe': Recipe, 'recipe_dependency': Recipe_Dependency, - 'build_package': Build_Package, - 'build_package_dependency': Build_Package_Dependency, - 'build_file': Build_File, + 'package': Package, + 'package_dependency': Package_Dependency, + 'build_file': Package_File, 'variable': Variable, 'logmessage': LogMessage, } |