INNER CODE UNIT · Python

_migrate_online_to_global

3dg1luk43/ha_washdata · custom_components/ha_washdata/__init__.py:431

async def _migrate_online_to_global(hass: HomeAssistant, entry: ConfigEntry, manager: Any) -> None:
    """Hoist the (formerly per-device) online-features flag + store account to the
    integration-wide store. Pre-release cleanup.

    The enable flag is hoisted exactly ONCE (guarded by a marker in the global store):
    the stale per-entry option is never cleared, so without the marker a user who later
    turns online off would have it silently re-enabled on the next restart. The account
    hoist stays idempotent (it clears the per-entry copy after moving it)."""
    from . import store_account  # pylint: disable=import-outside-toplevel
    from .const import CONF_ENABLE_ONLINE_FEATURES  # pylint: disable=import-outside-toplevel

    # Best-effort, pre-release migration: a transient store write failure here must
    # never propagate and abort async_setup_entry (it retries on the next restart).
    try:
        await store_account.async_load(hass)
        if not store_account.migration_done(hass):
            any_on = any(
                e.options.get(CONF_ENABLE_ONLINE_FEATURES)

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…