Current Path : /usr/lib/python2.7/dist-packages/landscape/monitor/ |
Current File : //usr/lib/python2.7/dist-packages/landscape/monitor/monitor.py |
"""The Landscape monitor plugin system.""" import os from landscape.broker.client import BrokerClient class Monitor(BrokerClient): """The central point of integration in the Landscape monitor.""" name = "monitor" def __init__(self, reactor, config, persist, persist_filename=None, step_size=5 * 60): super(Monitor, self).__init__(reactor) self.reactor = reactor self.config = config self.persist = persist self.persist_filename = persist_filename if persist_filename and os.path.exists(persist_filename): self.persist.load(persist_filename) self._plugins = [] self.step_size = step_size self.reactor.call_every(self.config.flush_interval, self.flush) def flush(self): """Flush data to disk.""" if self.persist_filename: self.persist.save(self.persist_filename) def exchange(self): """Call C{exchange} on all plugins.""" super(Monitor, self).exchange() self.flush()