cc-4105: refactored some error handling code
This commit is contained in:
parent
b604dd0795
commit
7c85acac98
|
@ -120,6 +120,7 @@ class AirtimeMessageReceiver(Loggable):
|
|||
except Exception as e:
|
||||
# TODO : add md_path to problem path or something?
|
||||
self.logger.info("Unknown error when writing metadata to: '%s'" % md_path)
|
||||
self.logger.info( traceback.format_exc() )
|
||||
|
||||
def new_watch(self, msg):
|
||||
self.logger.info("Creating watch for directory: '%s'" % msg['directory'])
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
import logging
|
||||
import abc
|
||||
import traceback
|
||||
from media.monitor.pure import LazyProperty
|
||||
|
||||
logger = logging.getLogger('mediamonitor2')
|
||||
|
@ -12,6 +13,14 @@ class Loggable(object):
|
|||
# TODO : Clean this up
|
||||
if not hasattr(self,"_logger"): self._logger = logging.getLogger('mediamonitor2')
|
||||
return self._logger
|
||||
def unexpected_exception(self,e):
|
||||
self.fatal_exception("'Unexpected' exception has occured:", e)
|
||||
|
||||
def fatal_exception(self, message, e):
|
||||
self.logger.error(message)
|
||||
self.logger.error( str(e) )
|
||||
self.logger.error( traceback.format_exc() )
|
||||
|
||||
|
||||
def get_logger():
|
||||
return logging.getLogger('mediamonitor2')
|
||||
|
|
|
@ -103,9 +103,9 @@ class Metadata(Loggable):
|
|||
song_file = mutagen.File(path, easy=True)
|
||||
for airtime_k, airtime_v in md.iteritems():
|
||||
if airtime_k in airtime2mutagen:
|
||||
song_file[ airtime2mutagen[airtime_k] ] = airtime_v
|
||||
else:
|
||||
song_file[ airtime2mutagen[airtime_k] ] = u""
|
||||
# The unicode cast here is mostly for integers that need to be
|
||||
# strings
|
||||
song_file[ airtime2mutagen[airtime_k] ] = unicode(airtime_v)
|
||||
song_file.save()
|
||||
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@ import copy
|
|||
import traceback
|
||||
|
||||
from media.monitor.handler import ReportHandler
|
||||
from media.monitor.events import NewFile, DeleteFile
|
||||
from media.monitor.events import NewFile, DeleteFile, ModifyFile
|
||||
from media.monitor.log import Loggable
|
||||
from media.monitor.listeners import FileMediator
|
||||
from media.monitor.exceptions import BadSongFile
|
||||
|
@ -106,16 +106,17 @@ class WatchSyncer(ReportHandler,Loggable):
|
|||
def handle(self, sender, event):
|
||||
"""We implement this abstract method from ReportHandler"""
|
||||
# TODO : more types of events need to be handled here
|
||||
if isinstance(event, NewFile):
|
||||
try:
|
||||
self.logger.info("'%s' : New file added: '%s'" % (self.target_path, event.path))
|
||||
self.push_queue(event)
|
||||
if hasattr(event, 'pack'):
|
||||
# We push this event into queue
|
||||
self.logger.info("Received event '%s'. Path: '%s'" % ( "", getattr(event,'path','No path exists') ))
|
||||
try: self.push_queue( event )
|
||||
except BadSongFile as e:
|
||||
self.report_problem_file(event=event, exception=e)
|
||||
elif isinstance(event, DeleteFile):
|
||||
self.logger.info("'%s' : Deleted file: '%s'" % (self.target_path, event.path))
|
||||
self.push_queue(event)
|
||||
else: raise Exception("Unknown event: %s" % str(event))
|
||||
self.logger.info("...")
|
||||
except Exception as e:
|
||||
self.unexpected_exception(e)
|
||||
else:
|
||||
self.logger.info("Received event that cannot be packed. Printing its representation:")
|
||||
self.logger.info( repr(event) )
|
||||
|
||||
def requests_left_count(self): return len(self.__requests)
|
||||
def events_left_count(self): return len(self.__queue)
|
||||
|
|
Loading…
Reference in New Issue