diff options
Diffstat (limited to 'extensions/cpsection/datetime/model.py')
-rw-r--r-- | extensions/cpsection/datetime/model.py | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/extensions/cpsection/datetime/model.py b/extensions/cpsection/datetime/model.py index 84e1259..486bd6f 100644 --- a/extensions/cpsection/datetime/model.py +++ b/extensions/cpsection/datetime/model.py @@ -21,10 +21,16 @@ # import os +import logging + from gettext import gettext as _ import gconf _zone_tab = '/usr/share/zoneinfo/zone.tab' +NTPDATE_PATH = '/etc/rc.d/init.d/ntpdate' +NTP_SERVER_CONFIG_FILENAME = '/etc/ntp/step-tickers' + +_logger = logging.getLogger('ControlPanel - TimeZone') def _initialize(): @@ -92,5 +98,46 @@ def set_timezone(timezone): raise ValueError(_('Error timezone does not exist.')) return 1 + +def is_ntp_servers_config_feature_available(): + return os.path.exists(NTPDATE_PATH) + + +def get_ntp_servers(): + servers = [] + + # If the file does not exist, return. + if not os.path.exists(NTP_SERVER_CONFIG_FILENAME): + return servers + + f = open(NTP_SERVER_CONFIG_FILENAME, 'r') + for server in f.readlines(): + servers.append(server.rstrip('\n')) + f.close() + + return servers + + +def set_ntp_servers(servers): + + # First remove the old ssid-file, if it exists. + if os.path.exists(NTP_SERVER_CONFIG_FILENAME): + try: + os.remove(NTP_SERVER_CONFIG_FILENAME) + except: + _logger.exception('Error removing file.') + return + + # Do nothing and return, if the values-list is empty + if len(servers) == 0: + return + + # If we reach here, we have a non-empty ssid-values-list. + f = open(NTP_SERVER_CONFIG_FILENAME, 'w') + for server in servers: + if len(server) > 0: + f.write(server + '\n') + f.close() + # inilialize the docstrings for the timezone _initialize() |