Better error handling for proxy (#334)

This commit is contained in:
Pascal Vizeli 2018-01-29 12:36:58 +01:00 committed by GitHub
parent eb6c753514
commit 142cdcffca
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -4,7 +4,7 @@ import logging
import aiohttp
from aiohttp import web
from aiohttp.web_exceptions import HTTPBadGateway
from aiohttp.web_exceptions import HTTPBadGateway, HTTPInternalServerError
from aiohttp.hdrs import CONTENT_TYPE
import async_timeout
@ -133,15 +133,19 @@ class APIProxy(CoreSysAttributes):
await server.prepare(request)
# handle authentication
await server.send_json({
'type': 'auth_required',
'ha_version': self._homeassistant.version,
})
await server.receive_json() # get internal token
await server.send_json({
'type': 'auth_ok',
'ha_version': self._homeassistant.version,
})
try:
await server.send_json({
'type': 'auth_required',
'ha_version': self._homeassistant.version,
})
await server.receive_json() # get internal token
await server.send_json({
'type': 'auth_ok',
'ha_version': self._homeassistant.version,
})
except RuntimeError as err:
_LOGGER.error("Can't initialize handshake: %s", err)
raise HTTPInternalServerError() from None
# init connection to hass
client = await self._websocket_client()