summaryrefslogtreecommitdiff
path: root/cloudinit
diff options
context:
space:
mode:
authorbrak <brak@brian2>2015-04-15 11:18:50 -0400
committerbrak <brak@brian2>2015-04-15 11:18:50 -0400
commit57c3365ec8310ff09cafa4c0f3fbdfb48c787e18 (patch)
tree4ff3a3e0d8631d426331f59bc0c708db5626cefd /cloudinit
parentf4789639af50ea631cf75af526ad013b05670caa (diff)
downloadvyos-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')
-rw-r--r--cloudinit/distros/rhel.py11
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