From dc1aba0a056d8fb188c36fa44028e56677a5f0ef Mon Sep 17 00:00:00 2001 From: Sid <27780930+autinerd@users.noreply.github.com> Date: Wed, 8 May 2024 09:04:20 +0200 Subject: [PATCH] Use runtime_data in webmin (#117058) --- homeassistant/components/webmin/__init__.py | 14 ++++++-------- homeassistant/components/webmin/diagnostics.py | 9 +++------ homeassistant/components/webmin/sensor.py | 9 +++++---- 3 files changed, 14 insertions(+), 18 deletions(-) diff --git a/homeassistant/components/webmin/__init__.py b/homeassistant/components/webmin/__init__.py index 56f30d3b26f..6a13d689b56 100644 --- a/homeassistant/components/webmin/__init__.py +++ b/homeassistant/components/webmin/__init__.py @@ -4,27 +4,25 @@ from homeassistant.config_entries import ConfigEntry from homeassistant.const import Platform from homeassistant.core import HomeAssistant -from .const import DOMAIN from .coordinator import WebminUpdateCoordinator PLATFORMS = [Platform.SENSOR] +WebminConfigEntry = ConfigEntry[WebminUpdateCoordinator] -async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: + +async def async_setup_entry(hass: HomeAssistant, entry: WebminConfigEntry) -> bool: """Set up Webmin from a config entry.""" coordinator = WebminUpdateCoordinator(hass, entry) await coordinator.async_config_entry_first_refresh() await coordinator.async_setup() - hass.data.setdefault(DOMAIN, {})[entry.entry_id] = coordinator + entry.runtime_data = coordinator await hass.config_entries.async_forward_entry_setups(entry, PLATFORMS) return True -async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: +async def async_unload_entry(hass: HomeAssistant, entry: WebminConfigEntry) -> bool: """Unload a config entry.""" - if unload_ok := await hass.config_entries.async_unload_platforms(entry, PLATFORMS): - hass.data[DOMAIN].pop(entry.entry_id) - - return unload_ok + return await hass.config_entries.async_unload_platforms(entry, PLATFORMS) diff --git a/homeassistant/components/webmin/diagnostics.py b/homeassistant/components/webmin/diagnostics.py index 390db73814a..fc8d6cf1798 100644 --- a/homeassistant/components/webmin/diagnostics.py +++ b/homeassistant/components/webmin/diagnostics.py @@ -3,12 +3,10 @@ from typing import Any from homeassistant.components.diagnostics import async_redact_data -from homeassistant.config_entries import ConfigEntry from homeassistant.const import CONF_HOST, CONF_PASSWORD, CONF_UNIQUE_ID, CONF_USERNAME from homeassistant.core import HomeAssistant -from .const import DOMAIN -from .coordinator import WebminUpdateCoordinator +from . import WebminConfigEntry TO_REDACT = { CONF_HOST, @@ -27,10 +25,9 @@ TO_REDACT = { async def async_get_config_entry_diagnostics( - hass: HomeAssistant, entry: ConfigEntry + hass: HomeAssistant, entry: WebminConfigEntry ) -> dict[str, Any]: """Return diagnostics for a config entry.""" - coordinator: WebminUpdateCoordinator = hass.data[DOMAIN][entry.entry_id] return async_redact_data( - {"entry": entry.as_dict(), "data": coordinator.data}, TO_REDACT + {"entry": entry.as_dict(), "data": entry.runtime_data.data}, TO_REDACT ) diff --git a/homeassistant/components/webmin/sensor.py b/homeassistant/components/webmin/sensor.py index 90d3fd71532..219cca805b1 100644 --- a/homeassistant/components/webmin/sensor.py +++ b/homeassistant/components/webmin/sensor.py @@ -8,13 +8,12 @@ from homeassistant.components.sensor import ( SensorEntityDescription, SensorStateClass, ) -from homeassistant.config_entries import ConfigEntry from homeassistant.const import UnitOfInformation from homeassistant.core import HomeAssistant from homeassistant.helpers.entity_platform import AddEntitiesCallback from homeassistant.helpers.update_coordinator import CoordinatorEntity -from .const import DOMAIN +from . import WebminConfigEntry from .coordinator import WebminUpdateCoordinator SENSOR_TYPES: list[SensorEntityDescription] = [ @@ -80,10 +79,12 @@ SENSOR_TYPES: list[SensorEntityDescription] = [ async def async_setup_entry( - hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback + hass: HomeAssistant, + entry: WebminConfigEntry, + async_add_entities: AddEntitiesCallback, ) -> None: """Set up Webmin sensors based on a config entry.""" - coordinator: WebminUpdateCoordinator = hass.data[DOMAIN][entry.entry_id] + coordinator = entry.runtime_data async_add_entities( WebminSensor(coordinator, description) for description in SENSOR_TYPES