summaryrefslogtreecommitdiff
path: root/cloudinit/distros/__init__.py
diff options
context:
space:
mode:
authorScott Moser <smoser@ubuntu.com>2015-01-16 14:29:48 -0500
committerScott Moser <smoser@ubuntu.com>2015-01-16 14:29:48 -0500
commit8d453d2a4da4492857a4487b14fe7b11a014115b (patch)
treef076768503899a7554be574e34d9c2220c8d8432 /cloudinit/distros/__init__.py
parentae2f5123faab45e71e4dcf3237d7dac59a4c66b7 (diff)
downloadvyos-cloud-init-8d453d2a4da4492857a4487b14fe7b11a014115b.tar.gz
vyos-cloud-init-8d453d2a4da4492857a4487b14fe7b11a014115b.zip
hostname: apply hostname same as is written
on RHEL, we were writing to persistent configuration the fqdn, but invoking 'hostname' on the first boot with just the shortname. On 'reboot', then the hostname would differ. Now, whatever we write, invoke hostname with. Also remove some duplicate code. LP: #1246485
Diffstat (limited to 'cloudinit/distros/__init__.py')
-rw-r--r--cloudinit/distros/__init__.py9
1 files changed, 6 insertions, 3 deletions
diff --git a/cloudinit/distros/__init__.py b/cloudinit/distros/__init__.py
index bf465442..5eab780b 100644
--- a/cloudinit/distros/__init__.py
+++ b/cloudinit/distros/__init__.py
@@ -86,7 +86,7 @@ class Distro(object):
def set_hostname(self, hostname, fqdn=None):
writeable_hostname = self._select_hostname(hostname, fqdn)
self._write_hostname(writeable_hostname, self.hostname_conf_fn)
- self._apply_hostname(hostname)
+ self._apply_hostname(writeable_hostname)
@abc.abstractmethod
def package_command(self, cmd, args=None, pkgs=None):
@@ -160,9 +160,12 @@ class Distro(object):
util.logexc(LOG, "Failed to non-persistently adjust the system "
"hostname to %s", hostname)
- @abc.abstractmethod
def _select_hostname(self, hostname, fqdn):
- raise NotImplementedError()
+ # Prefer the short hostname over the long
+ # fully qualified domain name
+ if not hostname:
+ return fqdn
+ return hostname
@staticmethod
def expand_osfamily(family_list):