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