Merge pull request #1261 from kk7ds/graphite-gaierror
Some graphite error handling improvements
This commit is contained in:
commit
23b116803b
2 changed files with 15 additions and 2 deletions
|
@ -98,6 +98,8 @@ class GraphiteFeeder(threading.Thread):
|
|||
_LOGGER.debug('Sending to graphite: %s', lines)
|
||||
try:
|
||||
self._send_to_graphite('\n'.join(lines))
|
||||
except socket.gaierror:
|
||||
_LOGGER.error('Unable to connect to host %s', self._host)
|
||||
except socket.error:
|
||||
_LOGGER.exception('Failed to send data to graphite')
|
||||
|
||||
|
@ -108,7 +110,7 @@ class GraphiteFeeder(threading.Thread):
|
|||
self._queue.task_done()
|
||||
return
|
||||
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'],
|
||||
event.data['new_state'])
|
||||
self._queue.task_done()
|
||||
|
|
|
@ -134,6 +134,16 @@ class TestGraphite(unittest.TestCase):
|
|||
actual = mock_send.call_args_list[0][0][0].split('\n')
|
||||
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')
|
||||
def test_send_to_graphite(self, mock_socket):
|
||||
self.gf._send_to_graphite('foo')
|
||||
|
@ -163,7 +173,8 @@ class TestGraphite(unittest.TestCase):
|
|||
return self.gf._quit_object
|
||||
elif runs:
|
||||
runs.append(1)
|
||||
return mock.MagicMock(event_type='somethingelse')
|
||||
return mock.MagicMock(event_type='somethingelse',
|
||||
data={'new_event': None})
|
||||
else:
|
||||
runs.append(1)
|
||||
return event
|
||||
|
|
Loading…
Add table
Reference in a new issue