From d982419b164c08d103ef428007e7c9d06b42397c Mon Sep 17 00:00:00 2001 From: martin Date: Wed, 23 Mar 2011 13:43:11 -0400 Subject: [PATCH] CC-1894: Warn users about time zone differences or clock drift problems on the server -An error msg now appears in pypo log when pypo and server timezones do not match --- application/models/Schedule.php | 1 + pypo/pypofetch.py | 15 +++++++++++++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/application/models/Schedule.php b/application/models/Schedule.php index 21419c4f0..dd3555a26 100644 --- a/application/models/Schedule.php +++ b/application/models/Schedule.php @@ -716,6 +716,7 @@ class Schedule { $result['stream_metadata'] = array(); $result['stream_metadata']['format'] = Application_Model_Preference::GetStreamLabelFormat(); $result['stream_metadata']['station_name'] = Application_Model_Preference::GetStationName(); + $result['server_timezone'] = date_default_timezone_get(); return $result; } diff --git a/pypo/pypofetch.py b/pypo/pypofetch.py index c31bd094a..0313e9567 100644 --- a/pypo/pypofetch.py +++ b/pypo/pypofetch.py @@ -69,13 +69,22 @@ class PypoFetch(Thread): consumer.register_callback(handle_message) consumer.consume() - logger.info("PypoFetch: init complete"); + logger.info("PypoFetch: init complete") def set_export_source(self, export_source): self.export_source = export_source self.cache_dir = config["cache_dir"] + self.export_source + '/' + def check_matching_timezones(self, server_timezone): + logger = logging.getLogger('fetch') + f = open('/etc/timezone', 'r') + pypo_timezone = f.readline().strip(' \t\n\r') + f.close() + if server_timezone != pypo_timezone: + logger.error("Server and pypo timezones do not match. Audio playback may not start when expected!") + logger.error("Server timezone: %s", server_timezone) + logger.error("Pypo timezone: %s", pypo_timezone) """ Process the schedule @@ -88,7 +97,9 @@ class PypoFetch(Thread): def process_schedule(self, schedule_data, export_source): logger = logging.getLogger('fetch') self.schedule = schedule_data["playlists"] - + + self.check_matching_timezones(schedule_data["server_timezone"]) + # Push stream metadata to liquidsoap # TODO: THIS LIQUIDSOAP STUFF NEEDS TO BE MOVED TO PYPO-PUSH!!! stream_metadata = schedule_data['stream_metadata']