From d46b3fb7c260ee0afd0cc4cbda4605666576e4a9 Mon Sep 17 00:00:00 2001
From: "Arthur T. Glowacki" <aglowacki@aps.anl.gov>
Date: Wed, 23 Sep 2015 19:10:10 +0000
Subject: [PATCH] Update daq file watchdog to handle rsync directory modified
 events

---
 .../service/impl/dmFileSystemEventHandler.py   | 18 +++++++++++++++---
 1 file changed, 15 insertions(+), 3 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 0c11f0c8..8cf16c85 100755
--- a/src/python/dm/daq_web_service/service/impl/dmFileSystemEventHandler.py
+++ b/src/python/dm/daq_web_service/service/impl/dmFileSystemEventHandler.py
@@ -1,6 +1,7 @@
 #!/usr/bin/env python
 
 import os
+import glob
 
 from watchdog.events import FileSystemEventHandler
 
@@ -20,18 +21,29 @@ class DmFileSystemEventHandler(FileSystemEventHandler):
 
     def on_any_event(self, event):
         FileSystemEventHandler.on_any_event(self, event)
+        self.logger.debug('File system any_event event: %s' % (event.__dict__))
 
     def on_created(self, event):
         FileSystemEventHandler.on_created(self, event)
+        self.logger.debug('File system created event: %s' % (event.__dict__))
+
+    def on_moved(self, event):
+        FileSystemEventHandler.on_moved(self, event)
+        self.logger.debug('File system moved event: %s' % (event.__dict__))
 
     def on_deleted(self, event):
         FileSystemEventHandler.on_deleted(self, event)
+        self.logger.debug('File system deleted event: %s' % (event.__dict__))
 
     def on_modified(self, event):
         FileSystemEventHandler.on_modified(self, event)
-        filePath = event.src_path
-        self.logger.debug('File system modified event: %s' % (event.__dict__))
-        if not event.is_directory:
+        if event.is_directory:
+	    filePath = max(glob.glob(event.src_path+'*.*'), key=os.path.getctime)
+            self.logger.debug('File system directory modified event: %s , latest file: %s' % (event.__dict__, filePath))
+            self.fileSystemObserver.fileUpdated(filePath, self.dataDirectory, self.experiment)
+        else:
+	    filePath = event.src_path
+            self.logger.debug('File system modified event: %s' % (event.__dict__))
             self.fileSystemObserver.fileUpdated(filePath, self.dataDirectory, self.experiment)
         
     def on_moved(self, event):
-- 
GitLab