mirror of
https://github.com/home-assistant/core.git
synced 2025-07-23 13:17:32 +00:00
Merge pull request #1261 from kk7ds/graphite-gaierror
Some graphite error handling improvements
This commit is contained in:
commit
23b116803b
@ -98,6 +98,8 @@ class GraphiteFeeder(threading.Thread):
|
|||||||
_LOGGER.debug('Sending to graphite: %s', lines)
|
_LOGGER.debug('Sending to graphite: %s', lines)
|
||||||
try:
|
try:
|
||||||
self._send_to_graphite('\n'.join(lines))
|
self._send_to_graphite('\n'.join(lines))
|
||||||
|
except socket.gaierror:
|
||||||
|
_LOGGER.error('Unable to connect to host %s', self._host)
|
||||||
except socket.error:
|
except socket.error:
|
||||||
_LOGGER.exception('Failed to send data to graphite')
|
_LOGGER.exception('Failed to send data to graphite')
|
||||||
|
|
||||||
@ -108,7 +110,7 @@ class GraphiteFeeder(threading.Thread):
|
|||||||
self._queue.task_done()
|
self._queue.task_done()
|
||||||
return
|
return
|
||||||
elif (event.event_type == EVENT_STATE_CHANGED and
|
elif (event.event_type == EVENT_STATE_CHANGED and
|
||||||
'new_state' in event.data):
|
event.data.get('new_state')):
|
||||||
self._report_attributes(event.data['entity_id'],
|
self._report_attributes(event.data['entity_id'],
|
||||||
event.data['new_state'])
|
event.data['new_state'])
|
||||||
self._queue.task_done()
|
self._queue.task_done()
|
||||||
|
@ -134,6 +134,16 @@ class TestGraphite(unittest.TestCase):
|
|||||||
actual = mock_send.call_args_list[0][0][0].split('\n')
|
actual = mock_send.call_args_list[0][0][0].split('\n')
|
||||||
self.assertEqual(sorted(expected), sorted(actual))
|
self.assertEqual(sorted(expected), sorted(actual))
|
||||||
|
|
||||||
|
@mock.patch('time.time')
|
||||||
|
def test_send_to_graphite_errors(self, mock_time):
|
||||||
|
mock_time.return_value = 12345
|
||||||
|
state = ha.State('domain.entity', STATE_ON, {'foo': 1.0})
|
||||||
|
with mock.patch.object(self.gf, '_send_to_graphite') as mock_send:
|
||||||
|
mock_send.side_effect = socket.error
|
||||||
|
self.gf._report_attributes('entity', state)
|
||||||
|
mock_send.side_effect = socket.gaierror
|
||||||
|
self.gf._report_attributes('entity', state)
|
||||||
|
|
||||||
@mock.patch('socket.socket')
|
@mock.patch('socket.socket')
|
||||||
def test_send_to_graphite(self, mock_socket):
|
def test_send_to_graphite(self, mock_socket):
|
||||||
self.gf._send_to_graphite('foo')
|
self.gf._send_to_graphite('foo')
|
||||||
@ -163,7 +173,8 @@ class TestGraphite(unittest.TestCase):
|
|||||||
return self.gf._quit_object
|
return self.gf._quit_object
|
||||||
elif runs:
|
elif runs:
|
||||||
runs.append(1)
|
runs.append(1)
|
||||||
return mock.MagicMock(event_type='somethingelse')
|
return mock.MagicMock(event_type='somethingelse',
|
||||||
|
data={'new_event': None})
|
||||||
else:
|
else:
|
||||||
runs.append(1)
|
runs.append(1)
|
||||||
return event
|
return event
|
||||||
|
Loading…
x
Reference in New Issue
Block a user