cc-4105: removed code duplication
This commit is contained in:
parent
1921ee6d59
commit
95d33b9248
|
@ -102,25 +102,21 @@ class AirtimeMessageReceiver(Loggable):
|
|||
bs = Bootstrapper( sdb, self.manager.watch_signal() )
|
||||
bs.flush_watch( directory=directory, last_ran=self.cfg.last_ran() )
|
||||
except Exception as e:
|
||||
self.logger.info( "Exception bootstrapping: (dir,id)=(%s,%s)" %
|
||||
(directory, directory_id) )
|
||||
self.logger.info( str(e) )
|
||||
self.logger.error( traceback.format_exc() )
|
||||
raise DirectoryIsNotListed(directory)
|
||||
self.fatal_exception("Exception bootstrapping: (dir,id)=(%s,%s)" %
|
||||
(directory, directory_id), e)
|
||||
raise DirectoryIsNotListed(directory, cause=e)
|
||||
|
||||
def md_update(self, msg):
|
||||
self.logger.info("Updating metadata for: '%s'" %
|
||||
msg['MDATA_KEY_FILEPATH'])
|
||||
md_path = msg['MDATA_KEY_FILEPATH']
|
||||
try:
|
||||
Metadata.write_unsafe(path=md_path, md=msg)
|
||||
try: Metadata.write_unsafe(path=md_path, md=msg)
|
||||
except BadSongFile as e:
|
||||
self.logger.info("Cannot find metadata file: '%s'" % e.path)
|
||||
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() )
|
||||
self.fatal_exception("Unknown error when writing metadata to: '%s'"
|
||||
% md_path, e)
|
||||
|
||||
def new_watch(self, msg):
|
||||
self.logger.info("Creating watch for directory: '%s'" %
|
||||
|
@ -128,14 +124,10 @@ class AirtimeMessageReceiver(Loggable):
|
|||
if not os.path.exists(msg['directory']):
|
||||
try: os.makedirs(msg['directory'])
|
||||
except Exception as e:
|
||||
self.logger.info("Failed to create watched dir '%s'" %
|
||||
msg['directory'])
|
||||
self.logger.info(str(e))
|
||||
self.fatal_exception("Failed to create watched dir '%s'" %
|
||||
msg['directory'],e)
|
||||
else: self.new_watch(msg)
|
||||
else:
|
||||
# TODO : Refactor this; breaks encapsulation.
|
||||
# TODO : Should not flush events, should be smarted and bootstrap
|
||||
#self.manager.watch_listener.flush_events(msg['directory'])
|
||||
self.__request_now_bootstrap( directory=msg['directory'] )
|
||||
self.manager.add_watch_directory(msg['directory'])
|
||||
|
||||
|
|
|
@ -50,11 +50,11 @@ class Bootstrapper(Loggable):
|
|||
# system. These are the files marked for deletions
|
||||
for to_delete in db_songs.difference(songs):
|
||||
dispatcher.send(signal=self.watch_signal, sender=self,
|
||||
event=DeleteFile(to_delete))
|
||||
event=DeleteFile(to_delete))
|
||||
deleted += 1
|
||||
for to_add in songs.difference(db_songs):
|
||||
dispatcher.send(signal=self.watch_signal, sender=self,
|
||||
event=NewFile(to_add))
|
||||
event=NewFile(to_add))
|
||||
added += 1
|
||||
self.logger.info( "Flushed watch directory (%s). \
|
||||
(added, modified, deleted) = (%d, %d, %d)"
|
||||
|
|
|
@ -29,8 +29,9 @@ class CouldNotCreateIndexFile(Exception):
|
|||
def __str__(self): return "Failed to create touch file '%s'" % self.path
|
||||
|
||||
class DirectoryIsNotListed(Exception):
|
||||
def __init__(self,dir_id):
|
||||
def __init__(self,dir_id,cause=None):
|
||||
self.dir_id = dir_id
|
||||
self.cause = cause
|
||||
def __str__(self):
|
||||
return "%d was not listed as a directory in the database" % self.dir_id
|
||||
|
||||
|
|
Loading…
Reference in New Issue