summaryrefslogtreecommitdiffstats
path: root/src/lib/Bcfg2/Server/FileMonitor/Pseudo.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/Bcfg2/Server/FileMonitor/Pseudo.py')
-rw-r--r--src/lib/Bcfg2/Server/FileMonitor/Pseudo.py17
1 files changed, 7 insertions, 10 deletions
diff --git a/src/lib/Bcfg2/Server/FileMonitor/Pseudo.py b/src/lib/Bcfg2/Server/FileMonitor/Pseudo.py
index 4c2d90250..baff871d0 100644
--- a/src/lib/Bcfg2/Server/FileMonitor/Pseudo.py
+++ b/src/lib/Bcfg2/Server/FileMonitor/Pseudo.py
@@ -10,21 +10,18 @@ logger = logging.getLogger(__name__)
class Pseudo(FileMonitor):
__priority__ = 99
- def AddMonitor(self, path, obj):
+ def AddMonitor(self, path, obj, handleID=None):
"""add a monitor to path, installing a callback to obj.HandleEvent"""
- handleID = len(list(self.handles.keys()))
+ if handleID is None:
+ handleID = len(list(self.handles.keys()))
mode = os.stat(path)[stat.ST_MODE]
- handle = Event(handleID, path, 'exists')
+ self.events.append(Event(handleID, path, 'exists'))
if stat.S_ISDIR(mode):
dirList = os.listdir(path)
- self.pending_events.append(handle)
for includedFile in dirList:
- self.pending_events.append(Event(handleID,
- includedFile,
- 'exists'))
- self.pending_events.append(Event(handleID, path, 'endExist'))
- else:
- self.pending_events.append(Event(handleID, path, 'exists'))
+ self.events.append(Event(handleID, includedFile, 'exists'))
+ self.events.append(Event(handleID, path, 'endExist'))
+
if obj != None:
self.handles[handleID] = obj
return handleID