cloud-init/ec2-init.py
Scott Moser eea1ce32c0 Add support for user defined mount points
Also, move swap to use this format for specifying mounts.  That way
the user can turn off swap if they want with:
 | mounts:
 | - [ swap ]

Other change wrapped in here is to have DataSourceEc2 read plain text
(evalable) text for its metadata rather than pickl.  This is really for
debuging anyway, so any speed difference is not important.
2010-01-28 15:49:29 -05:00

61 lines
1.4 KiB
Python
Executable File

#!/usr/bin/python
import subprocess
import sys
import ec2init
import ec2init.util as util
def warn(str):
sys.stderr.write(str)
def main():
cloud = ec2init.EC2Init()
try:
cloud.get_data_source()
except Exception as e:
print e
sys.stderr.write("Failed to get instance data")
sys.exit(1)
hostname = cloud.get_hostname()
subprocess.Popen(['hostname', hostname]).communicate()
#print "user data is:" + cloud.get_user_data()
# store the metadata
cloud.update_cache()
# parse the user data (ec2-run-userdata.py)
try:
cloud.sem_and_run("consume_userdata", "once-per-instance",
cloud.consume_userdata,[],False)
except:
warn("consuming user data failed!\n")
raise
# set the defaults (like what ec2-set-defaults.py did)
try:
cloud.sem_and_run("set_defaults", "once-per-instance",
set_defaults,[ cloud ],False)
except:
warn("failed to set defaults\n")
# finish, send the cloud-config event
cloud.initctl_emit()
sys.exit(0)
def set_defaults(cloud):
apply_locale(cloud.get_locale())
def apply_locale(locale):
subprocess.Popen(['locale-gen', locale]).communicate()
subprocess.Popen(['update-locale', locale]).communicate()
util.render_to_file('default-locale', '/etc/default/locale', \
{ 'locale' : locale })
if __name__ == '__main__':
main()