bin/pvl.switches-traps
changeset 435 d10e9db3fb24
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bin/pvl.switches-traps	Sat Jan 03 20:18:23 2015 +0200
@@ -0,0 +1,48 @@
+#!/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)
+