From 0435087c48264fda6bd9c3e01998849b2f70f685 Mon Sep 17 00:00:00 2001 From: Scott Moser Date: Wed, 10 Feb 2010 19:43:18 -0500 Subject: only set hostname once per instance. (LP: #514492) LP: #514492 --- cloud-init.py | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/cloud-init.py b/cloud-init.py index b48d4672..501ed4b4 100755 --- a/cloud-init.py +++ b/cloud-init.py @@ -35,10 +35,6 @@ def main(): 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() @@ -50,6 +46,15 @@ def main(): warn("consuming user data failed!\n") raise + try: + hostname = cloud.get_hostname() + cloud.sem_and_run("set_hostname", "once-per-instance", + set_hostname, [ hostname ], False) + except: + warn("failed to set hostname\n") + + #print "user data is:" + cloud.get_user_data() + # set the defaults (like what ec2-set-defaults.py did) try: cloud.sem_and_run("set_defaults", "once-per-instance", @@ -72,5 +77,11 @@ def apply_locale(locale): util.render_to_file('default-locale', '/etc/default/locale', \ { 'locale' : locale }) +def set_hostname(hostname): + subprocess.Popen(['hostname', hostname]).communicate() + f=open("/etc/hostname","wb") + f.write("%s\n" % hostname) + f.close() + if __name__ == '__main__': main() -- cgit v1.2.3