1
2
3
4
5
6
7
8
9
10
11 from pprint import pformat
12
13 from Products.DataCollector.plugins.CollectorPlugin import CommandPlugin
14
15
17 """
18 Base class for Linux and AIX command plugins for parsing ps command output
19 and modeling processes.
20 """
21
22 compname = "os"
23 relname = "processes"
24 modname = "Products.ZenModel.OSProcess"
25 classname = "createFromObjectMap"
26
28 """
29 Filter out any unwanted lines. The base implementation returns all
30 the lines.
31 """
32 return lines
33
34 - def process(self, device, results, log):
35 log.info('Processing %s for device %s', self.name(), device.id)
36 if not results:
37 log.error("Unable to get data for %s -- skipping model",
38 device.id)
39 return None
40
41 relMap = self.relMap()
42 for line in self._filterLines(results.splitlines()):
43 words = line.split()
44
45 relMap.append(self.objectMap({
46 "procName": words[0],
47 "parameters": " ".join(words[1:])}))
48
49 log.debug("First three modeled processes:\n%s" %
50 pformat(relMap.maps[:3]))
51
52 return relMap
53