-better logging.

-Also moved "-type f" argument to end of find command so that it doesn't
 need to do a "stat" on non ogg/mp3 files.
This commit is contained in:
Martin Konecny 2012-05-08 14:57:16 -04:00
parent a895c3a354
commit ad7964899c
2 changed files with 12 additions and 7 deletions

View File

@ -79,7 +79,6 @@ class AirtimeMediaMonitorBootstrap():
twice. This is because some of the tests for new files return result sets that are not twice. This is because some of the tests for new files return result sets that are not
mutually exclusive from each other. mutually exclusive from each other.
""" """
new_and_modified_files = set()
removed_files = set() removed_files = set()
@ -102,15 +101,20 @@ class AirtimeMediaMonitorBootstrap():
if os.path.exists(self.mmc.timestamp_file): if os.path.exists(self.mmc.timestamp_file):
"""find files that have been modified since the last time media-monitor process started.""" """find files that have been modified since the last time media-monitor process started."""
time_diff_sec = time.time() - os.path.getmtime(self.mmc.timestamp_file) time_diff_sec = time.time() - os.path.getmtime(self.mmc.timestamp_file)
command = "find %s -type f -iname '*.ogg' -o -iname '*.mp3' -readable -mmin -%d" % (dir, time_diff_sec/60+1) command = "find %s -iname '*.ogg' -o -iname '*.mp3' -type f -readable -mmin -%d" % (dir, time_diff_sec/60+1)
else: else:
command = "find %s -type f -iname '*.ogg' -o -iname '*.mp3' -readable" % dir command = "find %s -iname '*.ogg' -o -iname '*.mp3' -type f -readable" % dir
self.logger.debug(command) self.logger.debug(command)
stdout = self.mmc.exec_command(command) stdout = self.mmc.exec_command(command)
if stdout is None:
self.logger.error("Unrecoverable error when syncing db to filesystem.")
return
new_files = stdout.splitlines() new_files = stdout.splitlines()
new_and_modified_files = set()
for file_path in new_files: for file_path in new_files:
if len(file_path.strip(" \n")) > 0: if len(file_path.strip(" \n")) > 0:
new_and_modified_files.add(file_path[len(dir):]) new_and_modified_files.add(file_path[len(dir):])
@ -127,9 +131,9 @@ class AirtimeMediaMonitorBootstrap():
new_files_set = all_files_set - db_known_files_set new_files_set = all_files_set - db_known_files_set
modified_files_set = new_and_modified_files - new_files_set modified_files_set = new_and_modified_files - new_files_set
self.logger.info("Deleted files: \n%s\n\n"%deleted_files_set) self.logger.info(u"Deleted files: \n%s\n\n", deleted_files_set)
self.logger.info("New files: \n%s\n\n"%new_files_set) self.logger.info(u"New files: \n%s\n\n", new_files_set)
self.logger.info("Modified files: \n%s\n\n"%modified_files_set) self.logger.info(u"Modified files: \n%s\n\n", modified_files_set)
#"touch" file timestamp #"touch" file timestamp
try: try:

View File

@ -284,12 +284,13 @@ class MediaMonitorCommon:
""" """
stdout = stdout.decode("UTF-8") stdout = stdout.decode("UTF-8")
except Exception, e: except Exception, e:
stdout = None
self.logger.error("Could not decode %s using UTF-8" % stdout) self.logger.error("Could not decode %s using UTF-8" % stdout)
return stdout return stdout
def scan_dir_for_new_files(self, dir): def scan_dir_for_new_files(self, dir):
command = 'find "%s" -type f -iname "*.ogg" -o -iname "*.mp3" -readable' % dir.replace('"', '\\"') command = 'find "%s" -iname "*.ogg" -o -iname "*.mp3" -type f -readable' % dir.replace('"', '\\"')
self.logger.debug(command) self.logger.debug(command)
stdout = self.exec_command(command) stdout = self.exec_command(command)