summaryrefslogtreecommitdiffstats
path: root/bitbake
diff options
context:
space:
mode:
authorAlexandru DAMIAN <alexandru.damian@intel.com>2014-10-31 19:17:01 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2014-11-06 16:45:23 +0000
commitfc75011506c2109bb060c4d0c30266603a39ac6d (patch)
tree8b1f5dc6d8116f04475f24ae935394fd3498dc3f /bitbake
parent7105d44d87783e4d54859d212cd6746cda49ab1d (diff)
downloadpoky-fc75011506c2109bb060c4d0c30266603a39ac6d.tar.gz
bitbake: toasterui: improvements in data reading
We add improvements in data reading, following issues discovered in testing. - elapsed_time is now read from buildstats - we add safeguards to not fail logging if the build was triggered with a toaster_brbe configuration, but it's running in 1.6 mode - added log markups for build finish to let other programs known when the work is done. [YOCTO #6833] [YOCTO #6685] [YOCTO #6887] (Bitbake rev: 0b225035cefee3d3713a93f9a432e5e4d4e174f1) Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake')
-rw-r--r--bitbake/lib/bb/ui/buildinfohelper.py22
-rw-r--r--bitbake/lib/bb/ui/toasterui.py6
2 files changed, 17 insertions, 11 deletions
diff --git a/bitbake/lib/bb/ui/buildinfohelper.py b/bitbake/lib/bb/ui/buildinfohelper.py
index fcef53b63d..b5ae9e97b2 100644
--- a/bitbake/lib/bb/ui/buildinfohelper.py
+++ b/bitbake/lib/bb/ui/buildinfohelper.py
@@ -67,13 +67,15 @@ class ORMWrapper(object):
67 67
68 if brbe is not None: 68 if brbe is not None:
69 from bldcontrol.models import BuildEnvironment, BuildRequest 69 from bldcontrol.models import BuildEnvironment, BuildRequest
70 br, be = brbe.split(":") 70 try:
71 buildrequest = BuildRequest.objects.get(pk = br) 71 br, be = brbe.split(":")
72 buildrequest.build = build 72 buildrequest = BuildRequest.objects.get(pk = br)
73 buildrequest.save() 73 buildrequest.build = build
74 build.project_id = buildrequest.project_id 74 buildrequest.save()
75 build.save() 75 build.project_id = buildrequest.project_id
76 76 build.save()
77 except BuildRequest.DoesNotExist:
78 pass
77 return build 79 return build
78 80
79 def create_target_objects(self, target_info): 81 def create_target_objects(self, target_info):
@@ -146,6 +148,8 @@ class ORMWrapper(object):
146 if 'start_time' in task_information.keys() and 'end_time' in task_information.keys(): 148 if 'start_time' in task_information.keys() and 'end_time' in task_information.keys():
147 duration = task_information['end_time'] - task_information['start_time'] 149 duration = task_information['end_time'] - task_information['start_time']
148 task_object.elapsed_time = duration 150 task_object.elapsed_time = duration
151 del task_information['start_time']
152 del task_information['end_time']
149 153
150 task_object.save() 154 task_object.save()
151 return task_object 155 return task_object
@@ -320,8 +324,7 @@ class ORMWrapper(object):
320 searchname = pkgpnmap[p]['OPKGN'] 324 searchname = pkgpnmap[p]['OPKGN']
321 325
322 packagedict[p]['object'], created = Package.objects.get_or_create( build = build_obj, name = searchname ) 326 packagedict[p]['object'], created = Package.objects.get_or_create( build = build_obj, name = searchname )
323 if created: 327 if True: # save the data anyway we can, not just if it was not created here; bug [YOCTO #6887]
324 # package was not build in the current build, but
325 # fill in everything we can from the runtime-reverse package data 328 # fill in everything we can from the runtime-reverse package data
326 try: 329 try:
327 packagedict[p]['object'].recipe = recipes[pkgpnmap[p]['PN']] 330 packagedict[p]['object'].recipe = recipes[pkgpnmap[p]['PN']]
@@ -717,6 +720,7 @@ class BuildInfoHelper(object):
717 task_information['task_name'] = taskname 720 task_information['task_name'] = taskname
718 task_information['cpu_usage'] = taskstats['cpu_usage'] 721 task_information['cpu_usage'] = taskstats['cpu_usage']
719 task_information['disk_io'] = taskstats['disk_io'] 722 task_information['disk_io'] = taskstats['disk_io']
723 task_information['elapsed_time'] = taskstats['elapsed_time']
720 task_obj = self.orm_wrapper.get_update_task_object(task_information, True) # must exist 724 task_obj = self.orm_wrapper.get_update_task_object(task_information, True) # must exist
721 725
722 def update_and_store_task(self, event): 726 def update_and_store_task(self, event):
diff --git a/bitbake/lib/bb/ui/toasterui.py b/bitbake/lib/bb/ui/toasterui.py
index 0c53843149..007c6b6114 100644
--- a/bitbake/lib/bb/ui/toasterui.py
+++ b/bitbake/lib/bb/ui/toasterui.py
@@ -231,14 +231,16 @@ def main(server, eventHandler, params ):
231 231
232 buildinfohelper.update_build_information(event, errors, warnings, taskfailures) 232 buildinfohelper.update_build_information(event, errors, warnings, taskfailures)
233 buildinfohelper.close(errorcode) 233 buildinfohelper.close(errorcode)
234 # mark the log output; controllers may kill the toasterUI after seeing this log
235 logger.info("ToasterUI build done")
234 236
235 # we start a new build info 237 # we start a new build info
236 if buildinfohelper.brbe is not None: 238 if buildinfohelper.brbe is not None:
237 239
238 print "we are under BuildEnvironment management - after the build, we exit" 240 logger.debug(1, "ToasterUI under BuildEnvironment management - exiting after the build")
239 server.terminateServer() 241 server.terminateServer()
240 else: 242 else:
241 print "prepared for new build" 243 logger.debug(1, "ToasterUI prepared for new build")
242 errors = 0 244 errors = 0
243 warnings = 0 245 warnings = 0
244 taskfailures = [] 246 taskfailures = []