Source code for Bcfg2.Server.FileMonitor.Pseudo
""" Pseudo provides static monitor support for file alteration events.
That is, it only produces "exists" and "endExist" events and does not
monitor for ongoing changes. """
import os
from Bcfg2.Server.FileMonitor import FileMonitor, Event
[docs]class Pseudo(FileMonitor):
""" File monitor that only produces events on server startup and
doesn't actually monitor for ongoing changes at all. """
#: The ``Pseudo`` monitor should only be used if no other FAM
#: backends are available.
__priority__ = 1
def AddMonitor(self, path, obj, handleID=None):
if handleID is None:
handleID = len(list(self.handles.keys()))
self.events.append(Event(handleID, path, 'exists'))
if os.path.isdir(path):
dirlist = os.listdir(path)
for fname in dirlist:
self.events.append(Event(handleID, fname, 'exists'))
self.events.append(Event(handleID, path, 'endExist'))
if obj is not None:
self.handles[handleID] = obj
return handleID