Skip to content

Instantly share code, notes, and snippets.

@pilt
Created December 17, 2012 16:28
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save pilt/4319614 to your computer and use it in GitHub Desktop.
Save pilt/4319614 to your computer and use it in GitHub Desktop.
((u'ebs', u'amd64', u'ap-northeast-1'), u'ami-eca719ed')
((u'ebs', u'i386', u'ap-northeast-1'), u'ami-eaa719eb')
((u'instance-store', u'amd64', u'ap-northeast-1'), u'ami-e0a719e1')
((u'instance-store', u'i386', u'ap-northeast-1'), u'ami-aca719ad')
((u'ebs', u'amd64', u'ap-southeast-1'), u'ami-fefcbcac')
((u'ebs', u'i386', u'ap-southeast-1'), u'ami-f8fcbcaa')
((u'instance-store', u'amd64', u'ap-southeast-1'), u'ami-fafcbca8')
((u'instance-store', u'i386', u'ap-southeast-1'), u'ami-d4fcbc86')
((u'ebs', u'amd64', u'ap-southeast-2'), u'ami-fb8611c1')
((u'ebs', u'i386', u'ap-southeast-2'), u'ami-858611bf')
((u'instance-store', u'amd64', u'ap-southeast-2'), u'ami-cf8710f5')
((u'instance-store', u'i386', u'ap-southeast-2'), u'ami-898710b3')
((u'hvm', u'amd64', u'eu-west-1'), u'ami-25656651')
((u'ebs', u'amd64', u'eu-west-1'), u'ami-3b65664f')
((u'ebs', u'i386', u'eu-west-1'), u'ami-3965664d')
((u'instance-store', u'amd64', u'eu-west-1'), u'ami-a16665d5')
((u'instance-store', u'i386', u'eu-west-1'), u'ami-2966655d')
((u'ebs', u'amd64', u'sa-east-1'), u'ami-b45b82a9')
((u'ebs', u'i386', u'sa-east-1'), u'ami-ba5b82a7')
((u'instance-store', u'amd64', u'sa-east-1'), u'ami-805b829d')
((u'instance-store', u'i386', u'sa-east-1'), u'ami-945b8289')
((u'hvm', u'amd64', u'us-east-1'), u'ami-9078c0f9')
((u'ebs', u'amd64', u'us-east-1'), u'ami-9c78c0f5')
((u'ebs', u'i386', u'us-east-1'), u'ami-9878c0f1')
((u'instance-store', u'amd64', u'us-east-1'), u'ami-9a873ff3')
((u'instance-store', u'i386', u'us-east-1'), u'ami-52863e3b')
((u'ebs', u'amd64', u'us-west-1'), u'ami-bb4f69fe')
((u'ebs', u'i386', u'us-west-1'), u'ami-b94f69fc')
((u'instance-store', u'amd64', u'us-west-1'), u'ami-a34f69e6')
((u'instance-store', u'i386', u'us-west-1'), u'ami-e34f69a6')
((u'hvm', u'amd64', u'us-west-2'), u'ami-60ab2250')
((u'ebs', u'amd64', u'us-west-2'), u'ami-7eab224e')
((u'ebs', u'i386', u'us-west-2'), u'ami-7cab224c')
((u'instance-store', u'amd64', u'us-west-2'), u'ami-1aab222a')
((u'instance-store', u'i386', u'us-west-2'), u'ami-3aab220a')
import re
import json
import collections
import requests
def ubuntu_linux_images(version="precise"):
url = "http://cloud-images.ubuntu.com/locator/ec2/releasesTable"
r = requests.get(url, headers={
'Accept-Language': 'en',
'Accept': 'application/json',
})
r.raise_for_status()
fixed_content = r.content.replace("],\n]", "]\n]")
specs = json.loads(fixed_content)["aaData"]
amis = collections.OrderedDict()
href_pattern = re.compile(r"<a .*>(.+)</a>")
for region, api_version, num_version, arch, storage, created, href, aki \
in specs:
if api_version != version:
continue
ami = href_pattern.match(href).group(1)
amis[(storage, arch, region)] = ami
return amis
if __name__ == "__main__":
for key, ami in ubuntu_linux_images().items():
print (key, ami)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment