def main(args): if show_help(args): return # show the command list if args['list_commands']: print_commands() # no need to process further return # show the filter list if args['list_filters']: print_filters() # no need to process further return # create a HaproxyLogFile instance and parse the log file log_file = HaproxyLogFile( logfile=args['log'], ) log_file.parse_file() # apply the time frame filter if args['start'] is not None or args['delta'] is not None: start = args['start'] or '' delta = args['delta'] or '' filter_string = 'filters.filter_time_frame("{0}", "{1}")' filter_func = eval(filter_string.format(start, delta)) log_file = log_file.filter(filter_func) # apply all other filters given if args['filters'] is not None: filter_string = 'filters.filter_{0}({1})' for filter_data in args['filters']: arg = '' if filter_data[1] is not None: arg = filter_data[1] arg = "'{0}'".format(arg) filter_func = eval(filter_string.format(filter_data[0], arg)) log_file = log_file.filter(filter_func, reverse=args['negate_filter']) # run all commands command_string = 'log_file.cmd_{0}()' for command in args['commands']: string = 'command: {0}'.format(command) print(string) print('=' * len(string)) result = eval(command_string.format(command)) print(result) return log_file # return the log_file object so that tests can inspect it
def main(args): if show_help(args): return # show the command list if args['list_commands']: print_commands() # no need to process further return # show the filter list if args['list_filters']: print_filters() # no need to process further return # create a HaproxyLogFile instance and parse the log file log_file = HaproxyLogFile(logfile=args['log'], ) log_file.parse_file() # apply the time frame filter if args['start'] is not None or args['delta'] is not None: start = args['start'] or '' delta = args['delta'] or '' filter_string = 'filters.filter_time_frame("{0}", "{1}")' filter_func = eval(filter_string.format(start, delta)) log_file = log_file.filter(filter_func) # apply all other filters given if args['filters'] is not None: filter_string = 'filters.filter_{0}({1})' for filter_data in args['filters']: arg = '' if filter_data[1] is not None: arg = filter_data[1] arg = "'{0}'".format(arg) filter_func = eval(filter_string.format(filter_data[0], arg)) log_file = log_file.filter(filter_func, reverse=args['negate_filter']) # run all commands command_string = 'log_file.cmd_{0}()' for command in args['commands']: string = 'command: {0}'.format(command) print(string) print('=' * len(string)) result = eval(command_string.format(command)) print(result) return log_file # return the log_file object so that tests can inspect it
def test_haproxy_log_file_negate_filter(self): """Check that reversing a filter output works as expected.""" filter_func = filters.filter_ssl() log_file = HaproxyLogFile( logfile='haproxy/tests/files/connection.log', ) log_file.parse_file() # total number of log lines self.assertEqual(log_file.cmd_counter(), 12) # only SSL lines only_ssl = log_file.filter(filter_func) self.assertEqual(only_ssl.cmd_counter(), 7) # non SSL lines non_ssl = log_file.filter(filter_func, reverse=True) self.assertEqual(non_ssl.cmd_counter(), 5) # we did get all lines? self.assertEqual( log_file.cmd_counter(), only_ssl.cmd_counter() + non_ssl.cmd_counter() )
def test_haproxy_log_file_negate_filter(self): """Check that reversing a filter output works as expected.""" filter_func = filters.filter_ssl() log_file = HaproxyLogFile( logfile='haproxy/tests/files/connection.log', ) log_file.parse_file() # total number of log lines self.assertEqual(log_file.cmd_counter(), 12) # only SSL lines only_ssl = log_file.filter(filter_func) self.assertEqual(only_ssl.cmd_counter(), 7) # non SSL lines non_ssl = log_file.filter(filter_func, reverse=True) self.assertEqual(non_ssl.cmd_counter(), 5) # we did get all lines? self.assertEqual( log_file.cmd_counter(), only_ssl.cmd_counter() + non_ssl.cmd_counter() )