summaryrefslogtreecommitdiff
path: root/cloudinit/distros
diff options
context:
space:
mode:
authorScott Moser <smoser@ubuntu.com>2016-03-01 12:30:31 -0500
committerScott Moser <smoser@ubuntu.com>2016-03-01 12:30:31 -0500
commit290afe72d53b5e38c3781934e23a676a3c1986e5 (patch)
treed17d8ded09d9274c40f652d8bc3d4fd0d6449cae /cloudinit/distros
parentf0e26abe896318819a6b568dd72e9974b53928c8 (diff)
downloadvyos-cloud-init-290afe72d53b5e38c3781934e23a676a3c1986e5.tar.gz
vyos-cloud-init-290afe72d53b5e38c3781934e23a676a3c1986e5.zip
timezone: use a symlink when updating /etc/localtime
Unless /etc/localtime is an existing file and not a symlink, then we will symlink instead of copying the tz_file to /etc/localtime. The copy was due to an old bug in Ubuntu, symlink should be preferred. LP: #1543025
Diffstat (limited to 'cloudinit/distros')
-rw-r--r--cloudinit/distros/__init__.py6
1 files changed, 5 insertions, 1 deletions
diff --git a/cloudinit/distros/__init__.py b/cloudinit/distros/__init__.py
index 71884b32..8167c594 100644
--- a/cloudinit/distros/__init__.py
+++ b/cloudinit/distros/__init__.py
@@ -897,5 +897,9 @@ def set_etc_timezone(tz, tz_file=None, tz_conf="/etc/timezone",
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, tz_local)
+ # use a symlink if there exists a symlink or tz_local is not present
+ if os.path.islink(tz_local) or not os.path.exists(tz_local):
+ os.symlink(tz_file, tz_local)
+ else:
+ util.copy(tz_file, tz_local)
return