From 839f30486e82710b54deaa979bf69390013ec8b6 Mon Sep 17 00:00:00 2001 From: Cristiana Voicu Date: Wed, 12 Mar 2014 18:47:39 +0000 Subject: bitbake: toaster: populate target image file table Using ImageFileSize Metadata event, the image output file and its size are populated into target_image_file table. [YOCTO #5189] [YOCTO #5228] (Bitbake rev: a0b06d362b9aa08fda293489467af343c6ca6de4) Signed-off-by: Cristiana Voicu Signed-off-by: Alexandru DAMIAN Signed-off-by: Richard Purdie --- bitbake/lib/bb/ui/buildinfohelper.py | 13 +++++++++++++ bitbake/lib/bb/ui/toasterui.py | 2 ++ bitbake/lib/toaster/bldviewer/api.py | 1 + bitbake/lib/toaster/bldviewer/views.py | 3 ++- 4 files changed, 18 insertions(+), 1 deletion(-) diff --git a/bitbake/lib/bb/ui/buildinfohelper.py b/bitbake/lib/bb/ui/buildinfohelper.py index f9b067fab9..1b17c1f6e3 100644 --- a/bitbake/lib/bb/ui/buildinfohelper.py +++ b/bitbake/lib/bb/ui/buildinfohelper.py @@ -26,6 +26,7 @@ os.environ.setdefault("DJANGO_SETTINGS_MODULE", "toaster.toastermain.settings") import toaster.toastermain.settings as toaster_django_settings from toaster.orm.models import Build, Task, Recipe, Layer_Version, Layer, Target, LogMessage +from toaster.orm.models import Target_Image_File from toaster.orm.models import Variable, VariableHistory from toaster.orm.models import Package, Package_File, Target_Installed_Package, Target_File from toaster.orm.models import Task_Dependency, Package_Dependency @@ -344,6 +345,11 @@ class ORMWrapper(object): if (len(errormsg) > 0): raise Exception(errormsg) + def save_target_image_file_information(self, target_obj, file_name, file_size): + target_image_file = Target_Image_File.objects.create( target = target_obj, + file_name = file_name, + file_size = file_size) + target_image_file.save() def create_logmessage(self, log_information): assert 'build' in log_information @@ -598,6 +604,13 @@ class BuildInfoHelper(object): # Save build configuration self.orm_wrapper.save_build_variables(build_obj, self.server.runCommand(["getAllKeysWithFlags", ["doc", "func"]])[0]) + def update_target_image_file(self, event): + for t in self.internal_state['targets']: + if t.is_image == True: + output_files = list(event.data.viewkeys()) + for output in output_files: + if t.target in output: + self.orm_wrapper.save_target_image_file_information(t, output, event.data[output]) def update_build_information(self, event, errors, warnings, taskfailures): if 'build' in self.internal_state: diff --git a/bitbake/lib/bb/ui/toasterui.py b/bitbake/lib/bb/ui/toasterui.py index e469d93e82..04e0f99342 100644 --- a/bitbake/lib/bb/ui/toasterui.py +++ b/bitbake/lib/bb/ui/toasterui.py @@ -241,6 +241,8 @@ def main(server, eventHandler, params ): buildinfohelper.store_tasks_stats(event) if event.type == "ImagePkgList": buildinfohelper.store_target_package_data(event) + elif event.type == "ImageFileSize": + buildinfohelper.update_target_image_file(event) continue # ignore diff --git a/bitbake/lib/toaster/bldviewer/api.py b/bitbake/lib/toaster/bldviewer/api.py index 654864e1e8..76d45c7d2c 100644 --- a/bitbake/lib/toaster/bldviewer/api.py +++ b/bitbake/lib/toaster/bldviewer/api.py @@ -25,6 +25,7 @@ from django.conf.urls import patterns, include, url urlpatterns = patterns('bldviewer.views', url(r'^builds$', 'model_explorer', {'model_name':'build'}, name='builds'), url(r'^targets$', 'model_explorer', {'model_name':'target'}, name='targets'), + url(r'^target_image_file$', 'model_explorer', {'model_name':'target_image_file'}, name='target_image_file'), url(r'^tasks$', 'model_explorer', {'model_name':'task'}, name='task'), url(r'^task_dependencies$', 'model_explorer', {'model_name':'task_dependency'}, name='task_dependencies'), url(r'^packages$', 'model_explorer', {'model_name':'package'}, name='package'), diff --git a/bitbake/lib/toaster/bldviewer/views.py b/bitbake/lib/toaster/bldviewer/views.py index 435bc8e6bd..6f863796db 100644 --- a/bitbake/lib/toaster/bldviewer/views.py +++ b/bitbake/lib/toaster/bldviewer/views.py @@ -25,7 +25,7 @@ from django.db.models import Q from django.shortcuts import render from orm.models import Build, Target, Task, Layer, Layer_Version, Recipe, LogMessage, Variable, Target_Installed_Package from orm.models import Task_Dependency, Recipe_Dependency, Package, Package_File, Package_Dependency -from orm.models import Target_Installed_Package, VariableHistory +from orm.models import Target_Installed_Package, VariableHistory, Target_Image_File from django.views.decorators.cache import cache_control from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger @@ -159,6 +159,7 @@ def model_explorer(request, model_name): model_mapping = { 'build': Build, 'target': Target, + 'target_image_file': Target_Image_File, 'task': Task, 'task_dependency': Task_Dependency, 'package': Package, -- cgit v1.2.3-54-g00ecf