From 20f1d3918ecbb22a3452c705ee0139a1ebe1265e Mon Sep 17 00:00:00 2001 From: Tim Laszlo Date: Fri, 4 Jun 2010 19:20:21 +0000 Subject: Switching Statistics.py to ThreadedStatistics git-svn-id: https://svn.mcs.anl.gov/repos/bcfg/trunk/bcfg2@5890 ce84e21b-d406-0410-9b95-82705330c041 --- src/lib/Server/Plugins/Statistics.py | 25 ++++++------------------- 1 file changed, 6 insertions(+), 19 deletions(-) (limited to 'src/lib/Server') diff --git a/src/lib/Server/Plugins/Statistics.py b/src/lib/Server/Plugins/Statistics.py index cbd602d8c..74e676243 100644 --- a/src/lib/Server/Plugins/Statistics.py +++ b/src/lib/Server/Plugins/Statistics.py @@ -114,33 +114,20 @@ class StatisticsStore(object): class Statistics(Bcfg2.Server.Plugin.Plugin, - Bcfg2.Server.Plugin.Statistics, + Bcfg2.Server.Plugin.ThreadedStatistics, Bcfg2.Server.Plugin.PullSource): name = 'Statistics' __version__ = '$Id$' def __init__(self, core, datastore): Bcfg2.Server.Plugin.Plugin.__init__(self, core, datastore) - Bcfg2.Server.Plugin.Statistics.__init__(self) + Bcfg2.Server.Plugin.ThreadedStatistics.__init__(self, core, datastore) Bcfg2.Server.Plugin.PullSource.__init__(self) - self.fpath = "%s/etc/statistics.xml" % datastore - # Event from the core signaling an exit - self.terminate = core.terminate - self.work_queue = Queue.Queue() - self.worker = threading.Thread(target=self.process_statistics_loop) - self.worker.start() - - def process_statistics_loop(self): - self.data_file = StatisticsStore(self.fpath) - while not (self.terminate.isSet() and self.work_queue.empty()): - try: - (xdata, hostname) = self.work_queue.get(block=True, timeout=5) - except: - continue - self.data_file.updateStats(xdata, hostname) + fpath = "%s/etc/statistics.xml" % datastore + self.data_file = StatisticsStore(fpath) - def process_statistics(self, client, xdata): - self.work_queue.put((copy.deepcopy(xdata), client.hostname)) + def handle_statistic(self, metadata, data): + self.data_file.updateStats(data, metadata.hostname) def FindCurrent(self, client): rt = self.data_file.element.xpath('//Node[@name="%s"]' % client)[0] -- cgit v1.2.3-1-g7c22