Validate extra-atcs

Change-Id: I7c3324d73a4fc18329270f845aba6904d3f9a539
This commit is contained in:
Tony Breeds 2016-03-11 13:30:48 +11:00
parent 912a9424eb
commit cdbc906dc9
4 changed files with 24 additions and 4 deletions

2
requirements.txt Normal file
View File

@ -0,0 +1,2 @@
pytz
PyYAML>=3.1.0,<=3.10

View File

@ -4,4 +4,3 @@
# needed for doc build # needed for doc build
sphinx!=1.2.0,!=1.3b1,<1.3,>=1.1.2 sphinx!=1.2.0,!=1.3b1,<1.3,>=1.1.2
oslosphinx>=2.5.0 # Apache-2.0 oslosphinx>=2.5.0 # Apache-2.0
PyYAML>=3.1.0,<=3.10

View File

@ -6,6 +6,7 @@ import sys
import urllib import urllib
import re import re
import datetime import datetime
import pytz
DATE_MIN = '2015-03-04' DATE_MIN = '2015-03-04'
DATE_MAX = '2016-01-03' DATE_MAX = '2016-01-03'
@ -17,6 +18,18 @@ PROJECTS_URL = ('%s/openstack/governance/plain/reference/projects.yaml?%s' %
date_min = datetime.datetime.strptime(DATE_MIN, '%Y-%m-%d').strftime('%s') date_min = datetime.datetime.strptime(DATE_MIN, '%Y-%m-%d').strftime('%s')
date_max = datetime.datetime.strptime(DATE_MAX, '%Y-%m-%d').strftime('%s') date_max = datetime.datetime.strptime(DATE_MAX, '%Y-%m-%d').strftime('%s')
now = datetime.datetime.utcnow().replace(tzinfo=pytz.utc,
hour=0,
minute=0,
second=0,
microsecond=0)
def check_atc_date(atc):
if 'expires-in' not in atc:
return False
expires_in = datetime.datetime.strptime(atc['expires-in'], '%B %Y').replace(tzinfo=pytz.utc)
return now < expires_in
def check_date(date): def check_date(date):
@ -40,7 +53,7 @@ except:
exit(1) exit(1)
project_name = project_name.replace('_', ' ') project_name = project_name.replace('_', ' ')
author = escape_author(author) author = author.replace('_', ' ')
if not os.path.isfile('.projects.yaml'): if not os.path.isfile('.projects.yaml'):
open('.projects.yaml', 'w').write( open('.projects.yaml', 'w').write(
@ -58,9 +71,14 @@ else:
exit(1) exit(1)
for project in project_list: for project in project_list:
for atc in project['extra-atcs']:
if atc['name'] == author and check_atc_date(atc):
print "Valid extra ATC record", atc
exit(0)
for deliverable in project['deliverables'].values(): for deliverable in project['deliverables'].values():
for repo_name in deliverable["repos"]: for repo_name in deliverable["repos"]:
url = '%s/%s/log/?qt=author&q=%s' % (BASE_URL, repo_name, author) url = '%s/%s/log/?qt=author&q=%s' % (BASE_URL, repo_name,
escape_author(author))
print "Querying: %s" % url print "Querying: %s" % url
found = False found = False
for l in urllib.urlopen(url).read().split('\n'): for l in urllib.urlopen(url).read().split('\n'):

View File

@ -7,7 +7,8 @@ skipsdist = True
usedevelop = True usedevelop = True
install_command = pip install -U {opts} {packages} install_command = pip install -U {opts} {packages}
setenv = VIRTUAL_ENV={envdir} setenv = VIRTUAL_ENV={envdir}
deps = -r{toxinidir}/test-requirements.txt deps = -r{toxinidir}/requirements.txt
-r{toxinidir}/test-requirements.txt
[testenv:venv] [testenv:venv]
commands = {posargs} commands = {posargs}