]> code.ossystems Code Review - openembedded-core.git/commitdiff
lib/oe/rootfs: tidy up log warning reporting
authorPaul Eggleton <paul.eggleton@linux.intel.com>
Mon, 8 Jun 2015 10:10:37 +0000 (11:10 +0100)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Thu, 11 Jun 2015 22:55:36 +0000 (23:55 +0100)
* bb.warn() should only be called once per warning - UIs such as Toaster
  assume that this is the case, so adjust the output accordingly. (It's
  tricky here because we have to include "log_check" on every line or
  we'll end up looping forever as the log checking code's own messages
  retrigger the log check, sigh...)
* Iterating over a file already splits by line, there's no need to do it
  manually.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
meta/lib/oe/rootfs.py

index 5f1f7b3e5d2cfe9c680d292dda53c9832133916c..48e5754b2759e7d1d5713c63497eb735a9fa0174 100644 (file)
@@ -44,15 +44,14 @@ class Rootfs(object):
         r = re.compile('^(warn|Warn|NOTE: warn|NOTE: Warn|WARNING:)')
         log_path = self.d.expand("${T}/log.do_rootfs")
         with open(log_path, 'r') as log:
-            for line in log.read().split('\n'):
+            for line in log:
                 if 'log_check' in line or 'NOTE:' in line:
                     continue
 
                 m = r.search(line)
                 if m:
-                    bb.warn('log_check: There is a warn message in the logfile')
-                    bb.warn('log_check: Matched keyword: [%s]' % m.group())
-                    bb.warn('log_check: %s\n' % line)
+                    bb.warn('[log_check] %s: found a warning message in the logfile (keyword \'%s\'):\n[log_check] %s'
+                                   % (self.d.getVar('PN', True), m.group(), line))
 
     def _log_check_error(self):
         r = re.compile(self.log_check_regex)
@@ -60,15 +59,15 @@ class Rootfs(object):
         with open(log_path, 'r') as log:
             found_error = 0
             message = "\n"
-            for line in log.read().split('\n'):
+            for line in log:
                 if 'log_check' in line:
                     continue
 
                 m = r.search(line)
                 if m:
                     found_error = 1
-                    bb.warn('log_check: There were error messages in the logfile')
-                    bb.warn('log_check: Matched keyword: [%s]\n\n' % m.group())
+                    bb.warn('[log_check] %s: found an error message in the logfile (keyword \'%s\'):\n[log_check] %s'
+                                   % (self.d.getVar('PN', True), m.group(), line))
 
                 if found_error >= 1 and found_error <= 5:
                     message += line + '\n'