Пример #1
0
    def test_should_detect_influxdb_db(self):
        db_health = tdc.MetricsDbCheck()

        # check if influxdb is detected
        self.assertEqual(
            'influxdb',
            db_health._detected_database_type('influxdb.metrics_repository'))
    def test_health_check_failed(self, simport_mock):
        metrics_repo_mock = simport_mock.load.return_value
        metrics_repo_mock.check_status.return_value = (False, 'Error')
        db_health = tdc.MetricsDbCheck()

        result = db_health.health_check()

        self.assertFalse(result.healthy)
        self.assertEqual(result.message, 'Error')
Пример #3
0
    def test_should_pass_cassandra_is_available(self, _):
        messaging_conf = {
            'metrics_driver': 'cassandra.metrics_repository:MetricsRepository'
        }
        cassandra_conf = {
            'cluster_ip_addresses': 'localhost',
            'keyspace': 'test'
        }
        self._conf.config(group='repositories', **messaging_conf)
        self._conf.config(group='cassandra', **cassandra_conf)

        db_health = tdc.MetricsDbCheck()
        result = db_health.health_check()

        self.assertTrue(result.healthy)
Пример #4
0
    def test_should_fail_influxdb_service_unavailable(self, req):
        response_mock = mock.Mock()
        req.side_effect = requests.HTTPError()
        req.return_value = response_mock
        influxdb_conf = {'ip_address': 'localhost', 'port': 8096}
        messaging_conf = {
            'metrics_driver': 'influxdb.metrics_repository:MetricsRepository'
        }
        self._conf.config(group='repositories', **messaging_conf)
        self._conf.config(group='influxdb', **influxdb_conf)

        db_health = tdc.MetricsDbCheck()
        result = db_health.health_check()

        self.assertFalse(result.healthy)
Пример #5
0
    def test_should_fail_influxdb_wrong_port_number(self, req):
        response_mock = mock.Mock()
        response_mock.ok = False
        response_mock.status_code = 404
        req.return_value = response_mock
        influxdb_conf = {'ip_address': 'localhost', 'port': 8099}
        messaging_conf = {
            'metrics_driver': 'influxdb.metrics_repository:MetricsRepository'
        }
        self._conf.config(group='repositories', **messaging_conf)
        self._conf.config(group='influxdb', **influxdb_conf)

        db_health = tdc.MetricsDbCheck()
        result = db_health.health_check()

        self.assertFalse(result.healthy)
        self.assertEqual('Error: 404', result.message)
Пример #6
0
    def test_should_pass_infuxdb_available(self, req):
        response_mock = mock.Mock()
        response_mock.ok = True
        response_mock.status_code = 204
        req.return_value = response_mock
        influxdb_conf = {'ip_address': 'localhost', 'port': 8086}
        messaging_conf = {
            'metrics_driver': 'influxdb.metrics_repository:MetricsRepository'
        }
        self._conf.config(group='repositories', **messaging_conf)
        self._conf.config(group='influxdb', **influxdb_conf)

        db_health = tdc.MetricsDbCheck()
        result = db_health.health_check()

        self.assertTrue(result.healthy)
        self.assertEqual('OK', result.message)
Пример #7
0
    def test_should_fail_cassandra_no_driver(self, try_import):
        messaging_conf = {
            'metrics_driver': 'cassandra.metrics_repository:MetricsRepository'
        }
        cassandra_conf = {
            'cluster_ip_addresses': 'localhost',
            'keyspace': 'test'
        }
        self._conf.config(group='repositories', **messaging_conf)
        self._conf.config(group='cassandra', **cassandra_conf)

        # Simulate cassandra driver not available
        try_import.return_value = None

        db_health = tdc.MetricsDbCheck()
        db_health.cluster = None
        result = db_health.health_check()

        self.assertFalse(result.healthy)
    def test_should_fail_cassandra_unavailable(self, cluster):
        messaging_conf = {
            'metrics_driver': 'cassandra.metrics_repository:MetricsRepository'
        }
        cassandra_conf = {
            'cluster_ip_addresses': 'localhost',
            'keyspace': 'test'
        }
        self._conf.config(group='repositories', **messaging_conf)
        self._conf.config(group='cassandra', **cassandra_conf)

        cas_mock = mock.Mock()
        cluster.side_effect = cl.NoHostAvailable(message='Host unavailable',
                                                 errors='Unavailable')
        cluster.return_value = cas_mock

        db_health = tdc.MetricsDbCheck()
        result = db_health.health_check()

        self.assertFalse(result.healthy)
Пример #9
0
 def __init__(self):
     super(HealthChecks, self).__init__()
     self._kafka_check = kafka_check.KafkaHealthCheck()
     self._alarm_db_check = alarms_db_check.AlarmsDbHealthCheck()
     self._metrics_db_check = metrics_db_check.MetricsDbCheck()
Пример #10
0
 def test_should_raise_exception_during_db_detection(self):
     db_health = tdc.MetricsDbCheck()
     # check exception
     db = 'postgresql.metrics_repository'
     self.assertRaises(exceptions.UnsupportedDriverException,
                       db_health._detected_database_type, db)
Пример #11
0
 def test_should_detect_cassandra_db(self):
     db_health = tdc.MetricsDbCheck()
     # check if cassandra is detected
     self.assertEqual(
         'cassandra',
         db_health._detected_database_type('cassandra.metrics_repository'))