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