commit:     db8e966eef3ede0212dcf85d6d5b82c28d3dfcd5
Author:     Magnus Granberg <zorry <AT> gentoo <DOT> org>
AuthorDate: Wed Jul 26 09:21:16 2023 +0000
Commit:     Magnus Granberg <zorry <AT> gentoo <DOT> org>
CommitDate: Wed Jul 26 09:21:16 2023 +0000
URL:        
https://gitweb.gentoo.org/proj/tinderbox-cluster.git/commit/?id=db8e966e

Check issue titel nice

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

 buildbot_gentoo_ci/steps/bugs.py | 13 +++++++++++--
 buildbot_gentoo_ci/steps/logs.py | 31 +++++++++++++++----------------
 2 files changed, 26 insertions(+), 18 deletions(-)

diff --git a/buildbot_gentoo_ci/steps/bugs.py b/buildbot_gentoo_ci/steps/bugs.py
index ad87be9..4d958b7 100644
--- a/buildbot_gentoo_ci/steps/bugs.py
+++ b/buildbot_gentoo_ci/steps/bugs.py
@@ -126,13 +126,22 @@ class GetBugs(BuildStep):
             for match_word in match_search_text:
                 if match_word in match_bug_text:
                     matches = matches + 1
-            print(f"Bug: {str(bug['id'])} Matched words: {str(matches)} 
Summary: {bug['summary']}")
-            if matches >= 5:
+            # try to match the nice words
+            matches_nice = 0
+            match_search_text_nice = 
list(self.getProperty('error_dict')['title_issue_nice'].split())
+            #FIXME: add check for cp
+            for match_word in match_search_text_nice:
+                if match_word in match_bug_text:
+                    matches_nice = matches_nice + 1
+            print(f"Bug: {str(bug['id'])} Matched words: {str(matches)} 
{str(matches_nice)} Summary: {bug['summary']}")
+            #FIXME: set it in bug_config
+            if matches >= 6 or matches_nice >= 6:
                 match = {}
                 match['match'] = True
                 match['id'] = bug['id']
                 match['summary'] = bug['summary']
         yield log.addStdout(f"Line to match: 
{self.getProperty('error_dict')['title_issue']}\n")
+        yield log.addStdout(f"Line to match: 
{self.getProperty('error_dict')['title_issue_nice']}\n")
         if match:
             yield log.addStdout('Match bug: YES\n')
             yield log.addStdout(f"Bug: {str(match['id'])} Summary: 
{match['summary']}\n")

diff --git a/buildbot_gentoo_ci/steps/logs.py b/buildbot_gentoo_ci/steps/logs.py
index 47112e0..d71eb99 100644
--- a/buildbot_gentoo_ci/steps/logs.py
+++ b/buildbot_gentoo_ci/steps/logs.py
@@ -184,18 +184,18 @@ class MakeIssue(BuildStep):
     def __init__(self, **kwargs):
         super().__init__(**kwargs)
 
-    def getNiceErrorLine(self, line):
+    def getNiceErrorLine(self, full_line):
         # strip away hex addresses, loong path names, line and time numbers 
and other stuff
-        # https://github.com/toralf/tinderbox/blob/main/bin/job.sh#L467
+        # https://github.com/toralf/tinderbox/blob/main/bin/job.sh#L469
         # FIXME: Add the needed line when needed
-        if re.search(': line', line):
-            line = re.sub(r"\d", "<snip>", line)
-        # Shorten the path
-        if line.startswith('/usr/'):
-            line = line.replace(os.path.split(line.split(' ', 1)[0])[0], 
'/...')
-        if re.search(': \d:\d: ', line):
-            line = re.sub(r":\d:\d: ", ": ", line)
-        return line
+        new_line = []
+        for line in full_line.split(' '):
+            # Shorten the path
+            if line.startswith('/usr/') or line.startswith('/var/') or 
line.startswith('../'):
+                split_path_line = os.path.split(line)
+                line = line.replace(split_path_line[0], '...')
+            new_line.append(line)
+        return ' '.join(new_line)
 
     def ClassifyIssue(self):
         # get the title for the issue
@@ -215,11 +215,12 @@ class MakeIssue(BuildStep):
             self.error_dict['title_found'] = True
         else:
             self.error_dict['title_issue'] = 'title_issue : None'
-            self.error_dict['title_nice'] = 'title_issue : None'
+            self.error_dict['title_issue_nice'] = 'title_issue_nice : None'
             self.error_dict['title_found'] = False
-        self.error_dict['title_phase'] = 'failed in '+ self.error_dict['phase']
+        self.error_dict['title_phase'] = 'fails to '+ self.error_dict['phase'] 
+ ':'
         #set the error title
-        self.error_dict['title'] = self.error_dict['title_phase'] + ' - ' + 
self.error_dict['title_issue']
+        self.error_dict['title'] = ' '.join([self.error_dict['title_phase'], 
self.error_dict['title_issue']])
+        self.error_dict['title_nice'] = ' 
'.join([self.error_dict['title_phase'], self.error_dict['title_issue_nice']])
 
     @defer.inlineCallbacks
     def run(self):
@@ -249,8 +250,6 @@ class MakeIssue(BuildStep):
             yield self.ClassifyIssue()
             print(self.error_dict)
             self.setProperty("status", 'failed', 'status')
-            #FIXME: nice description for post bug
-            self.error_dict['summary_log_nice'] = ''
             self.setProperty("error_dict", self.error_dict, 'error_dict')
             self.aftersteps_list.append(bugs.GetBugs())
         if warning:
@@ -463,7 +462,7 @@ class SetupBugReportSteps(BuildStep):
             bug_args['user'] = bug_config['user']
             bug_args['passwd'] = yield p.render(util.Secret("bugs_password"))
             bug_params = {}
-            title = separator.join([bug_config['extra_summery'], 
self.getProperty('error_dict')['cpv'], self.getProperty('error_dict')['title']])
+            title = separator.join([bug_config['extra_summery'], 
self.getProperty('error_dict')['cpv'], 
self.getProperty('error_dict')['title_nice']])
             # bug title max 170
             if len(title) >= 170:
                 title = title[:167] + '...'

Reply via email to