summaryrefslogtreecommitdiff
path: root/cloudinit/distros
diff options
context:
space:
mode:
authorScott Moser <smoser@ubuntu.com>2014-07-29 09:52:02 -0400
committerScott Moser <smoser@ubuntu.com>2014-07-29 09:52:02 -0400
commit67428ad5a66ee57d1212e5af74cb9e9ed81d2c7b (patch)
treee3ece15c3b28e3cc0ce26b8fe81d72fda1cf7ca8 /cloudinit/distros
parent4b8397a510c4ff6f903e98bef50d350410f41451 (diff)
downloadvyos-cloud-init-67428ad5a66ee57d1212e5af74cb9e9ed81d2c7b.tar.gz
vyos-cloud-init-67428ad5a66ee57d1212e5af74cb9e9ed81d2c7b.zip
do not put comments in /etc/timezone
comments in /etc/timezone are not expected, and can cause problems if another tool tries to read it. LP: #1341710
Diffstat (limited to 'cloudinit/distros')
-rw-r--r--cloudinit/distros/__init__.py9
-rw-r--r--cloudinit/distros/arch.py13
-rw-r--r--cloudinit/distros/debian.py13
-rw-r--r--cloudinit/distros/gentoo.py13
4 files changed, 12 insertions, 36 deletions
diff --git a/cloudinit/distros/__init__.py b/cloudinit/distros/__init__.py
index 55d6bcbc..1a56dfb3 100644
--- a/cloudinit/distros/__init__.py
+++ b/cloudinit/distros/__init__.py
@@ -856,3 +856,12 @@ def fetch(name):
mod = importer.import_module(locs[0])
cls = getattr(mod, 'Distro')
return cls
+
+
+def set_etc_timezone(tz, tz_file=None, tz_conf="/etc/timezone",
+ tz_local="/etc/localtime"):
+ util.write_file(tz_conf, str(tz).rstrip() + "\n")
+ # This ensures that the correct tz will be used for the system
+ if tz_local and tz_file:
+ util.copy(tz_file, self.tz_local_fn)
+ return
diff --git a/cloudinit/distros/arch.py b/cloudinit/distros/arch.py
index 310c3dff..9f11b89c 100644
--- a/cloudinit/distros/arch.py
+++ b/cloudinit/distros/arch.py
@@ -32,8 +32,6 @@ LOG = logging.getLogger(__name__)
class Distro(distros.Distro):
locale_conf_fn = "/etc/locale.gen"
network_conf_dir = "/etc/netctl"
- tz_conf_fn = "/etc/timezone"
- tz_local_fn = "/etc/localtime"
resolve_conf_fn = "/etc/resolv.conf"
init_cmd = ['systemctl'] # init scripts
@@ -161,16 +159,7 @@ class Distro(distros.Distro):
return hostname
def set_timezone(self, tz):
- tz_file = self._find_tz_file(tz)
- # Note: "" provides trailing newline during join
- tz_lines = [
- util.make_header(),
- str(tz),
- "",
- ]
- util.write_file(self.tz_conf_fn, "\n".join(tz_lines))
- # This ensures that the correct tz will be used for the system
- util.copy(tz_file, self.tz_local_fn)
+ set_etc_timezone(tz=tz, tz_file=self._find_tz_file(tz))
def package_command(self, command, args=None, pkgs=None):
if pkgs is None:
diff --git a/cloudinit/distros/debian.py b/cloudinit/distros/debian.py
index 1ae232fd..7cf4a9ef 100644
--- a/cloudinit/distros/debian.py
+++ b/cloudinit/distros/debian.py
@@ -46,8 +46,6 @@ class Distro(distros.Distro):
hostname_conf_fn = "/etc/hostname"
locale_conf_fn = "/etc/default/locale"
network_conf_fn = "/etc/network/interfaces"
- tz_conf_fn = "/etc/timezone"
- tz_local_fn = "/etc/localtime"
def __init__(self, name, cfg, paths):
distros.Distro.__init__(self, name, cfg, paths)
@@ -133,16 +131,7 @@ class Distro(distros.Distro):
return "127.0.1.1"
def set_timezone(self, tz):
- tz_file = self._find_tz_file(tz)
- # Note: "" provides trailing newline during join
- tz_lines = [
- util.make_header(),
- str(tz),
- "",
- ]
- util.write_file(self.tz_conf_fn, "\n".join(tz_lines))
- # This ensures that the correct tz will be used for the system
- util.copy(tz_file, self.tz_local_fn)
+ set_etc_timezone(tz=tz, tz_file=self._find_tz_file(tz))
def package_command(self, command, args=None, pkgs=None):
if pkgs is None:
diff --git a/cloudinit/distros/gentoo.py b/cloudinit/distros/gentoo.py
index 09f8d8ea..c4b02de1 100644
--- a/cloudinit/distros/gentoo.py
+++ b/cloudinit/distros/gentoo.py
@@ -31,8 +31,6 @@ LOG = logging.getLogger(__name__)
class Distro(distros.Distro):
locale_conf_fn = "/etc/locale.gen"
network_conf_fn = "/etc/conf.d/net"
- tz_conf_fn = "/etc/timezone"
- tz_local_fn = "/etc/localtime"
init_cmd = [''] # init scripts
def __init__(self, name, cfg, paths):
@@ -140,16 +138,7 @@ class Distro(distros.Distro):
return hostname
def set_timezone(self, tz):
- tz_file = self._find_tz_file(tz)
- # Note: "" provides trailing newline during join
- tz_lines = [
- util.make_header(),
- str(tz),
- "",
- ]
- util.write_file(self.tz_conf_fn, "\n".join(tz_lines))
- # This ensures that the correct tz will be used for the system
- util.copy(tz_file, self.tz_local_fn)
+ set_etc_timezone(tz=tz, tz_file=self._find_tz_file(tz))
def package_command(self, command, args=None, pkgs=None):
if pkgs is None: