#!/usr/bin/env python
import pvl.args
import pvl.hosts
import pvl.snmp.traps
import pvl.syslog.args
import collections
import logging; log = logging.getLogger('pvl.switches-traps')
import optparse
def main (argv) :
"""
Process SNMP traps from snmptrapd.
"""
parser = optparse.OptionParser(main.__doc__)
parser.add_option_group(pvl.args.parser(parser))
parser.add_option_group(pvl.hosts.optparser(parser))
parser.add_option_group(pvl.syslog.args.parser(parser))
# input
options, args = parser.parse_args(argv[1:])
pvl.args.apply(options)
# syslog source
syslog = pvl.syslog.args.apply(options)
# XXX: associate with host data
#hosts = pvl.hosts.apply(options, args)
# main
for item in syslog:
host, values = pvl.snmp.traps.parse_snmptrapd_log(item['msg'])
print '{}'.format(host)
for field, value in values.iteritems():
print '\t{:55} {}'.format(field, value)
print
return 0
if __name__ == '__main__':
pvl.args.main(main)