Include config entry id in response to WS API hardware/info (#81906)

This commit is contained in:
Erik Montnemery 2022-11-10 13:19:21 +01:00 committed by GitHub
parent a954443795
commit 874ece195e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
9 changed files with 24 additions and 0 deletions

View file

@ -27,6 +27,10 @@ def async_info(hass: HomeAssistant) -> list[HardwareInfo]:
if not board.startswith("odroid"): if not board.startswith("odroid"):
raise HomeAssistantError raise HomeAssistantError
config_entries = [
entry.entry_id for entry in hass.config_entries.async_entries(DOMAIN)
]
return [ return [
HardwareInfo( HardwareInfo(
board=BoardInfo( board=BoardInfo(
@ -35,6 +39,7 @@ def async_info(hass: HomeAssistant) -> list[HardwareInfo]:
model=board, model=board,
revision=None, revision=None,
), ),
config_entries=config_entries,
dongle=None, dongle=None,
name=BOARD_NAMES.get(board, f"Unknown hardkernel Odroid model '{board}'"), name=BOARD_NAMES.get(board, f"Unknown hardkernel Odroid model '{board}'"),
url=None, url=None,

View file

@ -34,6 +34,7 @@ class HardwareInfo:
name: str | None name: str | None
board: BoardInfo | None board: BoardInfo | None
config_entries: list[str] | None
dongle: USBInfo | None dongle: USBInfo | None
url: str | None url: str | None

View file

@ -17,6 +17,7 @@ def async_info(hass: HomeAssistant) -> list[HardwareInfo]:
return [ return [
HardwareInfo( HardwareInfo(
board=None, board=None,
config_entries=[entry.entry_id],
dongle=USBInfo( dongle=USBInfo(
vid=entry.data["vid"], vid=entry.data["vid"],
pid=entry.data["pid"], pid=entry.data["pid"],

View file

@ -6,6 +6,8 @@ from homeassistant.components.hassio import get_os_info
from homeassistant.core import HomeAssistant, callback from homeassistant.core import HomeAssistant, callback
from homeassistant.exceptions import HomeAssistantError from homeassistant.exceptions import HomeAssistantError
from .const import DOMAIN
BOARD_NAME = "Home Assistant Yellow" BOARD_NAME = "Home Assistant Yellow"
MANUFACTURER = "homeassistant" MANUFACTURER = "homeassistant"
MODEL = "yellow" MODEL = "yellow"
@ -22,6 +24,10 @@ def async_info(hass: HomeAssistant) -> list[HardwareInfo]:
if not board == "yellow": if not board == "yellow":
raise HomeAssistantError raise HomeAssistantError
config_entries = [
entry.entry_id for entry in hass.config_entries.async_entries(DOMAIN)
]
return [ return [
HardwareInfo( HardwareInfo(
board=BoardInfo( board=BoardInfo(
@ -30,6 +36,7 @@ def async_info(hass: HomeAssistant) -> list[HardwareInfo]:
model=MODEL, model=MODEL,
revision=None, revision=None,
), ),
config_entries=config_entries,
dongle=None, dongle=None,
name=BOARD_NAME, name=BOARD_NAME,
url=None, url=None,

View file

@ -42,6 +42,10 @@ def async_info(hass: HomeAssistant) -> list[HardwareInfo]:
if not board.startswith("rpi"): if not board.startswith("rpi"):
raise HomeAssistantError raise HomeAssistantError
config_entries = [
entry.entry_id for entry in hass.config_entries.async_entries(DOMAIN)
]
return [ return [
HardwareInfo( HardwareInfo(
board=BoardInfo( board=BoardInfo(
@ -50,6 +54,7 @@ def async_info(hass: HomeAssistant) -> list[HardwareInfo]:
model=MODELS.get(board), model=MODELS.get(board),
revision=None, revision=None,
), ),
config_entries=config_entries,
dongle=None, dongle=None,
name=BOARD_NAMES.get(board, f"Unknown Raspberry Pi model '{board}'"), name=BOARD_NAMES.get(board, f"Unknown Raspberry Pi model '{board}'"),
url=None, url=None,

View file

@ -48,6 +48,7 @@ async def test_hardware_info(hass: HomeAssistant, hass_ws_client) -> None:
"model": "odroid-n2", "model": "odroid-n2",
"revision": None, "revision": None,
}, },
"config_entries": [config_entry.entry_id],
"dongle": None, "dongle": None,
"name": "Home Assistant Blue / Hardkernel Odroid-N2", "name": "Home Assistant Blue / Hardkernel Odroid-N2",
"url": None, "url": None,

View file

@ -62,6 +62,7 @@ async def test_hardware_info(hass: HomeAssistant, hass_ws_client) -> None:
"hardware": [ "hardware": [
{ {
"board": None, "board": None,
"config_entries": [config_entry.entry_id],
"dongle": { "dongle": {
"vid": "bla_vid", "vid": "bla_vid",
"pid": "bla_pid", "pid": "bla_pid",
@ -74,6 +75,7 @@ async def test_hardware_info(hass: HomeAssistant, hass_ws_client) -> None:
}, },
{ {
"board": None, "board": None,
"config_entries": [config_entry_2.entry_id],
"dongle": { "dongle": {
"vid": "bla_vid_2", "vid": "bla_vid_2",
"pid": "bla_pid_2", "pid": "bla_pid_2",

View file

@ -48,6 +48,7 @@ async def test_hardware_info(hass: HomeAssistant, hass_ws_client) -> None:
"model": "yellow", "model": "yellow",
"revision": None, "revision": None,
}, },
"config_entries": [config_entry.entry_id],
"dongle": None, "dongle": None,
"name": "Home Assistant Yellow", "name": "Home Assistant Yellow",
"url": None, "url": None,

View file

@ -48,6 +48,7 @@ async def test_hardware_info(hass: HomeAssistant, hass_ws_client) -> None:
"model": "1", "model": "1",
"revision": None, "revision": None,
}, },
"config_entries": [config_entry.entry_id],
"dongle": None, "dongle": None,
"name": "Raspberry Pi", "name": "Raspberry Pi",
"url": None, "url": None,