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 = Bootstrapper( sdb, self.manager.watch_signal() )
|
||||||
bs.flush_watch( directory=directory, last_ran=self.cfg.last_ran() )
|
bs.flush_watch( directory=directory, last_ran=self.cfg.last_ran() )
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
self.logger.info( "Exception bootstrapping: (dir,id)=(%s,%s)" %
|
self.fatal_exception("Exception bootstrapping: (dir,id)=(%s,%s)" %
|
||||||
(directory, directory_id) )
|
(directory, directory_id), e)
|
||||||
self.logger.info( str(e) )
|
raise DirectoryIsNotListed(directory, cause=e)
|
||||||
self.logger.error( traceback.format_exc() )
|
|
||||||
raise DirectoryIsNotListed(directory)
|
|
||||||
|
|
||||||
def md_update(self, msg):
|
def md_update(self, msg):
|
||||||
self.logger.info("Updating metadata for: '%s'" %
|
self.logger.info("Updating metadata for: '%s'" %
|
||||||
msg['MDATA_KEY_FILEPATH'])
|
msg['MDATA_KEY_FILEPATH'])
|
||||||
md_path = msg['MDATA_KEY_FILEPATH']
|
md_path = msg['MDATA_KEY_FILEPATH']
|
||||||
try:
|
try: Metadata.write_unsafe(path=md_path, md=msg)
|
||||||
Metadata.write_unsafe(path=md_path, md=msg)
|
|
||||||
except BadSongFile as e:
|
except BadSongFile as e:
|
||||||
self.logger.info("Cannot find metadata file: '%s'" % e.path)
|
self.logger.info("Cannot find metadata file: '%s'" % e.path)
|
||||||
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'" %
|
self.fatal_exception("Unknown error when writing metadata to: '%s'"
|
||||||
md_path)
|
% md_path, e)
|
||||||
self.logger.info( traceback.format_exc() )
|
|
||||||
|
|
||||||
def new_watch(self, msg):
|
def new_watch(self, msg):
|
||||||
self.logger.info("Creating watch for directory: '%s'" %
|
self.logger.info("Creating watch for directory: '%s'" %
|
||||||
|
@ -128,14 +124,10 @@ class AirtimeMessageReceiver(Loggable):
|
||||||
if not os.path.exists(msg['directory']):
|
if not os.path.exists(msg['directory']):
|
||||||
try: os.makedirs(msg['directory'])
|
try: os.makedirs(msg['directory'])
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
self.logger.info("Failed to create watched dir '%s'" %
|
self.fatal_exception("Failed to create watched dir '%s'" %
|
||||||
msg['directory'])
|
msg['directory'],e)
|
||||||
self.logger.info(str(e))
|
|
||||||
else: self.new_watch(msg)
|
else: self.new_watch(msg)
|
||||||
else:
|
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.__request_now_bootstrap( directory=msg['directory'] )
|
||||||
self.manager.add_watch_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
|
# system. These are the files marked for deletions
|
||||||
for to_delete in db_songs.difference(songs):
|
for to_delete in db_songs.difference(songs):
|
||||||
dispatcher.send(signal=self.watch_signal, sender=self,
|
dispatcher.send(signal=self.watch_signal, sender=self,
|
||||||
event=DeleteFile(to_delete))
|
event=DeleteFile(to_delete))
|
||||||
deleted += 1
|
deleted += 1
|
||||||
for to_add in songs.difference(db_songs):
|
for to_add in songs.difference(db_songs):
|
||||||
dispatcher.send(signal=self.watch_signal, sender=self,
|
dispatcher.send(signal=self.watch_signal, sender=self,
|
||||||
event=NewFile(to_add))
|
event=NewFile(to_add))
|
||||||
added += 1
|
added += 1
|
||||||
self.logger.info( "Flushed watch directory (%s). \
|
self.logger.info( "Flushed watch directory (%s). \
|
||||||
(added, modified, deleted) = (%d, %d, %d)"
|
(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
|
def __str__(self): return "Failed to create touch file '%s'" % self.path
|
||||||
|
|
||||||
class DirectoryIsNotListed(Exception):
|
class DirectoryIsNotListed(Exception):
|
||||||
def __init__(self,dir_id):
|
def __init__(self,dir_id,cause=None):
|
||||||
self.dir_id = dir_id
|
self.dir_id = dir_id
|
||||||
|
self.cause = cause
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return "%d was not listed as a directory in the database" % self.dir_id
|
return "%d was not listed as a directory in the database" % self.dir_id
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue