~ubuntu-branches/ubuntu/saucy/cloud-init/saucy

« back to all changes in this revision

Viewing changes to cloud-init.py

  • Committer: Bazaar Package Importer
  • Author(s): Scott Moser
  • Date: 2010-02-04 03:00:05 UTC
  • Revision ID: james.westby@ubuntu.com-20100204030005-r2y1568be8rbslxo
Tags: upstream-0.5.3
ImportĀ upstreamĀ versionĀ 0.5.3

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#!/usr/bin/python
 
2
 
 
3
import subprocess
 
4
import sys
 
5
 
 
6
import cloudinit
 
7
import cloudinit.util as util
 
8
 
 
9
def warn(str):
 
10
    sys.stderr.write(str)
 
11
 
 
12
def main():
 
13
    cloud = cloudinit.EC2Init()
 
14
 
 
15
    try:
 
16
        cloud.get_data_source()
 
17
    except Exception as e:
 
18
        print e
 
19
        sys.stderr.write("Failed to get instance data")
 
20
        sys.exit(1)
 
21
 
 
22
    hostname = cloud.get_hostname()
 
23
    subprocess.Popen(['hostname', hostname]).communicate()
 
24
    #print "user data is:" + cloud.get_user_data()
 
25
 
 
26
    # store the metadata
 
27
    cloud.update_cache()
 
28
 
 
29
    # parse the user data (ec2-run-userdata.py)
 
30
    try:
 
31
        cloud.sem_and_run("consume_userdata", "once-per-instance",
 
32
            cloud.consume_userdata,[],False)
 
33
    except:
 
34
        warn("consuming user data failed!\n")
 
35
        raise
 
36
 
 
37
    # set the defaults (like what ec2-set-defaults.py did)
 
38
    try:
 
39
        cloud.sem_and_run("set_defaults", "once-per-instance",
 
40
            set_defaults,[ cloud ],False)
 
41
    except:
 
42
        warn("failed to set defaults\n")
 
43
 
 
44
    # finish, send the cloud-config event
 
45
    cloud.initctl_emit()
 
46
 
 
47
    sys.exit(0)
 
48
 
 
49
def set_defaults(cloud):
 
50
    apply_locale(cloud.get_locale())
 
51
    
 
52
def apply_locale(locale):
 
53
    subprocess.Popen(['locale-gen', locale]).communicate()
 
54
    subprocess.Popen(['update-locale', locale]).communicate()
 
55
 
 
56
    util.render_to_file('default-locale', '/etc/default/locale', \
 
57
        { 'locale' : locale })
 
58
 
 
59
if __name__ == '__main__':
 
60
    main()