summaryrefslogtreecommitdiffstats
path: root/lib/toaster/bldviewer
diff options
context:
space:
mode:
authorAlexandru DAMIAN <alexandru.damian@intel.com>2013-11-26 18:12:43 +0000
committerPaul Eggleton <paul.eggleton@linux.intel.com>2013-12-09 18:58:25 +0000
commitf5d655bfaeb349c8680d74530617e34aa389d1f0 (patch)
tree18be508d3ec3e86b73e8ec35daa80b726d90b55a /lib/toaster/bldviewer
parent4930ff5b471761c2a8d16c1935cdab9cf141d2d8 (diff)
downloadbitbake-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.html6
-rw-r--r--lib/toaster/bldviewer/templates/package.html2
-rw-r--r--lib/toaster/bldviewer/views.py25
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,
}