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