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 supervisor.api.utils import api_process
|
||||
from supervisor.const import AddonState
|
||||
from supervisor.exceptions import APIAddonNotInstalled
|
||||
|
||||
from ..coresys import CoreSys, CoreSysAttributes
|
||||
|
@ -413,7 +414,12 @@ class RestAPI(CoreSysAttributes):
|
|||
try:
|
||||
return await api_addons.info(request)
|
||||
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)])
|
||||
|
||||
|
|
|
@ -212,6 +212,11 @@ class APIStore(CoreSysAttributes):
|
|||
@api_process
|
||||
async def addons_addon_info(self, request: web.Request) -> dict[str, Any]:
|
||||
"""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)
|
||||
return self._generate_addon_information(addon, True)
|
||||
|
||||
|
|
|
@ -34,3 +34,11 @@ async def test_addons_info_not_installed(
|
|||
result = await resp.json()
|
||||
assert result["data"]["version_latest"] == "9.2.1"
|
||||
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…
Reference in New Issue