summaryrefslogtreecommitdiff
path: root/cloudinit/transforms/cc_timezone.py
diff options
context:
space:
mode:
Diffstat (limited to 'cloudinit/transforms/cc_timezone.py')
-rw-r--r--cloudinit/transforms/cc_timezone.py41
1 files changed, 5 insertions, 36 deletions
diff --git a/cloudinit/transforms/cc_timezone.py b/cloudinit/transforms/cc_timezone.py
index e5c9901b..6fb5edc0 100644
--- a/cloudinit/transforms/cc_timezone.py
+++ b/cloudinit/transforms/cc_timezone.py
@@ -18,50 +18,19 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
-from cloudinit.CloudConfig import per_instance
-from cloudinit import util
-import os.path
-import shutil
+from cloudinit.settings import PER_INSTANCE
-frequency = per_instance
-tz_base = "/usr/share/zoneinfo"
+frequency = PER_INSTANCE
-def handle(_name, cfg, _cloud, log, args):
+def handle(_name, cfg, cloud, log, args):
if len(args) != 0:
timezone = args[0]
else:
timezone = util.get_cfg_option_str(cfg, "timezone", False)
if not timezone:
+ log.debug("Skipping module named %s, no 'timezone' specified", name)
return
- tz_file = "%s/%s" % (tz_base, timezone)
-
- if not os.path.isfile(tz_file):
- log.debug("Invalid timezone %s" % tz_file)
- raise Exception("Invalid timezone %s" % tz_file)
-
- try:
- fp = open("/etc/timezone", "wb")
- fp.write("%s\n" % timezone)
- fp.close()
- except:
- log.debug("failed to write to /etc/timezone")
- raise
- if os.path.exists("/etc/sysconfig/clock"):
- try:
- with open("/etc/sysconfig/clock", "w") as fp:
- fp.write('ZONE="%s"\n' % timezone)
- except:
- log.debug("failed to write to /etc/sysconfig/clock")
- raise
-
- try:
- shutil.copy(tz_file, "/etc/localtime")
- except:
- log.debug("failed to copy %s to /etc/localtime" % tz_file)
- raise
-
- log.debug("set timezone to %s" % timezone)
- return
+ cloud.distro.set_timezone(timezone)