public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Magnus Granberg" <zorry@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] proj/tinderbox-cluster:master commit in: buildbot_gentoo_ci/steps/
Date: Fri,  2 Apr 2021 22:12:27 +0000 (UTC)	[thread overview]
Message-ID: <1617401349.1560eecc8a0c32e219acfeda461dd6cb2d015f30.zorry@gentoo> (raw)

commit:     1560eecc8a0c32e219acfeda461dd6cb2d015f30
Author:     Magnus Granberg <zorry <AT> gentoo <DOT> org>
AuthorDate: Fri Apr  2 22:09:09 2021 +0000
Commit:     Magnus Granberg <zorry <AT> gentoo <DOT> org>
CommitDate: Fri Apr  2 22:09:09 2021 +0000
URL:        https://gitweb.gentoo.org/proj/tinderbox-cluster.git/commit/?id=1560eecc

Check '>>>' add pattern type

Signed-off-by: Magnus Granberg <zorry <AT> gentoo.org>

 buildbot_gentoo_ci/steps/logs.py | 30 ++++++++++++++++++++++--------
 1 file changed, 22 insertions(+), 8 deletions(-)

diff --git a/buildbot_gentoo_ci/steps/logs.py b/buildbot_gentoo_ci/steps/logs.py
index ae41fe5..5fe248f 100644
--- a/buildbot_gentoo_ci/steps/logs.py
+++ b/buildbot_gentoo_ci/steps/logs.py
@@ -62,7 +62,7 @@ class ParserBuildLog(BuildStep):
 
     @defer.inlineCallbacks
     def get_log_search_pattern(self):
-        # get pattern from the profile
+        # get pattern from the projects
         # add that to log_search_pattern_list
         for project_pattern in (yield self.gentooci.db.projects.getProjectLogSearchPatternByUuid(self.getProperty('project_data')['uuid'])):
             self.log_search_pattern_list.append(project_pattern)
@@ -82,13 +82,21 @@ class ParserBuildLog(BuildStep):
         text_line = self.logfile_text_dict[tmp_index]
         # loop true the pattern list for match
         for search_pattern in self.log_search_pattern_list:
-            if re.search(search_pattern['search'], text_line) and not search_pattern['status'] == 'ignore':
+            # we add all line that start with ' * ' as info
+            # we add all line that start with '>>>' but not '>>> /' as info
+            if text_line.startswith(' * ') or (text_line.startswith('>>>') and not text_line.startswith('>>> /')):
                 self.summery_dict[tmp_index] = {}
                 self.summery_dict[tmp_index]['text'] = text_line
+                self.summery_dict[tmp_index]['type'] = 'info'
+                self.summery_dict[tmp_index]['status'] = 'info'
+            if re.search(search_pattern['search'], text_line):
+                self.summery_dict[tmp_index] = {}
+                self.summery_dict[tmp_index]['text'] = text_line
+                self.summery_dict[tmp_index]['type'] = search_pattern['type']
                 self.summery_dict[tmp_index]['status'] = search_pattern['status']
                 # add upper text lines if requested
                 # max 10
-                if search_pattern['start'] is not 0:
+                if search_pattern['start'] != 0:
                     i = tmp_index
                     i_start = i - search_pattern['start']
                     match = True
@@ -99,10 +107,11 @@ class ParserBuildLog(BuildStep):
                         else:
                             self.summery_dict[i] = {}
                             self.summery_dict[i]['text'] = self.logfile_text_dict[i]
+                            self.summery_dict[i]['type'] = search_pattern['type']
                             self.summery_dict[i]['status'] = 'info'
                 # add lower text lines if requested
                 # max 10
-                if search_pattern['end'] is not 0:
+                if search_pattern['end'] != 0:
                     i = tmp_index
                     i_end = i + search_pattern['end']
                     match = True
@@ -113,6 +122,7 @@ class ParserBuildLog(BuildStep):
                         else:
                             self.summery_dict[i] = {}
                             self.summery_dict[i]['text'] = self.logfile_text_dict[i]
+                            self.summery_dict[i]['type'] = search_pattern['type']
                             self.summery_dict[i]['status'] = 'info'
                 # add text lines if requested that we need to search for the end
                 # max 10
@@ -127,13 +137,15 @@ class ParserBuildLog(BuildStep):
                             if not i + 1 > self.max_text_lines or not re.search(search_pattern['search_end'], self.logfile_text_dict[i + 1]):
                                 self.summery_dict[i] = {}
                                 self.summery_dict[i]['text'] = self.logfile_text_dict[i]
+                                self.summery_dict[i]['type'] = search_pattern['type']
                                 self.summery_dict[i]['status'] = 'info'
                             else:
                                 match = False
                         else:
                             self.summery_dict[i] = {}
                             self.summery_dict[i]['text'] = self.logfile_text_dict[i]
-                            self.summery_dict[i]['status'] = 'info' 
+                            self.summery_dict[i]['type'] = search_pattern['type']
+                            self.summery_dict[i]['status'] = 'info'
 
     @defer.inlineCallbacks
     def run(self):
