blob: bab421ca4d568bffd8e139c2d585a4f8b6710b7b [file] [log] [blame]
mbligh7c8ea992009-06-22 19:03:08 +00001#!/usr/bin/python
mblighe48bcfb2008-11-11 17:09:44 +00002#
jadmanski79777f62008-09-09 22:31:38 +00003# Script for translating console output (from STDIN) into Autotest
4# warning messages.
mblighe48bcfb2008-11-11 17:09:44 +00005
6import optparse, os, sys
7import monitors_util
8
9PATTERNS_PATH = os.path.join(os.path.dirname(__file__), 'console_patterns')
10
11usage = 'usage: %prog [options] logfile_name warn_fd'
12parser = optparse.OptionParser(usage=usage)
13parser.add_option(
14 '-t', '--log_timestamp_format',
15 default='[%Y-%m-%d %H:%M:%S]',
16 help='Timestamp format for log messages')
17parser.add_option(
18 '-p', '--pattern_paths',
19 default=PATTERNS_PATH,
20 help='Path to alert hook patterns file')
jadmanski79777f62008-09-09 22:31:38 +000021
22
mblighe48bcfb2008-11-11 17:09:44 +000023def main():
24 (options, args) = parser.parse_args()
25 if len(args) != 2:
26 parser.print_help()
27 sys.exit(1)
mblighf4e04152008-02-21 16:05:53 +000028
mblighe48bcfb2008-11-11 17:09:44 +000029 logfile = open(args[0], 'a', 0)
30 warnfile = os.fdopen(int(args[1]), 'w', 0)
31 # For now we aggregate all the alert_hooks.
32 alert_hooks = []
33 for patterns_path in options.pattern_paths.split(','):
34 patterns_file = open(patterns_path)
35 alert_hooks.extend(
36 monitors_util.build_alert_hooks(patterns_file, warnfile))
37
38 monitors_util.process_input(
39 sys.stdin, logfile, options.log_timestamp_format, alert_hooks)
mblighf4e04152008-02-21 16:05:53 +000040
41
mblighe48bcfb2008-11-11 17:09:44 +000042if __name__ == '__main__':
43 main()