From 56d68b207c8fff6927b64cbff507fe6f1952ba82 Mon Sep 17 00:00:00 2001 From: Mark Doffman Date: Fri, 20 Jun 2014 18:33:01 +0000 Subject: Lorry Openstack projects. Add a scritpt to generate a lorry file for Openstack projects as well as the derived lorry file. --- open-source-lorries/openstack.lorry | 211 ++++++++++++++++++++++++++++++++++++ scripts/generate-openstack.lorry.py | 75 +++++++++++++ 2 files changed, 286 insertions(+) create mode 100644 open-source-lorries/openstack.lorry create mode 100755 scripts/generate-openstack.lorry.py diff --git a/open-source-lorries/openstack.lorry b/open-source-lorries/openstack.lorry new file mode 100644 index 0000000..1b01a70 --- /dev/null +++ b/open-source-lorries/openstack.lorry @@ -0,0 +1,211 @@ +{ + "openstack/nova": { + "type": "git", + "url": "git://git.openstack.org/openstack/nova.git" + }, + + "openstack/python-novaclient": { + "type": "git", + "url": "git://git.openstack.org/openstack/python-novaclient.git" + }, + + "openstack/swift": { + "type": "git", + "url": "git://git.openstack.org/openstack/swift.git" + }, + + "openstack/python-swiftclient": { + "type": "git", + "url": "git://git.openstack.org/openstack/python-swiftclient.git" + }, + + "openstack/swift-bench": { + "type": "git", + "url": "git://git.openstack.org/openstack/swift-bench.git" + }, + + "openstack/glance": { + "type": "git", + "url": "git://git.openstack.org/openstack/glance.git" + }, + + "openstack/python-glanceclient": { + "type": "git", + "url": "git://git.openstack.org/openstack/python-glanceclient.git" + }, + + "openstack/keystone": { + "type": "git", + "url": "git://git.openstack.org/openstack/keystone.git" + }, + + "openstack/python-keystoneclient": { + "type": "git", + "url": "git://git.openstack.org/openstack/python-keystoneclient.git" + }, + + "openstack/horizon": { + "type": "git", + "url": "git://git.openstack.org/openstack/horizon.git" + }, + + "openstack/django_openstack_auth": { + "type": "git", + "url": "git://git.openstack.org/openstack/django_openstack_auth.git" + }, + + "openstack/tuskar-ui": { + "type": "git", + "url": "git://git.openstack.org/openstack/tuskar-ui.git" + }, + + "openstack/neutron": { + "type": "git", + "url": "git://git.openstack.org/openstack/neutron.git" + }, + + "openstack/python-neutronclient": { + "type": "git", + "url": "git://git.openstack.org/openstack/python-neutronclient.git" + }, + + "openstack/cinder": { + "type": "git", + "url": "git://git.openstack.org/openstack/cinder.git" + }, + + "openstack/python-cinderclient": { + "type": "git", + "url": "git://git.openstack.org/openstack/python-cinderclient.git" + }, + + "openstack/ceilometer": { + "type": "git", + "url": "git://git.openstack.org/openstack/ceilometer.git" + }, + + "openstack/python-ceilometerclient": { + "type": "git", + "url": "git://git.openstack.org/openstack/python-ceilometerclient.git" + }, + + "openstack/heat": { + "type": "git", + "url": "git://git.openstack.org/openstack/heat.git" + }, + + "openstack/python-heatclient": { + "type": "git", + "url": "git://git.openstack.org/openstack/python-heatclient.git" + }, + + "openstack/heat-cfntools": { + "type": "git", + "url": "git://git.openstack.org/openstack/heat-cfntools.git" + }, + + "openstack/heat-templates": { + "type": "git", + "url": "git://git.openstack.org/openstack/heat-templates.git" + }, + + "openstack/trove": { + "type": "git", + "url": "git://git.openstack.org/openstack/trove.git" + }, + + "openstack/python-troveclient": { + "type": "git", + "url": "git://git.openstack.org/openstack/python-troveclient.git" + }, + + "openstack/trove-integration": { + "type": "git", + "url": "git://git.openstack.org/openstack/trove-integration.git" + }, + + "openstack/ironic": { + "type": "git", + "url": "git://git.openstack.org/openstack/ironic.git" + }, + + "openstack/python-ironicclient": { + "type": "git", + "url": "git://git.openstack.org/openstack/python-ironicclient.git" + }, + + "openstack/ironic-python-agent": { + "type": "git", + "url": "git://git.openstack.org/openstack/ironic-python-agent.git" + }, + + "openstack/cliff": { + "type": "git", + "url": "git://git.openstack.org/openstack/cliff.git" + }, + + "openstack/oslo-config": { + "type": "git", + "url": "git://git.openstack.org/openstack/oslo.config.git" + }, + + "openstack/oslo-db": { + "type": "git", + "url": "git://git.openstack.org/openstack/oslo.db.git" + }, + + "openstack/oslo-i18n": { + "type": "git", + "url": "git://git.openstack.org/openstack/oslo.i18n.git" + }, + + "openstack/oslo-incubator": { + "type": "git", + "url": "git://git.openstack.org/openstack/oslo-incubator.git" + }, + + "openstack/oslo-messaging": { + "type": "git", + "url": "git://git.openstack.org/openstack/oslo.messaging.git" + }, + + "openstack/oslo-rootwrap": { + "type": "git", + "url": "git://git.openstack.org/openstack/oslo.rootwrap.git" + }, + + "openstack/oslosphinx": { + "type": "git", + "url": "git://git.openstack.org/openstack/oslosphinx.git" + }, + + "openstack/oslotest": { + "type": "git", + "url": "git://git.openstack.org/openstack/oslotest.git" + }, + + "openstack/oslo-version": { + "type": "git", + "url": "git://git.openstack.org/openstack/oslo.version.git" + }, + + "openstack/oslo-vmware": { + "type": "git", + "url": "git://git.openstack.org/openstack/oslo.vmware.git" + }, + + "openstack/pycadf": { + "type": "git", + "url": "git://git.openstack.org/openstack/pycadf.git" + }, + + "openstack/stevedore": { + "type": "git", + "url": "git://git.openstack.org/openstack/stevedore.git" + }, + + "openstack/taskflow": { + "type": "git", + "url": "git://git.openstack.org/openstack/taskflow.git" + } +} diff --git a/scripts/generate-openstack.lorry.py b/scripts/generate-openstack.lorry.py new file mode 100755 index 0000000..4fb48be --- /dev/null +++ b/scripts/generate-openstack.lorry.py @@ -0,0 +1,75 @@ +#!/usr/bin/python + +import sys +import re +import urllib2 +import yaml + +lorry_template = """ + "openstack/%s": { + "type": "git", + "url": "%s" + }""" + +git_template = "git://git.openstack.org/openstack/%s.git" + +# Whitelist for which sections of programs should +# be lorried. +sections = [ + "Compute", + "Object Storage", + "Image Service", + "Identity", + "Dashboard", + "Networking", + "Block Storage", + "Telemetry", + "Orchestration", + "Database Service", + "Bare metal", + "Common Libraries" +] + +def clean_repo(repo): + ret = None + name_match = re.search("openstack/(.*)$", repo) + + # Filter out the specs repos. + # Could probably be sone in the above regexp, but don't + # have the inclination to work out how. + if name_match: + name = name_match.group(1) + if not re.search("specs$", name): + ret = name + + return ret + + +def main(argv): + programs_yaml = urllib2.urlopen( + "http://git.openstack.org/cgit/openstack/governance/plain/reference/programs.yaml").read() + programs = yaml.load(programs_yaml) + + lorries = [] + + for s in sections: + section = programs[s] + codename = section["codename"].lower() + projects = section["projects"] + repos = [clean_repo(p["repo"]) for p in projects] + repos = filter(None, repos) + + for r in repos: + url = git_template % r + # Don't like use of '.' in lorry names + name = r.replace("oslo.", "oslo-") + + lorries.append(lorry_template % (name, url)) + + with open("./open-source-lorries/openstack.lorry", "w") as f: + f.write("{") + f.write(",\n".join(lorries)) + f.write("\n}\n") + +if __name__ == "__main__": + sys.exit(main(sys.argv)) -- cgit v1.2.1