From 5bc170ba31cdebb60e5b43409567bff5a3986927 Mon Sep 17 00:00:00 2001 From: Rudi Grinberg Date: Thu, 9 Aug 2012 12:13:44 -0400 Subject: [PATCH] cc-4105: fixed bug where api client wasn't being initialized right by replaygain updater. updated apiclient to better detect such bad usage --- python_apps/api_clients/api_client.py | 4 ++++ .../media-monitor2/media/update/replaygainupdater.py | 10 ++++------ python_apps/media-monitor2/mm2.py | 4 ++-- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/python_apps/api_clients/api_client.py b/python_apps/api_clients/api_client.py index 5b8b93809..03bba94f2 100644 --- a/python_apps/api_clients/api_client.py +++ b/python_apps/api_clients/api_client.py @@ -52,6 +52,9 @@ class AirtimeApiClient(): @staticmethod def create_right_config(log=None,config_path=None): if config_path: AirtimeApiClient.default_config = config_path + elif (not AirtimeApiClient.default_config): + raise ValueError("Cannot slip config_path attribute when it has \ + never been passed yet") return AirtimeApiClient( logger=None, config_path=AirtimeApiClient.default_config ) def __init__(self, logger=None,config_path='/etc/airtime/api_client.cfg'): @@ -465,6 +468,7 @@ class AirtimeApiClient(): except Exception, e: response = None logger.error("Exception: %s", e) + self.logger.debug(traceback.format_exc()) return response diff --git a/python_apps/media-monitor2/media/update/replaygainupdater.py b/python_apps/media-monitor2/media/update/replaygainupdater.py index a494d907a..a92cbb357 100644 --- a/python_apps/media-monitor2/media/update/replaygainupdater.py +++ b/python_apps/media-monitor2/media/update/replaygainupdater.py @@ -4,7 +4,6 @@ import traceback import os import time -from api_clients import api_client from media.update import replaygain from media.monitor.log import Loggable @@ -23,17 +22,16 @@ class ReplayGainUpdater(Thread, Loggable): """ @staticmethod - def start_reply_gain(): - me = ReplayGainUpdater() + def start_reply_gain(apc): + me = ReplayGainUpdater(apc) me.daemon = True me.start() - def __init__(self): + def __init__(self,apc): Thread.__init__(self) - self.api_client = api_client.AirtimeApiClient.create_right_config() + self.api_client = apc def main(self): - raw_response = self.api_client.list_all_watched_dirs() if 'dirs' not in raw_response: self.logger.error("Could not get a list of watched directories \ diff --git a/python_apps/media-monitor2/mm2.py b/python_apps/media-monitor2/mm2.py index aa6e7e6ce..d02539ccb 100644 --- a/python_apps/media-monitor2/mm2.py +++ b/python_apps/media-monitor2/mm2.py @@ -57,11 +57,11 @@ watch_syncer = WatchSyncer(signal='watch', chunking_number=config['chunking_number'], timeout=config['request_max_wait']) -ReplayGainUpdater.start_reply_gain() - apiclient = apc.AirtimeApiClient.create_right_config(log=log, config_path=api_client_config) +ReplayGainUpdater.start_reply_gain(apiclient) + # TODO : Need to do setup_media_monitor call somewhere around here to get # import/organize dirs sdb = AirtimeDB(apiclient)