def test_replace_pipe_symbol(self): """replace pipe symbol """ initial_data = { "logformat": self.logformat_syslog, "pattern_list": ["ERROR"], "critical_pattern_list": [], "negpattern_list": [], "critical_negpattern_list": [], "case_insensitive": False, "warning": 1, "critical": 0, "nodiff_warn": False, "nodiff_crit": False, "trace_inode": False, "multiline": False, "scantime": 86400, "expiration": 691200 } log = LogChecker(initial_data) f = open(self.logfile, 'a') f.write("Dec | 5 12:34:56 hostname noop: NOOP\n") f.write("Dec | 5 12:34:56 hostname test: ERROR\n") f.write("Dec | 5 12:34:57 hostname noop: NOOP\n") f.flush() f.close() log.check_log(self.logfile, self.seekfile) self.assertEqual(log.get_state(), LogChecker.STATE_WARNING) self.assertEqual(log.get_message(), 'WARNING: Found 1 lines (limit=1/0): Dec (pipe) 5 12:34:56 hostname test: ERROR at %s' % self.logfile)
def test_format(self): """--format option """ initial_data = { "logformat": "^(\[%a %b %d %T %Y\] \[\S+\]) (.*)$", "pattern_list": ["ERROR"], "critical_pattern_list": [], "negpattern_list": [], "critical_negpattern_list": [], "case_insensitive": False, "warning": 1, "critical": 0, "nodiff_warn": False, "nodiff_crit": False, "trace_inode": False, "multiline": False, "scantime": 86400, "expiration": 691200 } log = LogChecker(initial_data) f = open(self.logfile, 'a') f.write("[Thu Dec 05 12:34:56 2013] [error] NOOP\n") f.write("[Thu Dec 05 12:34:56 2013] [error] ERROR\n") f.write("[Thu Dec 05 12:34:57 2013] [error] NOOP\n") f.flush() f.close() log.check_log(self.logfile, self.seekfile) self.assertEqual(log.get_state(), LogChecker.STATE_WARNING) self.assertEqual(log.get_message(), "WARNING: Found 1 lines (limit=1/0): [Thu Dec 05 12:34:56 2013] [error] ERROR at %s" % self.logfile)
def test_criticalpattern_with_case_sensitive(self): """--criticalpattern and --case-insensitive options """ initial_data = { "logformat": self.logformat_syslog, "pattern_list": [], "critical_pattern_list": ["error"], "negpattern_list": [], "critical_negpattern_list": [], "case_insensitive": True, "warning": 1, "critical": 0, "nodiff_warn": False, "nodiff_crit": False, "trace_inode": False, "multiline": False, "scantime": 86400, "expiration": 691200 } log = LogChecker(initial_data) f = open(self.logfile, 'a') f.write("Dec 5 12:34:56 hostname noop: NOOP\n") f.write("Dec 5 12:34:56 hostname test: ERROR\n") f.write("Dec 5 12:34:57 hostname noop: NOOP\n") f.flush() f.close() log.check_log(self.logfile, self.seekfile) self.assertEqual(log.get_state(), LogChecker.STATE_CRITICAL) self.assertEqual(log.get_message(), 'CRITICAL: Critical Found 1 lines: Dec 5 12:34:56 hostname test: ERROR at %s' % self.logfile)
def test_negpattern_with_multiple_lines(self): """--negpattern options with multiple lines """ initial_data = { "logformat": self.logformat_syslog, "pattern_list": ["ERROR"], "critical_pattern_list": [], "negpattern_list": ["IGNORE"], "critical_negpattern_list": [], "case_insensitive": False, "warning": 1, "critical": 0, "nodiff_warn": False, "nodiff_crit": False, "trace_inode": False, "multiline": True, "scantime": 86400, "expiration": 691200 } log = LogChecker(initial_data) f = open(self.logfile, 'a') f.write("Dec 5 12:34:56 hostname test: ERROR\n") f.write("Dec 5 12:34:56 hostname test: ERROR IGNORE\n") f.flush() f.close() log.check_log(self.logfile, self.seekfile) self.assertEqual(log.get_state(), LogChecker.STATE_OK) self.assertEqual(log.get_message(), 'OK - No matches found.')
def test_seekfile_tag(self): """--seekfile-tag """ initial_data = { "logformat": self.logformat_syslog, "pattern_list": ["ERROR"], "critical_pattern_list": [], "negpattern_list": [], "critical_negpattern_list": [], "case_insensitive": False, "warning": 1, "critical": 0, "nodiff_warn": False, "nodiff_crit": False, "trace_inode": False, "multiline": False, "scantime": 86400, "expiration": 691200 } log = LogChecker(initial_data) # create new logfiles f = open(self.logfile, 'a') f.write("Dec 5 12:34:51 hostname noop: NOOP\n") f.write("Dec 5 12:34:51 hostname test: ERROR\n") f.write("Dec 5 12:34:52 hostname noop: NOOP\n") f.flush() f.close() f = open(self.logfile1, 'a') f.write("Dec 5 12:34:56 hostname noop: NOOP\n") f.write("Dec 5 12:34:56 hostname test: ERROR\n") f.write("Dec 5 12:34:57 hostname noop: NOOP\n") f.flush() f.close() f = open(self.logfile2, 'a') f.write("Dec 5 12:34:58 hostname noop: NOOP\n") f.write("Dec 5 12:34:59 hostname noop: NOOP\n") f.flush() f.close() # create seekfile of logfile seekfile_1 = LogChecker.get_seekfile(self.logfile_pattern, self.seekdir, self.logfile, seekfile_tag=self.tag1) seekfile_2 = LogChecker.get_seekfile(self.logfile_pattern, self.seekdir, self.logfile, seekfile_tag=self.tag1) seekfile_3 = LogChecker.get_seekfile(self.logfile_pattern, self.seekdir, self.logfile, seekfile_tag=self.tag2) log.check_log(self.logfile, seekfile_3) log.clear_state() log.check_log_multi(self.logfile_pattern, self.seekdir, seekfile_tag=self.tag2) self.assertEqual(log.get_state(), LogChecker.STATE_WARNING) self.assertEqual(log.get_message(), 'WARNING: Found 1 lines (limit=1/0): Dec 5 12:34:56 hostname test: ERROR at %s' % self.logfile1) self.assertEqual(seekfile_1, seekfile_2) self.assertNotEquals(seekfile_1, seekfile_3) self.assertTrue(seekfile_1.find(self.tag1)) self.assertTrue(os.path.exists(seekfile_3))