[Toaster] [PATCH] toaster: populate target image file table
Cristiana Voicu
cristiana.voicu at intel.com
Tue Mar 11 07:02:00 PDT 2014
Using ImageFileSize Metadata event, the image output file and its
size are populated into target_image_file table.
[YOCTO #5189 & #5228]
Signed-off-by: Cristiana Voicu <cristiana.voicu at intel.com>
---
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 d7b526a..798edfd 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
from toaster.orm.models import Task_Dependency, Package_Dependency
@@ -237,6 +238,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
@@ -491,6 +497,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 e469d93..04e0f99 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 654864e..76d45c7 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 435bc8e..6f86379 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,
--
1.7.9.5
More information about the toaster
mailing list