def get_merge_data(team_name): """Get statistics from merge-o-matic.""" results = { 'local': 0, 'modified': 0, 'needs-merge': 0, 'needs-sync': 0, 'repackaged': 0, 'total': 0, 'unmodified': 0 } metric_url = URL_TEMPLATE.format( launchpad_team_name=util.get_launchpad_team_name(team_name)) response = urllib.request.urlopen(metric_url) data = response.read().decode('utf-8').split('\n') entries = deque(filter(None, data), 4) for entry in entries: values = entry.strip().split(' ')[3:] for value in values: key, value = value.split('=') results[key] = results[key] + int(value) return results
def collect(team_name, dryrun=False): """Submit data to Push Gateway.""" lp_team_name = util.get_launchpad_team_name(team_name) triage = lp.get_team_daily_triage_count(team=lp_team_name, distro='Ubuntu', blacklist=BLACKLIST) backlog = lp.get_team_backlog_count(team=lp_team_name, distro='Ubuntu') print('Backlog Total: %s' % backlog) print('Triage Total: %s' % triage) if not dryrun: print('Pushing data...') registry = CollectorRegistry() Gauge('{}_triage_backlog_total'.format(team_name), 'Bugs in team backlog', None, registry=registry).set(backlog) Gauge('{}_triage_daily_triage_total'.format(team_name), 'Bugs to review daily', None, registry=registry).set(triage) util.push2gateway('%s-triage' % team_name, registry)
def generate_upload_report(date, team_name): """Given a date, get uploads for that day.""" results = {'dev': 0, 'sru': 0} packages = util.get_team_packages(util.get_launchpad_team_name(team_name)) ubuntu = lp.get_ubuntu() devels = ubuntu.getDevelopmentSeries() assert len(devels) == 1 devel = devels[0].name archive = ubuntu.main_archive for package in packages: spphs = archive.getPublishedSources( created_since_date=date, # essential ordering for migration detection order_by_date=True, source_name=package, exact_match=True, ) for spph in spphs: upload = { 'package': spph.source_package_name, 'version': spph.source_package_version, 'series': lp.get_series_name(spph.distro_series_link), 'sponsor': lp.get_person_name(spph.sponsor_link), 'pocket': spph.pocket, } if upload['series'] == devel: if upload['pocket'] == 'Release': # sucessful publish to devel release results['dev'] = results['dev'] + 1 print_result(upload, 'dev') else: if upload['pocket'] == 'Updates': # sucessful SRU migration results['sru'] = results['sru'] + 1 print_result(upload, 'sru') return results
def collect(team_name, dryrun=False): """Submit data to Push Gateway.""" lp_team_name = util.get_launchpad_team_name(team_name) triage = lp.get_team_daily_triage_count(team=lp_team_name, distro='Ubuntu', blacklist=BLACKLIST) backlog = lp.get_team_backlog_count(team=lp_team_name, distro='Ubuntu') print('Backlog Total: %s' % backlog) print('Triage Total: %s' % triage) if not dryrun: print('Pushing data...') data = [{ 'measurement': 'metric_triage', 'fields': { 'backlog': backlog, 'triage': triage, } }] util.influxdb_insert(data)
def get_merge_data(team_name): """Get statistics from merge-o-matic.""" results_by_component = defaultdict(dict) metric_url = URL_TEMPLATE.format( launchpad_team_name=util.get_launchpad_team_name(team_name)) response = urllib.request.urlopen(metric_url) data = response.read().decode('utf-8').split('\n') entries = deque(filter(None, data), 4) for entry in entries: entry_parts = entry.strip().split(' ') component = entry_parts[2] if component != 'main': continue values = entry_parts[3:] for value in values: key, value = value.split('=') if key == 'total': continue results_by_component[component][key] = int(value) return results_by_component