From d90608064b4376ec501d44f71ba4bcf9708dd469 Mon Sep 17 00:00:00 2001 From: Sinisa Veseli <sveseli@aps.anl.gov> Date: Fri, 18 Mar 2016 18:24:31 +0000 Subject: [PATCH] fixed issue with directories being discovered as files --- .../service/impl/dmFileSystemEventHandler.py | 10 +++++++--- .../daq_web_service/service/impl/fileSystemObserver.py | 2 +- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/python/dm/daq_web_service/service/impl/dmFileSystemEventHandler.py b/src/python/dm/daq_web_service/service/impl/dmFileSystemEventHandler.py index f0dfa13b..973efd4f 100755 --- a/src/python/dm/daq_web_service/service/impl/dmFileSystemEventHandler.py +++ b/src/python/dm/daq_web_service/service/impl/dmFileSystemEventHandler.py @@ -46,9 +46,13 @@ class DmFileSystemEventHandler(FileSystemEventHandler): files = glob.glob(os.path.join(event.src_path,'*')) self.logger.debug('Processing directory event: %s , src path: %s' % (event.__dict__, event.src_path)) if len(files) > 0: - filePath = max(files, key=os.path.getctime) - self.logger.debug('Latest file: %s' % (filePath)) - self.fileSystemObserver.fileUpdated(filePath, self.dataDirectory, self.experiment) + sortedFiles = sorted(files, key=os.path.getctime, reverse=True) + for filePath in sortedFiles: + if os.path.isfile(filePath): + self.logger.debug('Latest file: %s' % (filePath)) + self.fileSystemObserver.fileUpdated(filePath, self.dataDirectory, self.experiment) + return + self.logger.debug('No new files found in %s' % (event.src_path)) except Exception, ex: self.logger.error('Exception occured when searching for file in directory %s: %s' % (event.__dict__, ex)) else: diff --git a/src/python/dm/daq_web_service/service/impl/fileSystemObserver.py b/src/python/dm/daq_web_service/service/impl/fileSystemObserver.py index 1d907ce9..b3900e5a 100755 --- a/src/python/dm/daq_web_service/service/impl/fileSystemObserver.py +++ b/src/python/dm/daq_web_service/service/impl/fileSystemObserver.py @@ -110,7 +110,7 @@ class FileSystemObserver(threading.Thread,Singleton): observedFile['statusMonitor'] = daqInfo observedFile.setLastUpdateTimeToNow() self.observedFileMap[filePath] = observedFile - self.logger.debug('Observed file updated: %s', observedFile) + self.logger.debug('Observed file updated: %s', filePath) @ThreadingUtility.synchronize def checkObservedFilesForProcessing(self): -- GitLab