Skip to content
Snippets Groups Projects
Commit 6ab943d9 authored by Manuela Kuhn's avatar Manuela Kuhn
Browse files

dded monitoredSubfolders in config and added option to specify monitored

file format
parent ba151804
No related branches found
No related tags found
No related merge requests found
......@@ -20,6 +20,12 @@ class defaultConfigSender():
watchFolder = BASE_PATH + "/data/source/"
# Target to move the files into
cleanerTargetPath = BASE_PATH + "/data/target/"
# subfolders of watchFolders to be monitored
monitoredSubfolders = ["commissioning", "current", "local"]
# the formats to be monitored, files in an other format will be be neglected
monitoredFormats = (".tif", ".cbf")
# number of parallel data streams
parallelDataStreams = "1"
......@@ -97,7 +103,7 @@ class defaultConfigReceiver():
# filename used for logging
logfileName = "zmq_receiver.log"
# size of the ring buffer for the live viewer
maxRingBufferSize = 100
maxRingBufferSize = 10
def __init__(self):
......
......@@ -79,11 +79,12 @@ class InotifyDetector():
log = None
def __init__(self, paths):
def __init__(self, paths, monitoredSuffixes):
self.paths = paths
self.log = self.getLogger()
self.fd = binding.init()
self.monitoredSuffixes = monitoredSuffixes
self.add_watch()
......@@ -137,7 +138,12 @@ class InotifyDetector():
if not event.name:
return []
if not event.name.endswith(self.monitoredSuffixes):
# print "not considered", event.name
return []
# print path, event.name, parts
# print event.name
is_dir = ("IN_ISDIR" in parts_array)
is_closed = ("IN_CLOSE_WRITE" in parts_array)
......@@ -217,8 +223,21 @@ class InotifyDetector():
if __name__ == '__main__':
logfilePath = "/tmp/log/inotifyDetector.log"
logfilePath = "/space/projects/live-viewer/logs/inotifyDetector.log"
verbose=True
#enable logging
helperScript.initLogging(logfilePath, verbose)
monitoredFolders = ["/space/projects/live-viewer/data/source/local"]
monitoredSuffixes = (".tif", ".cbf")
eventDetector = InotifyDetector(monitoredFolders, monitoredSuffixes)
while True:
try:
eventList = eventDetector.getNewEvent()
if eventList:
print eventList
except KeyboardInterrupt:
break
......@@ -645,9 +645,10 @@ def argumentParsing():
parser = argparse.ArgumentParser()
parser.add_argument("--logfilePath" , type=str , default=defConf.logfilePath , help="path where logfile will be created (default=" + str(defConf.logfilePath) + ")")
parser.add_argument("--logfileName" , type=str , default=defConf.logfileName , help="filename used for logging (default=" + str(defConf.logfileName) + ")")
parser.add_argument("--verbose" , action="store_true" , help="more verbose output")
parser.add_argument("--verbose" , action="store_true" , help="more verbose output")
parser.add_argument("--watchFolder" , type=str , default=defConf.watchFolder , help="folder you want to monitor for changes")
parser.add_argument("--watchFolder" , type=str , default=defConf.watchFolder , help="folder you want to monitor for changes (default=" + str(defConf.watchFolder) + ")")
parser.add_argument("--monitoredSubfolders", nargs='+', default=defConf.monitoredSubfolders, help="folder you want to monitor for changes (default=" + str(defConf.monitoredSubfolders) +")")
parser.add_argument("--fileEventIp" , type=str , default=defConf.fileEventIp , help="zmq endpoint (IP-address) to send file events to (default=" + str(defConf.fileEventIp) + ")")
parser.add_argument("--fileEventPort" , type=str , default=defConf.fileEventPort , help="zmq endpoint (port) to send file events to (default=" + str(defConf.fileEventPort) + ")")
......@@ -691,6 +692,8 @@ if __name__ == '__main__':
verbose = arguments.verbose
watchFolder = str(arguments.watchFolder)
monitoredSubfolders = arguments.monitoredSubfolders
monitoredSuffixes = (".tif", ".cbf")
fileEventIp = str(arguments.fileEventIp)
fileEventPort = str(arguments.fileEventPort)
......@@ -716,7 +719,7 @@ if __name__ == '__main__':
logging.info("registering zmq global context")
logging.debug("start watcher process...")
watcherProcess = Process(target=DirectoryWatcher, args=(fileEventIp, watchFolder, fileEventPort, zmqContext))
watcherProcess = Process(target=DirectoryWatcher, args=(fileEventIp, watchFolder, fileEventPort, monitoredSubfolders, monitoredSuffixes, zmqContext))
logging.debug("watcher process registered")
watcherProcess.start()
logging.debug("start watcher process...done")
......
......@@ -25,15 +25,17 @@ class DirectoryWatcher():
watchFolder = None
eventDetector = None
monitoredDefaultSubfolders = ["commissioning", "current", "local"]
monitoredSuffixes = (".tif", ".cbf") # has to be a tuple, not a list
log = None
def __init__(self, fileEventIp, watchFolder, fileEventPort, zmqContext = None):
def __init__(self, fileEventIp, watchFolder, fileEventPort, monitoredDefaultSubfolders = None, monitoredSuffixes = None, zmqContext = None):
self.log = self.getLogger()
self.log.debug("DirectoryWatcherHandler: __init__()")
self.log.info("registering zmq context")
if zmqContext:
self.zmqContext = zmqContext
self.externalContext = True
......@@ -45,8 +47,13 @@ class DirectoryWatcher():
self.fileEventIp = fileEventIp
self.fileEventPort = fileEventPort
if monitoredDefaultSubfolders:
self.monitoredDefaultSubfolders = monitoredDefaultSubfolders
self.monitoredSuffixes = monitoredSuffixes
print monitoredSuffixes
monitoredFolders = self.getDirectoryStructure()
self.eventDetector = EventDetector(monitoredFolders)
self.eventDetector = EventDetector(monitoredFolders, self.monitoredSuffixes)
assert isinstance(self.zmqContext, zmq.sugar.context.Context)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment