mirror of
https://github.com/home-assistant/supervisor.git
synced 2025-07-09 02:06:30 +00:00
Add fields back for legacy addons info routing (#3768)
* Add fields back for legacy addons info routing * Fixes from feedback
This commit is contained in:
parent
b670efa47f
commit
f87209f66f
@ -6,6 +6,7 @@ from typing import Any, Optional
|
|||||||
from aiohttp import web
|
from aiohttp import web
|
||||||
|
|
||||||
from supervisor.api.utils import api_process
|
from supervisor.api.utils import api_process
|
||||||
|
from supervisor.const import AddonState
|
||||||
from supervisor.exceptions import APIAddonNotInstalled
|
from supervisor.exceptions import APIAddonNotInstalled
|
||||||
|
|
||||||
from ..coresys import CoreSys, CoreSysAttributes
|
from ..coresys import CoreSys, CoreSysAttributes
|
||||||
@ -413,7 +414,12 @@ class RestAPI(CoreSysAttributes):
|
|||||||
try:
|
try:
|
||||||
return await api_addons.info(request)
|
return await api_addons.info(request)
|
||||||
except APIAddonNotInstalled:
|
except APIAddonNotInstalled:
|
||||||
return await api_store.addons_addon_info(request)
|
# Route to store/{addon}/info but add missing fields
|
||||||
|
return dict(
|
||||||
|
await api_store.addons_addon_info_wrapped(request),
|
||||||
|
state=AddonState.UNKNOWN,
|
||||||
|
options=self.sys_addons.store[request.match_info["addon"]].options,
|
||||||
|
)
|
||||||
|
|
||||||
self.webapp.add_routes([web.get("/addons/{addon}/info", addons_addon_info)])
|
self.webapp.add_routes([web.get("/addons/{addon}/info", addons_addon_info)])
|
||||||
|
|
||||||
|
@ -212,6 +212,11 @@ class APIStore(CoreSysAttributes):
|
|||||||
@api_process
|
@api_process
|
||||||
async def addons_addon_info(self, request: web.Request) -> dict[str, Any]:
|
async def addons_addon_info(self, request: web.Request) -> dict[str, Any]:
|
||||||
"""Return add-on information."""
|
"""Return add-on information."""
|
||||||
|
return await self.addons_addon_info_wrapped(request)
|
||||||
|
|
||||||
|
# Used by legacy routing for addons/{addon}/info, can be refactored out when that is removed (1/2023)
|
||||||
|
async def addons_addon_info_wrapped(self, request: web.Request) -> dict[str, Any]:
|
||||||
|
"""Return add-on information directly (not api)."""
|
||||||
addon: AddonStore = self._extract_addon(request)
|
addon: AddonStore = self._extract_addon(request)
|
||||||
return self._generate_addon_information(addon, True)
|
return self._generate_addon_information(addon, True)
|
||||||
|
|
||||||
|
@ -34,3 +34,11 @@ async def test_addons_info_not_installed(
|
|||||||
result = await resp.json()
|
result = await resp.json()
|
||||||
assert result["data"]["version_latest"] == "9.2.1"
|
assert result["data"]["version_latest"] == "9.2.1"
|
||||||
assert result["data"]["version"] is None
|
assert result["data"]["version"] is None
|
||||||
|
assert result["data"]["state"] == "unknown"
|
||||||
|
assert result["data"]["update_available"] is False
|
||||||
|
assert result["data"]["options"] == {
|
||||||
|
"authorized_keys": [],
|
||||||
|
"apks": [],
|
||||||
|
"password": "",
|
||||||
|
"server": {"tcp_forwarding": False},
|
||||||
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user