def test_is_leader_metric_false(self, aggregator): instance = INSTANCES['main'] c = Vault(Vault.CHECK_NAME, {}, [instance]) config = c.get_config(instance) # Keep a reference for use during mock requests_get = requests.get def mock_requests_get(url, *args, **kwargs): if url == config['api_url'] + '/sys/leader': return MockResponse( {'ha_enabled': False, 'is_self': False, 'leader_address': 'bar', 'leader_cluster_address': ''} ) return requests_get(url, *args, **kwargs) with mock.patch('requests.get', side_effect=mock_requests_get, autospec=True): c.check(instance) aggregator.assert_metric('vault.is_leader', 0)
def test_sys_leader_non_standard_status_codes(self, aggregator): instance = INSTANCES['main'] c = Vault(Vault.CHECK_NAME, {}, [instance]) config = c.get_config(instance) # Keep a reference for use during mock requests_get = requests.get def mock_requests_get(url, *args, **kwargs): if url == config['api_url'] + '/sys/leader': return MockResponse({'errors': ["Vault is sealed"]}, status_code=503) return requests_get(url, *args, **kwargs) with mock.patch('requests.get', side_effect=mock_requests_get, autospec=True): c.check(instance) aggregator.assert_metric('vault.is_leader', count=0)
def test_service_check_connect_ok_all_tags(self, aggregator): instance = INSTANCES['main'] c = Vault(Vault.CHECK_NAME, {}, [instance]) config = c.get_config(instance) # Keep a reference for use during mock requests_get = requests.get def mock_requests_get(url, *args, **kwargs): if url == config['api_url'] + '/sys/leader': return MockResponse( {'ha_enabled': False, 'is_self': True, 'leader_address': '', 'leader_cluster_address': ''} ) elif url == config['api_url'] + '/sys/health': return MockResponse( { 'cluster_id': '9e25ccdb-09ea-8bd8-0521-34cf3ef7a4cc', 'cluster_name': 'vault-cluster-f5f44063', 'initialized': True, 'replication_dr_mode': 'disabled', 'replication_performance_mode': 'disabled', 'sealed': False, 'server_time_utc': 1529357080, 'standby': False, 'version': '0.10.2', } ) return requests_get(url, *args, **kwargs) with mock.patch('requests.get', side_effect=mock_requests_get, autospec=True): c.check(instance) expected_tags = [ 'instance:foobar', 'is_leader:true', 'cluster_name:vault-cluster-f5f44063', 'vault_version:0.10.2', ] aggregator.assert_service_check(Vault.SERVICE_CHECK_CONNECT, status=Vault.OK, tags=expected_tags, count=1)
def test_ha_is_perf_standby(self, aggregator): instance = INSTANCES['main'] c = Vault(Vault.CHECK_NAME, {}, [instance]) config = c.get_config(instance) # Keep a reference for use during mock requests_get = requests.get def mock_requests_get(url, *args, **kwargs): if url == config['api_url'] + '/sys/health': status_code = 200 if kwargs.get( 'params', {}).get('perfstandbyok') else 473 return MockResponse( { 'cluster_id': '9e25ccdb-09ea-8bd8-0521-34cf3ef7a4cc', 'cluster_name': 'vault-cluster-f5f44063', 'initialized': False, 'replication_dr_mode': 'disabled', 'replication_performance_mode': 'disabled', 'sealed': False, 'server_time_utc': 1529357080, 'standby': False, 'performance_standby': True, 'version': '0.10.2', }, status_code, ) return requests_get(url, *args, **kwargs) with mock.patch('requests.get', side_effect=mock_requests_get, autospec=True): c.check(instance) aggregator.assert_metric('vault.is_leader', 0) aggregator.assert_all_metrics_covered()
def test_bad_config(self, aggregator): instance = INSTANCES['invalid'] c = Vault(Vault.CHECK_NAME, {}, [instance]) c.check(instance) aggregator.assert_service_check(Vault.SERVICE_CHECK_CONNECT, count=0)
def test_service_check_connect_ok(self, aggregator): instance = INSTANCES['main'] c = Vault(Vault.CHECK_NAME, {}, [instance]) c.check(instance) aggregator.assert_service_check(Vault.SERVICE_CHECK_CONNECT, status=Vault.OK, count=1)
def test_service_check_initialized_ok(self, aggregator): instance = INSTANCES['main'] c = Vault(Vault.CHECK_NAME, {}, [instance]) c.check(instance) aggregator.assert_service_check(Vault.SERVICE_CHECK_INITIALIZED, status=Vault.OK, count=1)
def test_service_check_unsealed_ok(self, aggregator): instance = INSTANCES['main'] c = Vault(Vault.CHECK_NAME, {}, [instance]) c.check(instance) aggregator.assert_service_check(Vault.SERVICE_CHECK_UNSEALED, status=Vault.OK, count=1)