[Toaster] [review-request][PATCH] toaster: Manually retrieve log file location from filesystem
Barros Pena, Belen
belen.barros.pena at intel.com
Tue Sep 29 05:31:35 PDT 2015
On 28/09/2015 20:24, "toaster-bounces at yoctoproject.org on behalf of Elliot
Smith" <toaster-bounces at yoctoproject.org on behalf of
elliot.smith at intel.com> wrote:
>The log file location reported by the BB_CONSOLELOG variable
>does not point to the log location for the current build at
>the time when the BuildStarted event is fired. It
>actually points to the location where the next build will
>log to. This means that the log file paths associated with
>a build in the cooker_log_path field are incorrect, with
>the result that the "Download build log" button doesn't work.
>
>Instead, when a build starts, get the latest-dated log file
>and associate it with the build.
>
>An issue explaining why this is a problem, plus steps to
>demonstrate it:
>https://bugzilla.yoctoproject.org/show_bug.cgi?id=8411
>
>This patch is a temporary workaround for issue 8411,
>as discussed in
>https://bugzilla.yoctoproject.org/show_bug.cgi?id=8373#c2
>It fixes 8373 for now, but should be properly fixed if
>bitbake can provide the correct log location at the point
>when BuildStarted is fired.
>
>[YOCTO #8373]
This works for me.
Thanks!
Belén
>
>Signed-off-by: Elliot Smith <elliot.smith at intel.com>
>---
> bitbake/lib/bb/ui/toasterui.py | 31 ++++++++++++++++++++++++++++++-
> 1 file changed, 30 insertions(+), 1 deletion(-)
>
>diff --git a/bitbake/lib/bb/ui/toasterui.py
>b/bitbake/lib/bb/ui/toasterui.py
>index e0c278b..be4518c 100644
>--- a/bitbake/lib/bb/ui/toasterui.py
>+++ b/bitbake/lib/bb/ui/toasterui.py
>@@ -33,6 +33,7 @@ from bb.ui.buildinfohelper import BuildInfoHelper
> import bb.msg
> import logging
> import os
>+import glob
>
> # pylint: disable=invalid-name
> # module properties for UI modules are read by bitbake and the contract
>should not be broken
>@@ -61,6 +62,33 @@ def _log_settings_from_server(server):
> raise BaseException(error)
> return includelogs, loglines, consolelogfile
>
>+# TODO this is a work-around for the bug mentioned in
>+# https://bugzilla.yoctoproject.org/show_bug.cgi?id=8373#c2
>+# - the log file location reported by BB_CONSOLELOG at the point
>+# when the BuildStarted event occurs does not correspond to the
>+# actual log file location;
>+# as a work-around, we get the latest-dated log file in the same
>+# directory as is in the path stored in BB_CONSOLELOG
>+#
>+# consolelogfile: log file location reported by BB_CONSOLELOG
>+# at the point when a build starts, which isn't the actual log location;
>+# the assumption is that the real log file will be in the same
>+# directory as the reported log file
>+#
>+# returns the latest-dated *.log file in the same directory
>+# as consolelogfile; if there are no *.log files, this returns
>+# consolelogfile
>+def _get_real_log_file(consolelogfile):
>+ log_file_dir = os.path.dirname(consolelogfile)
>+ log_file_pattern = os.path.join(log_file_dir, "*.log")
>+ log_files = glob.glob(log_file_pattern)
>+ log_files = filter(os.path.isfile, log_files)
>+ log_files.sort(key=os.path.getmtime)
>+
>+ if len(log_files) > 0:
>+ return log_files[-1]
>+ else:
>+ return consolelogfile
>
> def main(server, eventHandler, params ):
> helper = uihelper.BBUIHelper()
>@@ -126,7 +154,8 @@ def main(server, eventHandler, params ):
> # the code will look into the protected variables of the
>event; no easy way around this
>
> if isinstance(event, bb.event.BuildStarted):
>- buildinfohelper.store_started_build(event,
>consolelogfile)
>+ real_consolelogfile = _get_real_log_file(consolelogfile)
>+ buildinfohelper.store_started_build(event,
>real_consolelogfile)
>
> if isinstance(event, (bb.build.TaskStarted,
>bb.build.TaskSucceeded, bb.build.TaskFailedSilent)):
> buildinfohelper.update_and_store_task(event)
>--
>Elliot Smith
>Software Engineer
>Intel OTC
>
>---------------------------------------------------------------------
>Intel Corporation (UK) Limited
>Registered No. 1134945 (England)
>Registered Office: Pipers Way, Swindon SN3 1RJ
>VAT No: 860 2173 47
>
>This e-mail and any attachments may contain confidential material for
>the sole use of the intended recipient(s). Any review or distribution
>by others is strictly prohibited. If you are not the intended
>recipient, please contact the sender and delete all copies.
>
>--
>_______________________________________________
>toaster mailing list
>toaster at yoctoproject.org
>https://lists.yoctoproject.org/listinfo/toaster
More information about the toaster
mailing list