equal
deleted
inserted
replaced
1 #!/usr/bin/env python |
|
2 |
|
3 import pvl.args |
|
4 import pvl.hosts |
|
5 import pvl.snmp.traps |
|
6 import pvl.syslog.args |
|
7 |
|
8 import collections |
|
9 import logging; log = logging.getLogger('pvl.switches-traps') |
|
10 import optparse |
|
11 |
|
12 |
|
13 def main (argv) : |
|
14 """ |
|
15 Process SNMP traps from snmptrapd. |
|
16 """ |
|
17 |
|
18 parser = optparse.OptionParser(main.__doc__) |
|
19 parser.add_option_group(pvl.args.parser(parser)) |
|
20 parser.add_option_group(pvl.hosts.optparser(parser)) |
|
21 parser.add_option_group(pvl.syslog.args.parser(parser)) |
|
22 |
|
23 # input |
|
24 options, args = parser.parse_args(argv[1:]) |
|
25 pvl.args.apply(options) |
|
26 |
|
27 # syslog source |
|
28 syslog = pvl.syslog.args.apply(options) |
|
29 |
|
30 # XXX: associate with host data |
|
31 #hosts = pvl.hosts.apply(options, args) |
|
32 |
|
33 # main |
|
34 for item in syslog: |
|
35 host, values = pvl.snmp.traps.parse_snmptrapd_log(item['msg']) |
|
36 |
|
37 print '{}'.format(host) |
|
38 |
|
39 for field, value in values.iteritems(): |
|
40 print '\t{:55} {}'.format(field, value) |
|
41 |
|
42 print |
|
43 |
|
44 return 0 |
|
45 |
|
46 if __name__ == '__main__': |
|
47 pvl.args.main(main) |
|
48 |
|