reviewday/bin/reviewday

83 lines
2.0 KiB
Python
Executable File

#!/usr/bin/env python
# vim: expandtab tabstop=4 shiftwidth=4 softtabstop=4
from datetime import datetime
from time import time
from reviewday.gerrit import reviews as gerrit_reviews
from reviewday.util import create_report
from reviewday.launchpad import LaunchPad
from reviewday.mergeprop import MergeProp
from optparse import OptionParser
optparser = OptionParser()
optparser.add_option('-o', '--out-dir', dest='out_dir',
help='set output directory [default = %default]',
default='out_report', type='string')
(options, args) = optparser.parse_args()
lp = LaunchPad()
projects = {}
cur_timestamp = time()
PROJECTS = [
'ceilometer',
'cinder',
'diskimage-builder',
'glance',
'heat',
'horizon',
'identity-api',
'ironic',
'keystone',
'neutron',
'nova',
'os-apply-config',
'os-collect-config',
'os-refresh-config',
'python-ceilometerclient',
'python-cinderclient',
'python-glanceclient',
'python-heatclient',
'python-ironicclient',
'python-keystoneclient',
'python-neutronclient',
'python-novaclient',
'python-saharaclient',
'python-swiftclient',
'python-troveclient',
'python-tuskarclient',
'sahara',
'sahara-dashboard',
'sahara-extra',
'sahara-image-elements',
'swift',
'tempest',
'tripleo-heat-templates',
'tripleo-image-elements',
'tripleo-incubator',
'trove',
'trove-integration',
'tuskar',
'tuskar-ui',
]
for project in PROJECTS:
if project not in projects:
projects[project] = []
for review in gerrit_reviews(project):
try:
mp = MergeProp(lp, review, cur_timestamp)
if not mp.is_wip:
projects[project].append(mp)
except:
print 'Error creating merge prop %s' % review
dts = str(datetime.utcnow())[0:19]
name_space = {"projects": projects, "dts": dts}
out_dir = options.out_dir
create_report(out_dir, name_space)