diff options
author | brak <brak@brian2> | 2015-04-15 11:18:50 -0400 |
---|---|---|
committer | brak <brak@brian2> | 2015-04-15 11:18:50 -0400 |
commit | 57c3365ec8310ff09cafa4c0f3fbdfb48c787e18 (patch) | |
tree | 4ff3a3e0d8631d426331f59bc0c708db5626cefd /cloudinit/distros | |
parent | f4789639af50ea631cf75af526ad013b05670caa (diff) | |
download | vyos-cloud-init-57c3365ec8310ff09cafa4c0f3fbdfb48c787e18.tar.gz vyos-cloud-init-57c3365ec8310ff09cafa4c0f3fbdfb48c787e18.zip |
CentOS 7 uses systemd. RHEL distributions using systemd were not properly saving the previous-hostname data
Diffstat (limited to 'cloudinit/distros')
-rw-r--r-- | cloudinit/distros/rhel.py | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/cloudinit/distros/rhel.py b/cloudinit/distros/rhel.py index 7408989c..eec17c61 100644 --- a/cloudinit/distros/rhel.py +++ b/cloudinit/distros/rhel.py @@ -116,6 +116,7 @@ class Distro(distros.Distro): (dist, vers) = util.system_info()['dist'][:2] major = (int)(vers.split('.')[0]) return ((dist.startswith('Red Hat Enterprise Linux') and major >= 7) + or (dist.startswith('CentOS Linux') and major >= 7) or (dist.startswith('Fedora') and major >= 18)) def apply_locale(self, locale, out_fn=None): @@ -132,7 +133,11 @@ class Distro(distros.Distro): rhel_util.update_sysconfig_file(out_fn, locale_cfg) def _write_hostname(self, hostname, out_fn): - if self.uses_systemd(): + # systemd will never update previous-hostname for us, so + # we need to do it ourselves + if self.uses_systemd() and out_fn.endswith('/previous-hostname'): + util.write_file(out_fn, hostname) + elif self.uses_systemd(): util.subp(['hostnamectl', 'set-hostname', str(hostname)]) else: host_cfg = { @@ -155,7 +160,9 @@ class Distro(distros.Distro): return (host_fn, self._read_hostname(host_fn)) def _read_hostname(self, filename, default=None): - if self.uses_systemd(): + if self.uses_systemd() and filename.endswith('/previous-hostname'): + return util.load_file(filename).strip() + elif self.uses_systemd(): (out, _err) = util.subp(['hostname']) if len(out): return out |