@@ -148,9 +160,9 @@ class ParserBuildLog(BuildStep):
         file_path = yield os.path.join(self.master.basedir, 'cpv_logs', self.getProperty('log_build_data')['full_logname'])
         with io.TextIOWrapper(io.BufferedReader(gzip.open(file_path, 'rb'))) as f:
             for text_line in f:
-                self.logfile_text_dict[self.index] = text_line
+                self.logfile_text_dict[self.index] = text_line.strip('\n')
                 # run the parse patten on the line
-                # have a buffer on 5 before we run pattern check
+                # have a buffer on 10 before we run pattern check
                 if self.index >= 10:
                     yield self.search_buildlog(self.index - 9)
                 # remove text line that we don't need any more
@@ -158,8 +170,10 @@ class ParserBuildLog(BuildStep):
                     del self.logfile_text_dict[self.index - 19]
                 self.index = self.index + 1
             f.close()
+        # check last 10 lines in logfile_text_dict
+        yield self.search_buildlog(self.index - 10)
         print(self.summery_dict)
-        # check last 5 lines in logfile_text_dict
+        # remove all lines with ignore in the dict
         # setProperty summery_dict
         self.setProperty("summery_log_dict", self.summery_dict, 'summery_log_dict')
         return SUCCESS


             reply	other threads:[~2021-04-02 22:12 UTC|newest]

Thread overview: 72+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-04-02 22:12 Magnus Granberg [this message]
  -- strict thread matches above, loose matches on Subject: below --
2024-10-16 20:50 [gentoo-commits] proj/tinderbox-cluster:master commit in: buildbot_gentoo_ci/steps/ Magnus Granberg
2024-03-31 19:40 Magnus Granberg
2024-03-31 19:40 Magnus Granberg
2024-03-23 14:13 Magnus Granberg
2024-03-21 16:56 Magnus Granberg
2024-03-19 17:19 Magnus Granberg
2024-03-17 20:40 Magnus Granberg
2024-03-16  8:49 Magnus Granberg
2024-02-05 18:54 Magnus Granberg
2024-02-04 11:32 Magnus Granberg
2024-02-04  9:49 Magnus Granberg
2024-02-03 10:02 Magnus Granberg
2023-07-26  9:23 Magnus Granberg
2023-06-10 10:08 Magnus Granberg
2023-06-05  8:09 Magnus Granberg
2023-06-05  8:09 Magnus Granberg
2023-05-08 20:19 Magnus Granberg
2023-03-10 22:36 Magnus Granberg
2023-03-10 22:36 Magnus Granberg
2023-03-10  1:47 Magnus Granberg
2023-02-28 21:41 Magnus Granberg
2023-02-28 21:41 Magnus Granberg
2022-09-25 11:46 Magnus Granberg
2022-08-10 21:51 Magnus Granberg
2022-08-05 18:32 Magnus Granberg
2022-07-30 22:40 Magnus Granberg
2022-07-27 11:02 Magnus Granberg
2022-07-27 11:02 Magnus Granberg
2022-07-27 11:02 Magnus Granberg
2022-07-27 11:02 Magnus Granberg
2022-07-26 11:54 Magnus Granberg
2022-07-13 20:01 Magnus Granberg
2022-07-08 21:54 Magnus Granberg
2022-07-06 18:44 Magnus Granberg
2022-07-04 17:44 Magnus Granberg
2022-06-28 23:26 Magnus Granberg
2022-06-01  0:19 Magnus Granberg
2022-04-22 12:34 Magnus Granberg
2022-01-28 10:09 Magnus Granberg
2022-01-24  8:41 Magnus Granberg
2022-01-24  0:42 Magnus Granberg
2022-01-22 20:50 Magnus Granberg
2022-01-18 20:20 Magnus Granberg
2022-01-18 19:38 Magnus Granberg
2022-01-18 19:16 Magnus Granberg
2022-01-08 17:25 Magnus Granberg
2021-11-01  2:22 Magnus Granberg
2021-10-23 22:26 Magnus Granberg
2021-10-23 22:24 Magnus Granberg
2021-10-06  1:35 Magnus Granberg
2021-10-02 20:52 Magnus Granberg
2021-09-28 22:16 Magnus Granberg
2021-09-22  0:04 Magnus Granberg
2021-09-21  1:29 Magnus Granberg
2021-09-20 23:28 Magnus Granberg
2021-09-07  0:46 Magnus Granberg
2021-07-17  8:14 Magnus Granberg
2021-05-18  8:55 Magnus Granberg
2021-04-26 20:26 Magnus Granberg
2021-04-20  7:05 Magnus Granberg
2021-04-13 19:03 Magnus Granberg
2021-04-02 22:12 Magnus Granberg
2021-04-02 22:12 Magnus Granberg
2021-04-02 22:12 Magnus Granberg
2021-03-29  0:34 Magnus Granberg
2021-03-29  0:34 Magnus Granberg
2021-03-20 13:42 Magnus Granberg
2021-03-20 13:42 Magnus Granberg
2021-03-20 13:42 Magnus Granberg
2021-02-28 18:48 Magnus Granberg
2021-02-24 21:27 Magnus Granberg

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=1617401349.1560eecc8a0c32e219acfeda461dd6cb2d015f30.zorry@gentoo \
    --to=zorry@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox