mirror of
https://github.com/home-assistant/core.git
synced 2025-07-16 09:47:13 +00:00
Fix null hass error in supervisor update entities (#129030)
* Fix null hass error in supervisor update entities * Share the supervisor client with coordinator * Remove unnecessary patch of helper * Attribute not property
This commit is contained in:
parent
6df2c0bab5
commit
5b2113c43d
@ -318,7 +318,7 @@ class HassioDataUpdateCoordinator(DataUpdateCoordinator):
|
|||||||
self._container_updates: defaultdict[str, dict[str, set[str]]] = defaultdict(
|
self._container_updates: defaultdict[str, dict[str, set[str]]] = defaultdict(
|
||||||
lambda: defaultdict(set)
|
lambda: defaultdict(set)
|
||||||
)
|
)
|
||||||
self._supervisor_client = get_supervisor_client(hass)
|
self.supervisor_client = get_supervisor_client(hass)
|
||||||
|
|
||||||
async def _async_update_data(self) -> dict[str, Any]:
|
async def _async_update_data(self) -> dict[str, Any]:
|
||||||
"""Update data via library."""
|
"""Update data via library."""
|
||||||
@ -503,7 +503,7 @@ class HassioDataUpdateCoordinator(DataUpdateCoordinator):
|
|||||||
async def _update_addon_stats(self, slug: str) -> tuple[str, dict[str, Any] | None]:
|
async def _update_addon_stats(self, slug: str) -> tuple[str, dict[str, Any] | None]:
|
||||||
"""Update single addon stats."""
|
"""Update single addon stats."""
|
||||||
try:
|
try:
|
||||||
stats = await self._supervisor_client.addons.addon_stats(slug)
|
stats = await self.supervisor_client.addons.addon_stats(slug)
|
||||||
except SupervisorError as err:
|
except SupervisorError as err:
|
||||||
_LOGGER.warning("Could not fetch stats for %s: %s", slug, err)
|
_LOGGER.warning("Could not fetch stats for %s: %s", slug, err)
|
||||||
return (slug, None)
|
return (slug, None)
|
||||||
@ -512,7 +512,7 @@ class HassioDataUpdateCoordinator(DataUpdateCoordinator):
|
|||||||
async def _update_addon_changelog(self, slug: str) -> tuple[str, str | None]:
|
async def _update_addon_changelog(self, slug: str) -> tuple[str, str | None]:
|
||||||
"""Return the changelog for an add-on."""
|
"""Return the changelog for an add-on."""
|
||||||
try:
|
try:
|
||||||
changelog = await self._supervisor_client.store.addon_changelog(slug)
|
changelog = await self.supervisor_client.store.addon_changelog(slug)
|
||||||
except SupervisorError as err:
|
except SupervisorError as err:
|
||||||
_LOGGER.warning("Could not fetch changelog for %s: %s", slug, err)
|
_LOGGER.warning("Could not fetch changelog for %s: %s", slug, err)
|
||||||
return (slug, None)
|
return (slug, None)
|
||||||
@ -521,7 +521,7 @@ class HassioDataUpdateCoordinator(DataUpdateCoordinator):
|
|||||||
async def _update_addon_info(self, slug: str) -> tuple[str, dict[str, Any] | None]:
|
async def _update_addon_info(self, slug: str) -> tuple[str, dict[str, Any] | None]:
|
||||||
"""Return the info for an add-on."""
|
"""Return the info for an add-on."""
|
||||||
try:
|
try:
|
||||||
info = await self._supervisor_client.addons.addon_info(slug)
|
info = await self.supervisor_client.addons.addon_info(slug)
|
||||||
except SupervisorError as err:
|
except SupervisorError as err:
|
||||||
_LOGGER.warning("Could not fetch info for %s: %s", slug, err)
|
_LOGGER.warning("Could not fetch info for %s: %s", slug, err)
|
||||||
return (slug, None)
|
return (slug, None)
|
||||||
|
@ -17,7 +17,6 @@ from homeassistant.config_entries import ConfigEntry
|
|||||||
from homeassistant.const import ATTR_ICON, ATTR_NAME
|
from homeassistant.const import ATTR_ICON, ATTR_NAME
|
||||||
from homeassistant.core import HomeAssistant
|
from homeassistant.core import HomeAssistant
|
||||||
from homeassistant.exceptions import HomeAssistantError
|
from homeassistant.exceptions import HomeAssistantError
|
||||||
from homeassistant.helpers.entity import EntityDescription
|
|
||||||
from homeassistant.helpers.entity_platform import AddEntitiesCallback
|
from homeassistant.helpers.entity_platform import AddEntitiesCallback
|
||||||
|
|
||||||
from .const import (
|
from .const import (
|
||||||
@ -31,7 +30,6 @@ from .const import (
|
|||||||
DATA_KEY_OS,
|
DATA_KEY_OS,
|
||||||
DATA_KEY_SUPERVISOR,
|
DATA_KEY_SUPERVISOR,
|
||||||
)
|
)
|
||||||
from .coordinator import HassioDataUpdateCoordinator
|
|
||||||
from .entity import (
|
from .entity import (
|
||||||
HassioAddonEntity,
|
HassioAddonEntity,
|
||||||
HassioCoreEntity,
|
HassioCoreEntity,
|
||||||
@ -43,7 +41,6 @@ from .handler import (
|
|||||||
async_update_core,
|
async_update_core,
|
||||||
async_update_os,
|
async_update_os,
|
||||||
async_update_supervisor,
|
async_update_supervisor,
|
||||||
get_supervisor_client,
|
|
||||||
)
|
)
|
||||||
|
|
||||||
ENTITY_DESCRIPTION = UpdateEntityDescription(
|
ENTITY_DESCRIPTION = UpdateEntityDescription(
|
||||||
@ -100,16 +97,6 @@ class SupervisorAddonUpdateEntity(HassioAddonEntity, UpdateEntity):
|
|||||||
| UpdateEntityFeature.RELEASE_NOTES
|
| UpdateEntityFeature.RELEASE_NOTES
|
||||||
)
|
)
|
||||||
|
|
||||||
def __init__(
|
|
||||||
self,
|
|
||||||
coordinator: HassioDataUpdateCoordinator,
|
|
||||||
entity_description: EntityDescription,
|
|
||||||
addon: dict[str, Any],
|
|
||||||
) -> None:
|
|
||||||
"""Initialize object."""
|
|
||||||
super().__init__(coordinator, entity_description, addon)
|
|
||||||
self._supervisor_client = get_supervisor_client(self.hass)
|
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def _addon_data(self) -> dict:
|
def _addon_data(self) -> dict:
|
||||||
"""Return the add-on data."""
|
"""Return the add-on data."""
|
||||||
@ -179,7 +166,7 @@ class SupervisorAddonUpdateEntity(HassioAddonEntity, UpdateEntity):
|
|||||||
) -> None:
|
) -> None:
|
||||||
"""Install an update."""
|
"""Install an update."""
|
||||||
try:
|
try:
|
||||||
await self._supervisor_client.store.update_addon(
|
await self.coordinator.supervisor_client.store.update_addon(
|
||||||
self._addon_slug, StoreAddonUpdate(backup=backup)
|
self._addon_slug, StoreAddonUpdate(backup=backup)
|
||||||
)
|
)
|
||||||
except SupervisorError as err:
|
except SupervisorError as err:
|
||||||
|
@ -477,10 +477,6 @@ def supervisor_client() -> Generator[AsyncMock]:
|
|||||||
"homeassistant.components.hassio.coordinator.get_supervisor_client",
|
"homeassistant.components.hassio.coordinator.get_supervisor_client",
|
||||||
return_value=supervisor_client,
|
return_value=supervisor_client,
|
||||||
),
|
),
|
||||||
patch(
|
|
||||||
"homeassistant.components.hassio.update.get_supervisor_client",
|
|
||||||
return_value=supervisor_client,
|
|
||||||
),
|
|
||||||
patch(
|
patch(
|
||||||
"homeassistant.components.hassio.get_supervisor_client",
|
"homeassistant.components.hassio.get_supervisor_client",
|
||||||
return_value=supervisor_client,
|
return_value=supervisor_client,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user