diff options
author | Chen Qi <Qi.Chen@windriver.com> | 2015-03-19 13:17:52 +0800 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2015-03-22 14:42:16 +0000 |
commit | 86aec93902af2e2d7d73ca9a643707fcca45055c (patch) | |
tree | 0cad2a70cc443f66d4cb7c4e6083b82cb8272376 /meta/lib/oe/rootfs.py | |
parent | f4d90ecf88a0f8b1a4b15665bb4a614dae7b5da1 (diff) | |
download | poky-86aec93902af2e2d7d73ca9a643707fcca45055c.tar.gz |
rootfs.py: add log checking ability for deb and ipk
Extract the common codes of log checking and add the ability of log
checking for deb and ipk package backend.
(From OE-Core rev: d995871b433643958845e1d476813fa12888100e)
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/lib/oe/rootfs.py')
-rw-r--r-- | meta/lib/oe/rootfs.py | 61 |
1 files changed, 44 insertions, 17 deletions
diff --git a/meta/lib/oe/rootfs.py b/meta/lib/oe/rootfs.py index 7e06d5635f..4e4e6ebe39 100644 --- a/meta/lib/oe/rootfs.py +++ b/meta/lib/oe/rootfs.py | |||
@@ -40,6 +40,43 @@ class Rootfs(object): | |||
40 | def _log_check(self): | 40 | def _log_check(self): |
41 | pass | 41 | pass |
42 | 42 | ||
43 | def _log_check_warn(self): | ||
44 | r = re.compile('^(warn|Warn|NOTE: warn|NOTE: Warn|WARNING:)') | ||
45 | log_path = self.d.expand("${T}/log.do_rootfs") | ||
46 | with open(log_path, 'r') as log: | ||
47 | for line in log.read().split('\n'): | ||
48 | if 'log_check' in line or 'NOTE:' in line: | ||
49 | continue | ||
50 | |||
51 | m = r.search(line) | ||
52 | if m: | ||
53 | bb.warn('log_check: There is a warn message in the logfile') | ||
54 | bb.warn('log_check: Matched keyword: [%s]' % m.group()) | ||
55 | bb.warn('log_check: %s\n' % line) | ||
56 | |||
57 | def _log_check_error(self): | ||
58 | r = re.compile(self.log_check_regex) | ||
59 | log_path = self.d.expand("${T}/log.do_rootfs") | ||
60 | with open(log_path, 'r') as log: | ||
61 | found_error = 0 | ||
62 | message = "\n" | ||
63 | for line in log.read().split('\n'): | ||
64 | if 'log_check' in line: | ||
65 | continue | ||
66 | |||
67 | m = r.search(line) | ||
68 | if m: | ||
69 | found_error = 1 | ||
70 | bb.warn('log_check: There were error messages in the logfile') | ||
71 | bb.warn('log_check: Matched keyword: [%s]\n\n' % m.group()) | ||
72 | |||
73 | if found_error >= 1 and found_error <= 5: | ||
74 | message += line + '\n' | ||
75 | found_error += 1 | ||
76 | |||
77 | if found_error == 6: | ||
78 | bb.fatal(message) | ||
79 | |||
43 | def _insert_feed_uris(self): | 80 | def _insert_feed_uris(self): |
44 | if bb.utils.contains("IMAGE_FEATURES", "package-management", | 81 | if bb.utils.contains("IMAGE_FEATURES", "package-management", |
45 | True, False, self.d): | 82 | True, False, self.d): |
@@ -256,7 +293,7 @@ class Rootfs(object): | |||
256 | class RpmRootfs(Rootfs): | 293 | class RpmRootfs(Rootfs): |
257 | def __init__(self, d, manifest_dir): | 294 | def __init__(self, d, manifest_dir): |
258 | super(RpmRootfs, self).__init__(d) | 295 | super(RpmRootfs, self).__init__(d) |
259 | 296 | self.log_check_regex = '(unpacking of archive failed|Cannot find package|exit 1|ERR|Fail)' | |
260 | self.manifest = RpmManifest(d, manifest_dir) | 297 | self.manifest = RpmManifest(d, manifest_dir) |
261 | 298 | ||
262 | self.pm = RpmPM(d, | 299 | self.pm = RpmPM(d, |
@@ -353,20 +390,6 @@ class RpmRootfs(Rootfs): | |||
353 | # already saved in /etc/rpm-postinsts | 390 | # already saved in /etc/rpm-postinsts |
354 | pass | 391 | pass |
355 | 392 | ||
356 | def _log_check_warn(self): | ||
357 | r = re.compile('^(warn|Warn|NOTE: warn|NOTE: Warn|WARNING:)') | ||
358 | log_path = self.d.expand("${T}/log.do_rootfs") | ||
359 | with open(log_path, 'r') as log: | ||
360 | for line in log.read().split('\n'): | ||
361 | if 'log_check' in line or 'NOTE:' in line: | ||
362 | continue | ||
363 | |||
364 | m = r.search(line) | ||
365 | if m: | ||
366 | bb.warn('log_check: There is a warn message in the logfile') | ||
367 | bb.warn('log_check: Matched keyword: [%s]' % m.group()) | ||
368 | bb.warn('log_check: %s\n' % line) | ||
369 | |||
370 | def _log_check_error(self): | 393 | def _log_check_error(self): |
371 | r = re.compile('(unpacking of archive failed|Cannot find package|exit 1|ERR|Fail)') | 394 | r = re.compile('(unpacking of archive failed|Cannot find package|exit 1|ERR|Fail)') |
372 | log_path = self.d.expand("${T}/log.do_rootfs") | 395 | log_path = self.d.expand("${T}/log.do_rootfs") |
@@ -417,6 +440,7 @@ class RpmRootfs(Rootfs): | |||
417 | class DpkgRootfs(Rootfs): | 440 | class DpkgRootfs(Rootfs): |
418 | def __init__(self, d, manifest_dir): | 441 | def __init__(self, d, manifest_dir): |
419 | super(DpkgRootfs, self).__init__(d) | 442 | super(DpkgRootfs, self).__init__(d) |
443 | self.log_check_regex = '^E:' | ||
420 | 444 | ||
421 | bb.utils.remove(self.image_rootfs, True) | 445 | bb.utils.remove(self.image_rootfs, True) |
422 | bb.utils.remove(self.d.getVar('MULTILIB_TEMP_ROOTFS', True), True) | 446 | bb.utils.remove(self.d.getVar('MULTILIB_TEMP_ROOTFS', True), True) |
@@ -488,7 +512,8 @@ class DpkgRootfs(Rootfs): | |||
488 | self.pm.mark_packages("unpacked", registered_pkgs.split()) | 512 | self.pm.mark_packages("unpacked", registered_pkgs.split()) |
489 | 513 | ||
490 | def _log_check(self): | 514 | def _log_check(self): |
491 | pass | 515 | self._log_check_warn() |
516 | self._log_check_error() | ||
492 | 517 | ||
493 | def _cleanup(self): | 518 | def _cleanup(self): |
494 | pass | 519 | pass |
@@ -497,6 +522,7 @@ class DpkgRootfs(Rootfs): | |||
497 | class OpkgRootfs(Rootfs): | 522 | class OpkgRootfs(Rootfs): |
498 | def __init__(self, d, manifest_dir): | 523 | def __init__(self, d, manifest_dir): |
499 | super(OpkgRootfs, self).__init__(d) | 524 | super(OpkgRootfs, self).__init__(d) |
525 | self.log_check_regex = '(exit 1|Collected errors)' | ||
500 | 526 | ||
501 | self.manifest = OpkgManifest(d, manifest_dir) | 527 | self.manifest = OpkgManifest(d, manifest_dir) |
502 | self.opkg_conf = self.d.getVar("IPKGCONF_TARGET", True) | 528 | self.opkg_conf = self.d.getVar("IPKGCONF_TARGET", True) |
@@ -758,7 +784,8 @@ class OpkgRootfs(Rootfs): | |||
758 | self.pm.mark_packages("unpacked", registered_pkgs.split()) | 784 | self.pm.mark_packages("unpacked", registered_pkgs.split()) |
759 | 785 | ||
760 | def _log_check(self): | 786 | def _log_check(self): |
761 | pass | 787 | self._log_check_warn() |
788 | self._log_check_error() | ||
762 | 789 | ||
763 | def _cleanup(self): | 790 | def _cleanup(self): |
764 | pass | 791 | pass |