diff --git a/hassio/api/__init__.py b/hassio/api/__init__.py index 20195d21c..90c8758a8 100644 --- a/hassio/api/__init__.py +++ b/hassio/api/__init__.py @@ -185,10 +185,11 @@ class RestAPI(CoreSysAttributes): def _register_panel(self): """Register panel for homeassistant.""" - def create_response(build_type): + panel_dir = Path(__file__).parent.joinpath("panel") + + def create_response(panel_file): """Create a function to generate a response.""" - path = Path(__file__).parent.joinpath( - f"panel/{build_type}.html") + path = panel_dir.joinpath(f"{panel_file!s}.html") return lambda request: web.FileResponse(path) # This route is for backwards compatibility with HA < 0.58 @@ -202,10 +203,7 @@ class RestAPI(CoreSysAttributes): ]) # This route is for HA > 0.61 - self.webapp.add_routes([ - web.get('/app-es5/index.html', create_response('index')), - web.get('/app-es5/hassio-app.html', create_response('hassio-app')), - ]) + self.webapp.add_routes([web.static('/app-es5', panel_dir)]) async def start(self): """Run rest api webserver.""" diff --git a/hassio/api/panel/hassio-app.html b/hassio/api/panel/hassio-app.html index 09f945df5..6fb24fa10 100644 --- a/hassio/api/panel/hassio-app.html +++ b/hassio/api/panel/hassio-app.html @@ -1,90 +1,3 @@ - \ No newline at end of file + diff --git a/hassio/api/panel/hassio-app.html.gz b/hassio/api/panel/hassio-app.html.gz index c066b97ec..3029d3c3b 100644 Binary files a/hassio/api/panel/hassio-app.html.gz and b/hassio/api/panel/hassio-app.html.gz differ diff --git a/hassio/api/panel/index.html b/hassio/api/panel/index.html index e8cf3df57..d299b439d 100644 --- a/hassio/api/panel/index.html +++ b/hassio/api/panel/index.html @@ -11,27 +11,28 @@ padding: 0; } + + - diff --git a/hassio/api/panel/index.html.gz b/hassio/api/panel/index.html.gz index 26fe37b87..f8f75d7c8 100644 Binary files a/hassio/api/panel/index.html.gz and b/hassio/api/panel/index.html.gz differ diff --git a/hassio/api/proxy.py b/hassio/api/proxy.py index 89336ce53..a6e32e87b 100644 --- a/hassio/api/proxy.py +++ b/hassio/api/proxy.py @@ -34,7 +34,7 @@ class APIProxy(CoreSysAttributes): try: data = None headers = {} - method = getattr(self._websession_ssl, request.method.lower()) + method = getattr(self.sys_websession_ssl, request.method.lower()) params = request.query or None # read data diff --git a/hassio/api/security.py b/hassio/api/security.py index a07ae99ef..1e9115ecc 100644 --- a/hassio/api/security.py +++ b/hassio/api/security.py @@ -35,11 +35,10 @@ class SecurityMiddleware(CoreSysAttributes): _LOGGER.debug("Passthrough %s", request.path) return await handler(request) - # Need to be removed later + # Unknown API access if not hassio_token: _LOGGER.warning("Invalid token for access %s", request.path) - request[REQUEST_FROM] = 'UNKNOWN' - return await handler(request) + raise HTTPUnauthorized() # Home-Assistant if hassio_token == self.sys_homeassistant.uuid: diff --git a/hassio/const.py b/hassio/const.py index b8bf87495..d2985e48b 100644 --- a/hassio/const.py +++ b/hassio/const.py @@ -2,7 +2,7 @@ from pathlib import Path from ipaddress import ip_network -HASSIO_VERSION = '103' +HASSIO_VERSION = '104' URL_HASSIO_VERSION = ('https://raw.githubusercontent.com/home-assistant/' 'hassio/{}/version.json') diff --git a/hassio/misc/hardware.py b/hassio/misc/hardware.py index 62e045223..fdfca042d 100644 --- a/hassio/misc/hardware.py +++ b/hassio/misc/hardware.py @@ -63,6 +63,10 @@ class Hardware: @property def audio_devices(self): """Return all available audio interfaces.""" + if not ASOUND_CARDS.exists(): + _LOGGER.info("No audio devices found") + return {} + try: with ASOUND_CARDS.open('r') as cards_file: cards = cards_file.read() diff --git a/home-assistant-polymer b/home-assistant-polymer index 38e1b1603..e158709b1 160000 --- a/home-assistant-polymer +++ b/home-assistant-polymer @@ -1 +1 @@ -Subproject commit 38e1b16031c397dda15399c63bfa40c40a5d0351 +Subproject commit e158709b1e13a5af867c6c5436e881839dffa476 diff --git a/setup.py b/setup.py index 3380d639e..a9ceff64f 100644 --- a/setup.py +++ b/setup.py @@ -40,13 +40,14 @@ setup( ], include_package_data=True, install_requires=[ - 'async_timeout==2.0.1', - 'aiohttp==3.1.2', - 'docker==3.2.0', + 'attr==0.3.1', + 'async_timeout==3.0.0', + 'aiohttp==3.2.1', + 'docker==3.3.0', 'colorlog==3.1.2', 'voluptuous==0.11.1', - 'gitpython==2.1.8', - 'pytz==2018.3', + 'gitpython==2.1.10', + 'pytz==2018.4', 'pyudev==0.21.0', 'pycryptodome==3.4.11' ]