summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cloudinit/distros/debian.py38
1 files changed, 19 insertions, 19 deletions
diff --git a/cloudinit/distros/debian.py b/cloudinit/distros/debian.py
index b6e7654f..7422f4f0 100644
--- a/cloudinit/distros/debian.py
+++ b/cloudinit/distros/debian.py
@@ -88,37 +88,37 @@ class Distro(distros.Distro):
return hostname
def _write_hostname(self, your_hostname, out_fn):
- conf = self._read_hostname_conf(out_fn)
+ conf = None
+ try:
+ # Try to update the previous one
+ # so lets see if we can read it first.
+ conf = self._read_hostname_conf(out_fn)
+ except IOError:
+ pass
if not conf:
conf = HostnameConf('')
- conf.parse()
conf.set_hostname(your_hostname)
util.write_file(out_fn, str(conf), 0644)
def _read_system_hostname(self):
- conf = self._read_hostname_conf(self.hostname_conf_fn)
- if conf:
- sys_hostname = conf.hostname
- else:
- sys_hostname = None
+ sys_hostname = self._read_hostname(self.hostname_conf_fn)
return (self.hostname_conf_fn, sys_hostname)
def _read_hostname_conf(self, filename):
- try:
- conf = HostnameConf(util.load_file(filename))
- conf.parse()
- return conf
- except IOError:
- util.logexc(LOG, "Error reading hostname from %s", filename)
- return None
+ conf = HostnameConf(util.load_file(filename))
+ conf.parse()
+ return conf
def _read_hostname(self, filename, default=None):
- conf = self._read_hostname_conf(filename)
- if not conf:
- return default
- if not conf.hostname:
+ hostname = None
+ try:
+ conf = self._read_hostname_conf(filename)
+ hostname = conf.hostname
+ except IOError:
+ pass
+ if not hostname:
return default
- return conf.hostname
+ return hostname
def _get_localhost_ip(self):
# Note: http://www.leonardoborda.com/blog/127-0-1-1-ubuntu-debian/