From 3d11c45eddca77c5c9ff25b2980a63d8274136b4 Mon Sep 17 00:00:00 2001 From: Joakim Plate Date: Wed, 31 Jul 2019 18:09:00 +0200 Subject: [PATCH] Log platform import errors and correct reqs for config check (#25425) * Log failures to load plaforms * Drop unused exception variable * Also load pip requirements with check config * Fix lint * More lint * Drop invalid parameters for error call --- homeassistant/config.py | 3 +++ homeassistant/helpers/check_config.py | 9 +++++++++ 2 files changed, 12 insertions(+) diff --git a/homeassistant/config.py b/homeassistant/config.py index 00042a53dca..8b88588905a 100644 --- a/homeassistant/config.py +++ b/homeassistant/config.py @@ -706,11 +706,14 @@ async def async_process_component_config( if (not hass.config.skip_pip and p_integration.requirements and not await async_process_requirements( hass, p_integration.domain, p_integration.requirements)): + _LOGGER.error( + "Unable to install all requirements for %s.%s", domain, p_name) continue try: platform = p_integration.get_platform(domain) except ImportError: + _LOGGER.exception("Failed to get platform %s.%s", domain, p_name) continue # Validate platform specific schema diff --git a/homeassistant/helpers/check_config.py b/homeassistant/helpers/check_config.py index efd693b77ab..74d3e04eace 100644 --- a/homeassistant/helpers/check_config.py +++ b/homeassistant/helpers/check_config.py @@ -159,6 +159,15 @@ async def async_check_ha_config_file(hass: HomeAssistant) -> \ "platform.".format(p_name, domain)) continue + if (not hass.config.skip_pip and p_integration.requirements and + not await requirements.async_process_requirements( + hass, p_integration.domain, + p_integration.requirements)): + result.add_error( + "Unable to install all requirements: {}".format( + ', '.join(integration.requirements))) + continue + try: platform = p_integration.get_platform(domain) except ImportError: