summaryrefslogtreecommitdiff
path: root/ec2-set-defaults.py
diff options
context:
space:
mode:
authorSoren Hansen <soren@canonical.com>2009-06-26 13:57:27 +0200
committerSoren Hansen <soren@canonical.com>2009-06-26 13:57:27 +0200
commitb098228ab03003218b894855142dec9a8f406cfb (patch)
treeefd52bd8ab547fd1b61406a68cb1eb5f0d2e2042 /ec2-set-defaults.py
parentbb5711688e7f6b2abe4e82a5b5233194a323b99d (diff)
downloadvyos-cloud-init-b098228ab03003218b894855142dec9a8f406cfb.tar.gz
vyos-cloud-init-b098228ab03003218b894855142dec9a8f406cfb.zip
* Distutils added
* New ec2init python module introduced * Lots and lots of stuff cleaned up and moved to ec2init python module. * Started the move to Boto
Diffstat (limited to 'ec2-set-defaults.py')
-rwxr-xr-xec2-set-defaults.py95
1 files changed, 32 insertions, 63 deletions
diff --git a/ec2-set-defaults.py b/ec2-set-defaults.py
index 410e57d8..eec696e4 100755
--- a/ec2-set-defaults.py
+++ b/ec2-set-defaults.py
@@ -19,66 +19,35 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
-import urllib
-import os
-import socket
-import time
-from Cheetah.Template import Template
-
-api_ver = '2008-02-01'
-metadata = None
-
-def checkServer():
- for x in range(30*60):
- s = socket.socket()
- try:
- address = '169.254.169.254'
- port = 80
- s.connect((address,port))
- s.close()
- return
- except socket.error, e:
- time.sleep(1)
-
-checkServer()
-
-base_url = 'http://169.254.169.254/%s/meta-data' % api_ver
-zone = urllib.urlopen('%s/placement/availability-zone' % base_url).read()
-
-if zone.startswith("us"):
- archive = "http://us.ec2.archive.ubuntu.com/ubuntu"
-elif zone.startswith("eu"):
- archive = "http://eu.ec2.archive.ubuntu.com/ubuntu"
-
-def set_language(location,filename):
- if location.startswith("us"):
- lang='en_US.UTF-8'
- elif location.startswith("eu"):
- lang='en_GB.UTF-8'
-
- os.system('locale-gen %s' %(lang))
-
- mp = {'lang' : lang }
- T = Template(file="/etc/ec2-init/templates/locale.tmpl", searchList=[mp])
- f = open("/var/ec2/locale", "w")
- f.write('%s' %(T))
- f.close()
-
- os.system("mv /etc/default/locale /etc/default/locale-ec2-init")
- os.system("ln -s /var/ec2/locale /etc/default/locale")
- os.system(". /etc/default/locale")
-
- os.system('touch %s' %(filename))
-
-def get_amid():
- url = 'http://169.254.169.254/%s/meta-data' % api_ver
- ami_id = urllib.urlopen('%s/ami-id/' %url).read()
- return ami_id
-
-ami = get_amid()
-filename = '/var/ec2/.defaults-already-ran.%s' %ami
-
-if os.path.exists(filename):
- print "ec2-set-defaults already ran...skipping"
-else:
- set_language(zone,filename)
+import subprocess
+
+import ec2init
+
+def get_location_from_availability_zone(availability_zone):
+ if availability.startswith('us-'):
+ return 'us'
+ elif availability.startswith('eu-'):
+ return 'eu'
+ raise Exception('Could not determine location')
+
+location_archive_map = {
+ 'us' : 'http://us.ec2.archive.ubuntu.com/ubuntu',
+ 'eu' : 'http://eu.ec2.archive.ubuntu.com/ubuntu'
+}
+
+location_locale_map = {
+ 'us' : 'en_US.UTF-8',
+ 'eu' : 'en_GB.UTF-8'
+}
+
+def main():
+ ec2 = ec2init.EC2Init()
+
+ location = get_location_from_availability_zone(ec2.get_availability_zone())
+
+ locale = location_locale_map[location]
+ subprocess.Popen(['locale-gen', locale]).communicate()
+ subprocess.Popen(['update-locale', locale]).communicate()
+
+if __name__ == '__main__':
+ main()