ha(H4): исправления по ревью — маскировка ключа в дампе, reload-repair, reconfigure сохраняет поля
- major: diagnostics больше не содержит полный lanip_key (esp_home — маска, entry_data redacted); ключ для ESPHome — через reconfigure/CLI; план §3 синхронизирован; дамп при незагруженной записи не падает - reconfigure: сохраняет listen_port/keepalive_ms и текущие overrides/ temp_step; превью-дефолты подхватывают значения записи - repair fix-flow: подтверждение перезагружает запись (issue снимается только когда сессия вышла из key_error; иначе создаётся заново) - key_issue_id helper, использование async_remove_issue (мёртвый код), CONF_EMAIL/PASSWORD в TO_REDACT, placeholders в fix_flow, тест плейсхолдеров ru - тесты обновлены (47 components)
This commit is contained in:
@@ -12,7 +12,7 @@ from homeassistant.helpers import issue_registry as ir
|
||||
import pyfglair
|
||||
|
||||
from .const import CONF_DSN, DOMAIN
|
||||
from .coordinator import FglairCoordinator, FglairRuntime
|
||||
from .coordinator import FglairCoordinator, FglairRuntime, key_issue_id
|
||||
from .fglair_client import FglairClient
|
||||
from .overrides import ConversionSet
|
||||
|
||||
@@ -68,7 +68,7 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
|
||||
conversions = ConversionSet.from_entry(entry.data)
|
||||
# Координатор создаётся (и подписывается) до старта сессии, чтобы не
|
||||
# пропустить первое ONLINE.
|
||||
coordinator = FglairCoordinator(hass, client, conversions)
|
||||
coordinator = FglairCoordinator(hass, client, conversions, entry.entry_id)
|
||||
try:
|
||||
await client.async_start()
|
||||
await coordinator.async_config_entry_first_refresh()
|
||||
@@ -98,8 +98,8 @@ async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
|
||||
if not unloaded:
|
||||
return False
|
||||
await runtime.coordinator.async_shutdown()
|
||||
runtime.coordinator.async_remove_issue()
|
||||
await runtime.client.async_stop()
|
||||
ir.async_delete_issue(hass, DOMAIN, runtime.coordinator.key_issue_id)
|
||||
|
||||
clients: dict[str, FglairClient] = hass.data.get(DATA_CLIENTS, {})
|
||||
clients.pop(entry.entry_id, None)
|
||||
@@ -110,5 +110,5 @@ async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
|
||||
|
||||
async def async_remove_entry(hass: HomeAssistant, entry: ConfigEntry) -> None:
|
||||
ir.async_delete_issue(
|
||||
hass, DOMAIN, f"key_mismatch_{entry.data.get(CONF_DSN)}"
|
||||
hass, DOMAIN, key_issue_id(str(entry.data.get(CONF_DSN, "")))
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user