Files
monasca-agent/tests/test_crash.py
Juerg Haefliger 3dade6deb2 Check for local crash dumps
Add a check that monitors crash dumps. The specified crash directory
is scanned for sub-directories named 'YYYYmmddHHMM' which contain the
dump files. The 'dump_count' metric is the number of sub-directories
(i.e., the number of crash dumps present) and the 'value_meta' dict
contains the date-/timestamp of the most recent crash.

Implements: blueprint check-for-crashes

Change-Id: I20b584c68644ff2e76baabab78e965e682759aa0
2015-06-26 13:16:06 +02:00

56 lines
1.4 KiB
Python

import os
import shutil
import unittest
import uuid
from common import get_check
class TestCrash(unittest.TestCase):
def setUp(self):
self.crash_dir = '/tmp/crash-test-%s' % str(uuid.uuid4())
os.mkdir(self.crash_dir)
def tearDown(self):
shutil.rmtree(self.crash_dir)
def test_checks(self):
config = """
init_config:
crash_dir: %s
instances:
- name: crash_stats
""" % self.crash_dir
(check, instances) = get_check('crash', config)
# Baseline check
check.check(instances[0])
metrics = check.get_metrics()
self.assertEqual(metrics[0].value, 0)
self.assertEqual(metrics[0].value_meta['latest'], '')
# Add a crash and re-check
os.mkdir(os.path.join(self.crash_dir,'201504141011'))
check.check(instances[0])
metrics = check.get_metrics()
self.assertEqual(metrics[0].value, 1)
self.assertEqual(metrics[0].value_meta['latest'],
'2015-04-14 10:11:00')
# Add a second crash and re-check
os.mkdir(os.path.join(self.crash_dir,'201505222303'))
check.check(instances[0])
metrics = check.get_metrics()
self.assertEqual(metrics[0].value, 2)
self.assertEqual(metrics[0].value_meta['latest'],
'2015-05-22 23:03:00')
if __name__ == "__main__":
unittest.main()