From: Elliot Smith <elliot.smith@intel.com>
To: toaster@yoctoproject.org
Subject: [review-request][PATCH 1/2] toaster: Manually retrieve log file location from filesystem
Date: Tue, 6 Oct 2015 12:21:10 +0100 [thread overview]
Message-ID: <1444130481-25705-2-git-send-email-elliot.smith@intel.com> (raw)
In-Reply-To: <1444130481-25705-1-git-send-email-elliot.smith@intel.com>
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]
Signed-off-by: Elliot Smith <elliot.smith@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 dbe0d09..e3d3b8f 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.
next prev parent reply other threads:[~2015-10-06 11:21 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-10-06 11:21 [review-request][PATCH 00/10][v2] Implement UI changes for "command line builds" project Elliot Smith
2015-10-06 11:21 ` Elliot Smith [this message]
2015-10-06 11:21 ` [review-request][PATCH 01/10] toaster: Reorganise and lint tests Elliot Smith
2015-10-06 11:21 ` [review-request][PATCH 2/2] toaster: Hide "Download build log" button if log doesn't exist Elliot Smith
2015-10-06 11:21 ` [review-request][PATCH 02/10] toaster: Replace "Run again" button with help text for cli builds Elliot Smith
2015-10-06 11:21 ` [review-request][PATCH 03/10] toaster: Show 'not applicable' for default project machine and release Elliot Smith
2015-10-06 11:21 ` [review-request][PATCH 04/10] toaster: Make the builds view the project page for "command line builds" Elliot Smith
2015-10-06 11:21 ` [review-request][PATCH 05/10] toaster: Hide tabs and add info popups for command line builds Elliot Smith
2015-10-06 11:21 ` [review-request][PATCH 06/10] toaster: Show tooltip next to cli builds project name in all builds Elliot Smith
2015-10-06 11:21 ` [review-request][PATCH 07/10] toaster: More linting of tests Elliot Smith
2015-10-06 11:21 ` [review-request][PATCH 08/10] toaster: Clean up template code Elliot Smith
2015-10-06 11:21 ` [review-request][PATCH 09/10] toaster: Exclude "command line builds" project from projects typeahead Elliot Smith
2015-10-06 11:21 ` [review-request][PATCH 10/10] toaster: Modify "New build" button behaviour for cli builds project Elliot Smith
2015-10-06 13:01 ` [review-request][PATCH 00/10][v2] Implement UI changes for "command line builds" project Barros Pena, Belen
2015-10-07 13:27 ` Ed Bartosh
-- strict thread matches above, loose matches on Subject: below --
2015-10-05 13:39 [review-request][PATCH 0/2][v2] Fix cooker log download button Elliot Smith
2015-10-05 13:39 ` [review-request][PATCH 1/2] toaster: Manually retrieve log file location from filesystem Elliot Smith
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1444130481-25705-2-git-send-email-elliot.smith@intel.com \
--to=elliot.smith@intel.com \
--cc=toaster@yoctoproject.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.