mirror of
https://github.com/home-assistant/developers.home-assistant.git
synced 2025-07-14 12:56:30 +00:00
Add blog post on config validation and error handling (#1986)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
This commit is contained in:
parent
28ae5e6f77
commit
e86f14870c
40
blog/2023-11-27-config-validation-and-error-handling.md
Normal file
40
blog/2023-11-27-config-validation-and-error-handling.md
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
---
|
||||||
|
author: Jan Bouwhuis
|
||||||
|
authorURL: https://github.com/jbouwh
|
||||||
|
authorImageURL: https://avatars.githubusercontent.com/u/7188918?s=96&v=4
|
||||||
|
title: Config processing and error handling
|
||||||
|
---
|
||||||
|
|
||||||
|
## Changes in component config processing and error handling
|
||||||
|
|
||||||
|
The way component YAML configuration is processed has been changed. Now, it is possible to raise if an error occurs. Some custom integrations might break if they are using `config.async_process_component_config`.
|
||||||
|
Instead, they can use `config.async_process_component_and_handle_errors` now. This new method supports raising when an error occurs during config processing.
|
||||||
|
From now on, failures will no longer be notified as a persistent message, so integrations need to implement error handling to notify users in case of a failure. Notifications are still added during setup in case of a config issue.
|
||||||
|
|
||||||
|
```python
|
||||||
|
async def async_process_component_and_handle_errors(
|
||||||
|
hass: HomeAssistant,
|
||||||
|
config: ConfigType,
|
||||||
|
integration: Integration,
|
||||||
|
raise_on_failure: bool = False,
|
||||||
|
) -> ConfigType | None:
|
||||||
|
...
|
||||||
|
```
|
||||||
|
|
||||||
|
During a reload integrations can use the `helpers.reload.async_integration_yaml_config`. This helper now also has the ability to raise in case of a failure.
|
||||||
|
|
||||||
|
```python
|
||||||
|
async def async_integration_yaml_config(
|
||||||
|
hass: HomeAssistant, integration_name: str, *, raise_on_failure: bool = False
|
||||||
|
) -> ConfigType | None:
|
||||||
|
...
|
||||||
|
```
|
||||||
|
|
||||||
|
## Translation support for Exceptions on config validation
|
||||||
|
|
||||||
|
A new `ConfigValidationError` exception class is introduced. It will be raised in case an error occurs during config error handling and `raise_on_failure` is set to `True`. It can be re-raised to a `ServiceValidationError` in case this error is raised during the execution of a service call and a stack trace is not warranted. Translation keys are added to allow localization of the error messages.
|
||||||
|
|
||||||
|
### Background
|
||||||
|
|
||||||
|
- Background [discussion](https://github.com/home-assistant/architecture/discussions/992).
|
||||||
|
- Implementation [Core PR #102410](https://github.com/home-assistant/core/pull/102410).
|
Loading…
x
Reference in New Issue
Block a user