示例#1
0
 def setUp(self):
     """Set up test"""
     DirectoryBasedTest.setUp(self)
     self.receiver = EventRecorder()
     self.message = directory_monitor.messages(self.testDirectory,
                                               self.receiver)
     self.assertFalse(self.receiver.events)
 def setUp(self):
     """Set up test"""
     DirectoryBasedTest.setUp(self)
     self.receiver = EventRecorder()
     self.message = directory_monitor.messages(self.testDirectory,
                                               self.receiver)
     self.assertFalse(self.receiver.events)
示例#3
0
def get(config, messages, freq, pidDir=None, reactor=None):
    """Return a service which monitors processes based on directory contents

    Construct and return a service that, when started, will run processes
    based on the contents of the 'config' directory, restarting them
    if file contents change and stopping them if the file is removed.

    It also listens for restart and restart-all messages on the 'messages'
    directory.

    :param config: string, location of configuration directory
    :param messages: string, location of messages directory
    :param freq: number, frequency to check for new messages and configuration updates
    :param pidDir: {twisted.python.filepath.FilePath} or None, location to keep pid files
    :param reactor: something implementing the interfaces
                       {twisted.internet.interfaces.IReactorTime} and
                       {twisted.internet.interfaces.IReactorProcess} and
    :returns: service, {twisted.application.interfaces.IService}
    """
    ret = taservice.MultiService()
    args = ()
    if reactor is not None:
        args = reactor,
    procmon = procmonlib.ProcessMonitor(*args)
    if pidDir is not None:
        protocols = TransportDirectoryDict(pidDir)
        procmon.protocols = protocols
    procmon.setName('procmon')
    receiver = process_events.Receiver(procmon)
    confcheck = directory_monitor.checker(config, receiver)
    confserv = internet.TimerService(freq, confcheck)
    confserv.setServiceParent(ret)
    messagecheck = directory_monitor.messages(messages, receiver)
    messageserv = internet.TimerService(freq, messagecheck)
    messageserv.setServiceParent(ret)
    procmon.setServiceParent(ret)
    return ret