Skip to content

Commit 0a6c5d9

Browse files
author
Alexander Maretskiy
committed
Fix issue #14. Watcher got exception if starting with dead Elastic
1 parent 726671b commit 0a6c5d9

File tree

2 files changed

+8
-11
lines changed

2 files changed

+8
-11
lines changed

availability/storage.py

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -29,19 +29,18 @@ def get_elasticsearch(check_availability=False):
2929
"""Return Elasticsearch instance.
3030
3131
:param check_availability: check if nodes are available
32-
:returns: Elasticsearch or None on failure
33-
:rtype: elasticsearch.Elasticsearch
32+
:returns: elasticsearch.Elasticsearch
33+
:returns: None on failure
3434
"""
3535
nodes = config.get_config()["backend"]["connection"]
3636
try:
3737
es = elasticsearch.Elasticsearch(nodes)
3838
if check_availability:
3939
es.info()
4040
except Exception as e:
41-
LOG.warning(
42-
"Failed to query Elasticsearch nodes %s: %s"
43-
% (nodes, str(e)))
44-
raise
41+
LOG.error("Failed to query Elasticsearch nodes %s: %s"
42+
% (nodes, str(e)))
43+
return None
4544
return es
4645

4746

tests/unit/test_storage.py

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -62,16 +62,14 @@ def test_ensure_es_index_exists(
6262
@mock.patch("availability.storage.LOG")
6363
def test_get_elasticsearch(self, mock_log, mock_config, mock_elastic):
6464
mock_es = mock.Mock()
65-
mock_es.indices.exists.side_effect = ValueError
6665
mock_elastic.return_value = mock_es
6766
mock_config.get_config.return_value = (
6867
{"backend": {"connection": "nodes"}})
69-
self.assertFalse(mock_es.info.called)
7068
self.assertEqual(mock_es, storage.get_elasticsearch())
69+
self.assertFalse(mock_es.info.called)
7170

72-
mock_es.indices.exists.side_effect = None
7371
mock_elastic.reset_mock()
74-
self.assertEqual(mock_es, storage.get_elasticsearch(
75-
check_availability=True))
72+
mock_es.info.side_effect = ValueError
73+
self.assertIsNone(storage.get_elasticsearch(check_availability=True))
7674
mock_elastic.assert_called_once_with("nodes")
7775
mock_es.info.assert_called_once_with()

0 commit comments

Comments
 (0)