Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/extensions/cpsection/datetime/model.py
diff options
context:
space:
mode:
Diffstat (limited to 'extensions/cpsection/datetime/model.py')
-rw-r--r--extensions/cpsection/datetime/model.py47
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()