mirror of
https://github.com/home-assistant/core.git
synced 2025-08-02 10:08:23 +00:00
Use /addons to get list of add-ons
This commit is contained in:
parent
ccc7eec253
commit
e921373833
@ -86,6 +86,7 @@ DATA_OS_INFO = "hassio_os_info"
|
|||||||
DATA_NETWORK_INFO = "hassio_network_info"
|
DATA_NETWORK_INFO = "hassio_network_info"
|
||||||
DATA_SUPERVISOR_INFO = "hassio_supervisor_info"
|
DATA_SUPERVISOR_INFO = "hassio_supervisor_info"
|
||||||
DATA_SUPERVISOR_STATS = "hassio_supervisor_stats"
|
DATA_SUPERVISOR_STATS = "hassio_supervisor_stats"
|
||||||
|
DATA_ADDONS = "hassio_addons"
|
||||||
DATA_ADDONS_INFO = "hassio_addons_info"
|
DATA_ADDONS_INFO = "hassio_addons_info"
|
||||||
DATA_ADDONS_STATS = "hassio_addons_stats"
|
DATA_ADDONS_STATS = "hassio_addons_stats"
|
||||||
HASSIO_UPDATE_INTERVAL = timedelta(minutes=1)
|
HASSIO_UPDATE_INTERVAL = timedelta(minutes=1)
|
||||||
|
@ -30,6 +30,7 @@ from .const import (
|
|||||||
CONTAINER_INFO,
|
CONTAINER_INFO,
|
||||||
CONTAINER_STATS,
|
CONTAINER_STATS,
|
||||||
CORE_CONTAINER,
|
CORE_CONTAINER,
|
||||||
|
DATA_ADDONS,
|
||||||
DATA_ADDONS_INFO,
|
DATA_ADDONS_INFO,
|
||||||
DATA_ADDONS_STATS,
|
DATA_ADDONS_STATS,
|
||||||
DATA_COMPONENT,
|
DATA_COMPONENT,
|
||||||
@ -113,6 +114,16 @@ def get_network_info(hass: HomeAssistant) -> dict[str, Any] | None:
|
|||||||
return hass.data.get(DATA_NETWORK_INFO)
|
return hass.data.get(DATA_NETWORK_INFO)
|
||||||
|
|
||||||
|
|
||||||
|
@callback
|
||||||
|
@bind_hass
|
||||||
|
def get_addons(hass: HomeAssistant) -> dict[str, Any] | None:
|
||||||
|
"""Return Addons info.
|
||||||
|
|
||||||
|
Async friendly.
|
||||||
|
"""
|
||||||
|
return hass.data.get(DATA_ADDONS)
|
||||||
|
|
||||||
|
|
||||||
@callback
|
@callback
|
||||||
@bind_hass
|
@bind_hass
|
||||||
def get_addons_info(hass: HomeAssistant) -> dict[str, dict[str, Any]] | None:
|
def get_addons_info(hass: HomeAssistant) -> dict[str, dict[str, Any]] | None:
|
||||||
@ -321,7 +332,7 @@ class HassioAddOnDataUpdateCoordinator(DataUpdateCoordinator):
|
|||||||
raise UpdateFailed(f"Error on Supervisor API: {err}") from err
|
raise UpdateFailed(f"Error on Supervisor API: {err}") from err
|
||||||
|
|
||||||
new_data: dict[str, Any] = {}
|
new_data: dict[str, Any] = {}
|
||||||
supervisor_info = get_supervisor_info(self.hass) or {}
|
addons = get_addons(self.hass) or {}
|
||||||
addons_info = get_addons_info(self.hass) or {}
|
addons_info = get_addons_info(self.hass) or {}
|
||||||
addons_stats = get_addons_stats(self.hass)
|
addons_stats = get_addons_stats(self.hass)
|
||||||
store_data = get_store(self.hass)
|
store_data = get_store(self.hass)
|
||||||
@ -345,7 +356,7 @@ class HassioAddOnDataUpdateCoordinator(DataUpdateCoordinator):
|
|||||||
addon.get(ATTR_REPOSITORY), addon.get(ATTR_REPOSITORY, "")
|
addon.get(ATTR_REPOSITORY), addon.get(ATTR_REPOSITORY, "")
|
||||||
),
|
),
|
||||||
}
|
}
|
||||||
for addon in supervisor_info.get("addons", [])
|
for addon in addons.get("addons", [])
|
||||||
}
|
}
|
||||||
|
|
||||||
# If this is the initial refresh, register all addons and return the dict
|
# If this is the initial refresh, register all addons and return the dict
|
||||||
@ -390,9 +401,9 @@ class HassioAddOnDataUpdateCoordinator(DataUpdateCoordinator):
|
|||||||
container_updates = self._container_updates
|
container_updates = self._container_updates
|
||||||
|
|
||||||
data = self.hass.data
|
data = self.hass.data
|
||||||
data[DATA_SUPERVISOR_INFO] = await self.hassio.get_supervisor_info()
|
data[DATA_ADDONS] = await self.hassio.get_addons()
|
||||||
|
|
||||||
_addon_data = data[DATA_SUPERVISOR_INFO].get("addons", [])
|
_addon_data = data[DATA_ADDONS].get("addons", [])
|
||||||
all_addons: list[str] = []
|
all_addons: list[str] = []
|
||||||
started_addons: list[str] = []
|
started_addons: list[str] = []
|
||||||
for addon in _addon_data:
|
for addon in _addon_data:
|
||||||
|
@ -226,6 +226,14 @@ class HassIO:
|
|||||||
"""
|
"""
|
||||||
return self.send_command("/ingress/panels", method="get")
|
return self.send_command("/ingress/panels", method="get")
|
||||||
|
|
||||||
|
@api_data
|
||||||
|
def get_addons(self) -> Coroutine:
|
||||||
|
"""Return data installed Add-ons.
|
||||||
|
|
||||||
|
This method returns a coroutine.
|
||||||
|
"""
|
||||||
|
return self.send_command("/addons", method="get")
|
||||||
|
|
||||||
@_api_bool
|
@_api_bool
|
||||||
async def update_hass_api(
|
async def update_hass_api(
|
||||||
self, http_config: dict[str, Any], refresh_token: RefreshToken
|
self, http_config: dict[str, Any], refresh_token: RefreshToken
|
||||||
|
Loading…
x
Reference in New Issue
Block a user