| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- class SummaryItem(object):
- def __init__(self, data):
- self.line = data.get('line', None)
- self.repository = data.get('repository', None)
- self.commit_id = data.get('commit', None)
- self.exc = data.get('exc', None)
- self.image_id = data.get('id', None)
- self.source = data.get('source', None)
- self.tag = data.get('tag', None)
- class Summary(object):
- def __init__(self):
- self._summary = {}
- self._has_exc = False
- def _add_data(self, image, linestr, data):
- linestr = linestr.strip('\n')
- parts = linestr.split(':', 1)
- data.tag = parts[0]
- data.source = parts[1]
- if image not in self._summary:
- self._summary[image] = {linestr: data}
- else:
- self._summary[image][linestr] = data
- def add_exception(self, image, line, exc, commit=None):
- lineno, linestr = line
- self._add_data(image, linestr, SummaryItem({
- 'line': lineno,
- 'exc': str(exc),
- 'repository': image,
- 'commit': commit
- }))
- self._has_exc = True
- def add_success(self, image, line, img_id, commit=None):
- lineno, linestr = line
- self._add_data(image, linestr, SummaryItem({
- 'line': lineno,
- 'id': img_id,
- 'repository': image,
- 'commit': commit
- }))
- def print_summary(self, logger=None):
- linesep = ''.center(61, '-') + '\n'
- s = 'BREW BUILD SUMMARY\n' + linesep
- success = 'OVERALL SUCCESS: {}\n'.format(not self._has_exc)
- details = linesep
- for image, lines in self._summary.iteritems():
- details = details + '{}\n{}'.format(image, linesep)
- for linestr, data in lines.iteritems():
- details = details + '{0:2} | {1} | {2:50}\n'.format(
- data.line,
- 'KO' if data.exc else 'OK',
- data.exc or data.image_id
- )
- details = details + linesep
- if logger is not None:
- logger.info(s + success + details)
- else:
- print s, success, details
- def exit_code(self):
- return 1 if self._has_exc else 0
- def items(self):
- for lines in self._summary.itervalues():
- for item in lines.itervalues():
- yield item
|