"""The TrueNAS integration.""" from __future__ import annotations from homeassistant.core import HomeAssistant from homeassistant.config_entries import ConfigEntry from .const import ( DOMAIN, PLATFORMS, ) from .coordinator import TrueNASCoordinator # --------------------------- # update_listener # --------------------------- async def _async_update_listener(hass: HomeAssistant, entry: ConfigEntry): """Handle options update.""" await hass.config_entries.async_reload(entry.entry_id) # --------------------------- # async_setup_entry # --------------------------- async def async_setup_entry(hass: HomeAssistant, config_entry: ConfigEntry) -> bool: """Set up TrueNAS config entry.""" coordinator = TrueNASCoordinator(hass, config_entry) await coordinator.async_config_entry_first_refresh() hass.data.setdefault(DOMAIN, {})[config_entry.entry_id] = coordinator await hass.config_entries.async_forward_entry_setups(config_entry, PLATFORMS) config_entry.async_on_unload(config_entry.add_update_listener(async_reload_entry)) return True # --------------------------- # async_reload_entry # --------------------------- async def async_reload_entry(hass: HomeAssistant, config_entry: ConfigEntry) -> None: """Reload the config entry when it changed.""" await hass.config_entries.async_reload(config_entry.entry_id) # --------------------------- # async_unload_entry # --------------------------- async def async_unload_entry(hass: HomeAssistant, config_entry: ConfigEntry) -> bool: """Unload TrueNAS config entry.""" if unload_ok := await hass.config_entries.async_unload_platforms( config_entry, PLATFORMS ): hass.data[DOMAIN].pop(config_entry.entry_id) return unload_ok