diff --git a/elastic_recheck/bot.py b/elastic_recheck/bot.py index da03463f..3e14621f 100755 --- a/elastic_recheck/bot.py +++ b/elastic_recheck/bot.py @@ -115,13 +115,19 @@ class RecheckWatch(threading.Thread): LPCACHEDIR) def new_error(self, channel, event): - msg = '%s change: %s failed with an unrecognized error' % ( - event.project, event.url) + msg = ('%s change: %s failed %s in the %s queue with an unrecognized ' + 'error' % (event.project, + event.url, + ', '.join(event.failed_jobs), + event.queue())) self.print_msg(channel, msg) def error_found(self, channel, event): - msg = ('%s change: %s failed tempest because of: %s' % ( - event.project, event.url, event.bug_urls())) + msg = ('%s change: %s failed %s because of: %s' % ( + event.project, + event.url, + ", ".join(event.failed_jobs), + event.bug_urls())) display = False for project in self._get_bug_projects(event.bugs): if channel in self.channel_config.projects['all']: diff --git a/elastic_recheck/elasticRecheck.py b/elastic_recheck/elasticRecheck.py index 4e4f28ee..8d3941d3 100755 --- a/elastic_recheck/elasticRecheck.py +++ b/elastic_recheck/elasticRecheck.py @@ -76,13 +76,16 @@ class FailEvent(object): bugs = set([]) short_build_uuids = [] comment = None + failed_jobs = {} - def __init__(self, event): + def __init__(self, event, failed_jobs): self.change = event['change']['number'] self.rev = event['patchSet']['number'] self.project = event['change']['project'] self.url = event['change']['url'] self.comment = event["comment"] + #TODO(jogo) make FailEvent generate the jobs + self.failed_jobs = failed_jobs self.bugs = set([]) def is_openstack_project(self): @@ -95,6 +98,13 @@ class FailEvent(object): urls = ['https://bugs.launchpad.net/bugs/%s' % x for x in self.bugs] return ' and '.join(urls) + def queue(self): + # Assume one queue per gerrit event + if len(self.failed_jobs) == 0: + return None + return self.failed_jobs[ + self.failed_jobs.keys()[0]]['url'].split('/')[6] + class Stream(object): """Gerrit Stream. @@ -234,7 +244,7 @@ class Stream(object): # nothing to see here, lets try the next event continue - fevent = FailEvent(event) + fevent = FailEvent(event, failed_jobs) # bail if it's not an openstack project if not fevent.is_openstack_project():