summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Doffman <mark.doffman@codethink.co.uk>2014-06-20 18:33:01 +0000
committerMark Doffman <mark.doffman@codethink.co.uk>2014-06-20 18:50:21 +0000
commit56d68b207c8fff6927b64cbff507fe6f1952ba82 (patch)
tree25ab85c6c6b38897d61a1ae94de1c346e587279e
parent00bf65857d32ff1888cea505de7531cd12548566 (diff)
downloadlorries-56d68b207c8fff6927b64cbff507fe6f1952ba82.tar.gz
Lorry Openstack projects.markdoffman/add-openstack-lorry
Add a scritpt to generate a lorry file for Openstack projects as well as the derived lorry file.
-rw-r--r--open-source-lorries/openstack.lorry211
-rwxr-xr-xscripts/generate-openstack.lorry.py75
2 files changed, 286 insertions, 0 deletions
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))