Tool to download all Amazon example templates

Templates are saved in templates/cloudformation-examples which is ignored
by git.

Its probably time we're exposed to a bit more template diversity.

Change-Id: I667c4f08fced353201ab9234a51526bcbeb0761b
This commit is contained in:
Steve Baker 2012-11-20 16:24:23 +13:00
parent 879d813efc
commit 66ef27527d
2 changed files with 50 additions and 0 deletions

2
.gitignore vendored
View File

@ -10,3 +10,5 @@ heat-test.db
.venv
AUTHORS
ChangeLog
templates/cloudformation-examples

View File

@ -0,0 +1,48 @@
#!/usr/bin/env python
import httplib
import os
import sys
import shutil
import xml.etree.ElementTree as xml
basepath = os.path.abspath(os.path.join(sys.argv[0],
os.path.pardir,
os.path.pardir,
'templates',
'cloudformation-examples'))
bucket = 'cloudformation-templates-us-east-1'
def main():
conn = httplib.HTTPConnection('s3.amazonaws.com')
conn.request('GET', '/%s/' % bucket)
resp = conn.getresponse()
tree = xml.parse(resp)
rootElement = tree.getroot()
if os.path.exists(basepath):
print 'Deleting %s' % basepath
shutil.rmtree(basepath)
os.makedirs(basepath)
print 'Creating %s' % basepath
for entry in rootElement.iter('{http://s3.amazonaws.com/doc/2006-03-01/}Key'):
key = entry.text
if key.endswith('.html'):
continue
filename = os.path.join(basepath, key)
print 'Writing to %s' % filename
conn.request('GET', '/%s/%s' % (bucket, key))
resp = conn.getresponse()
contents = resp.read()
f = open(filename, 'w')
f.write(contents)
f.close()
if __name__ == '__main__':
main()