From cb8b6e95e010ae322cb6be9b79e1a89009f45948 Mon Sep 17 00:00:00 2001 From: "Chris St. Pierre" Date: Mon, 5 Aug 2013 14:50:23 -0400 Subject: Multiprocessing: proxy RecvProbeData calls This proxies RecvProbeData calls to child cores to expire the probe cache. The probe data itself is not relayed, just the fact that there was probe data received from a given client. Fixes #129. --- src/lib/Bcfg2/Server/MultiprocessingCore.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'src/lib/Bcfg2/Server/MultiprocessingCore.py') diff --git a/src/lib/Bcfg2/Server/MultiprocessingCore.py b/src/lib/Bcfg2/Server/MultiprocessingCore.py index 4c304d28c..8031c69d4 100644 --- a/src/lib/Bcfg2/Server/MultiprocessingCore.py +++ b/src/lib/Bcfg2/Server/MultiprocessingCore.py @@ -290,6 +290,13 @@ class ChildCore(BaseCore): """ Expire the metadata cache for a client """ self.metadata_cache.expire(client) + @exposed + def RecvProbeData(self, address, _): + """ Expire the probe cache for a client """ + if 'Probes' in self.plugins: + client = self.resolve_client(address, metadata=False) + self.plugins['Probes'].load_data(client) + @exposed def GetConfig(self, client): """ Render the configuration for a client """ @@ -388,6 +395,14 @@ class Core(BuiltinCore): self.metadata_cache.set_debug(debug) return BuiltinCore.set_debug(self, address, debug) + @exposed + def RecvProbeData(self, address, probedata): + rv = BuiltinCore.RecvProbeData(self, address, probedata) + # we don't want the children to actually process probe data, + # so we don't send the data, just the fact that we got some. + self.rpc_q.publish("RecvProbeData", args=[address, None]) + return rv + @exposed def GetConfig(self, address): client = self.resolve_client(address)[0] -- cgit v1.2.3-1-g7c22