#!/usr/bin/env python # Copyright (C) 2011-2013 OpenStack Foundation # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or # implied. # # See the License for the specific language governing permissions and # limitations under the License. import os import urllib2 import yaml URL = ('https://git.openstack.org/cgit/openstack-infra/project-config/' 'plain/gerrit/projects.yaml') TMP_HOOKS_PATH=os.environ['TMP_HOOKS_PATH'] PROJECTS_REPOS=os.path.join(TMP_HOOKS_PATH, 'source-repository-projects-yaml') GIT_BASE=os.environ.get('GIT_BASE', 'git://git.openstack.org') def main(): projects = [f['project'] for f in yaml.load(urllib2.urlopen(URL))] with open(PROJECTS_REPOS, 'w') as projects_list: for project in projects: # Skip repos that are inactive dirname = os.path.dirname(project) if not ('attic' in dirname or dirname == 'stackforge'): args = dict( name=os.path.basename(project), location=os.path.join('/opt/git', project), url='%s/%s.git' % (GIT_BASE, project)) projects_list.write("%(name)s git %(location)s " "%(url)s\n" % args) # Clone openstack-infra/system-config again so that we can use it to # build the image without interferring with the slave repo cache. project = 'openstack-infra/system-config' args = dict( name='config_tmp', location=os.path.join('/opt/build_git', project), url=os.environ.get('CONFIG_SOURCE', '%s/%s.git' % (GIT_BASE, project)), ref=os.environ.get('CONFIG_REF', '*')) projects_list.write( "%(name)s git %(location)s %(url)s %(ref)s\n" % args) if __name__ == '__main__': main()