bin/pvl.switches-traps
changeset 438 d45fc43c6073
parent 437 5100b359906c
child 439 6a8ea0d363c1
equal deleted inserted replaced
437:5100b359906c 438:d45fc43c6073
     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