Viewing file: timezoneBackend.py (4.95 KB) -rwxr-xr-x Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
## timezoneBackend - provides the backend for system timezone calls ## Copyright (C) 2001, 2002, 2003 Red Hat, Inc. ## Copyright (C) 2001, 2002, 2003 Brent Fox <bfox@redhat.com> ## Tammy Fox <tfox@redhat.com>
## This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version.
## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details.
## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
import os import time import string import shutil
## ## I18N ## from rhpl.translate import _, N_ import rhpl.translate as translate translate.textdomain ("system-config-date")
def bool(val): if val: return "true" return "false"
class timezoneBackend: def writeConfig (self, timezone, utc=0, arc=0): fromFile = "/usr/share/zoneinfo/" + timezone
if utc == 0 or utc == 'false': utc = "false" else: utc = "true"
if arc != "false": if arc != 0: arc = "true" else: arc = "false"
try: shutil.copyfile(fromFile, "/etc/localtime") except OSError, (errno, msg): print (_("Error copying timezone (from %s): %s") % (fromFile, msg))
try: os.chmod("/etc/localtime", 0644) except OSError, (errno, msg): print (_("Changing permission of timezone: %s") % (msg))
#Check to see if /var/spool/postfix/etc/localtime exists if os.access("/var/spool/postfix/etc/localtime", os.F_OK) == 1: #If it does, copy the new timezone file into the chroot jail try: os.remove("/var/spool/postfix/etc/localtime") except OSError, (errno, msg): print (_("Error removing /var/spool/postfix/etc/localtime")), msg
try: shutil.copyfile(fromFile, "/var/spool/postfix/etc/localtime") except OSError, (errno, msg): print (_("Error copying timezone (from %s): %s") % (fromFile, msg))
try: os.chmod("/var/spool/postfix/etc/localtime", 0644) except OSError, (errno, msg): print (_("Changing permission of timezone: %s") % (msg))
#Write info to the /etc/sysconfig/clock file f = open("/etc/sysconfig/clock", "w") f.write('# The ZONE parameter is only evaluated by system-config-date.\n') f.write('# The timezone of the system is defined by the contents of /etc/localtime.\n') f.write('ZONE="%s"\n' % timezone) f.write("UTC=%s\n" % utc) f.write("ARC=%s\n" % arc) f.close()
f = open("/etc/sysconfig/clock", "r") tmp = f.read()
def copyFile(self, source, to): f = os.open(source, os.O_RDONLY) t = os.open(to, os.O_RDWR | os.O_TRUNC | os.O_CREAT)
try: count = os.read(f, 262144) total = 0 while (count): os.write(t, count)
total = total + len(count) count = os.read(f, 16384) finally: os.close(f) os.close(t)
def getTimezoneInfo (self): return (self.tz, self.utc, self.arc)
def setTimezoneInfo (self, timezone, asUtc = 0, asArc = 0): self.tz = timezone self.utc = asUtc self.arc = asArc
def __init__(self): self.tz = "America/New_York" self.utc = "false" self.arc = "false" path = '/etc/sysconfig/clock' lines = []
if os.access(path, os.R_OK): fd = open(path, 'r') lines = fd.readlines() fd.close() else: #There's no /etc/sysconfig/clock file, so make one fd = open(path, 'w') fd.close pass try: for line in lines: line = string.strip(line) if len (line) and line[0] == '#': continue try: tokens = string.split(line, "=") if tokens[0] == "ZONE": self.tz = string.replace(tokens[1], '"', '') if tokens[0] == "UTC": self.utc = tokens[1] if tokens[0] == "ARC": if string.lower(tokens[1]) == "true": self.arc = tokens[1] else: self.arc = "false" except: pass except: pass
|