Add aliases to device registry items (#84246)
This commit is contained in:
@@ -32,7 +32,7 @@ DATA_REGISTRY = "device_registry"
|
||||
EVENT_DEVICE_REGISTRY_UPDATED = "device_registry_updated"
|
||||
STORAGE_KEY = "core.device_registry"
|
||||
STORAGE_VERSION_MAJOR = 1
|
||||
STORAGE_VERSION_MINOR = 3
|
||||
STORAGE_VERSION_MINOR = 4
|
||||
SAVE_DELAY = 10
|
||||
CLEANUP_DELAY = 10
|
||||
|
||||
@@ -70,6 +70,7 @@ class DeviceEntryType(StrEnum):
|
||||
class DeviceEntry:
|
||||
"""Device Registry Entry."""
|
||||
|
||||
aliases: set[str] = attr.ib(factory=set)
|
||||
area_id: str | None = attr.ib(default=None)
|
||||
config_entries: set[str] = attr.ib(converter=set, factory=set)
|
||||
configuration_url: str | None = attr.ib(default=None)
|
||||
@@ -174,6 +175,9 @@ class DeviceRegistryStore(storage.Store[dict[str, list[dict[str, Any]]]]):
|
||||
# Version 1.3 adds hw_version
|
||||
for device in old_data["devices"]:
|
||||
device["hw_version"] = None
|
||||
if old_minor_version < 4:
|
||||
for device in old_data["devices"]:
|
||||
device["aliases"] = []
|
||||
|
||||
if old_major_version > 1:
|
||||
raise NotImplementedError
|
||||
@@ -376,6 +380,7 @@ class DeviceRegistry:
|
||||
device_id: str,
|
||||
*,
|
||||
add_config_entry_id: str | UndefinedType = UNDEFINED,
|
||||
aliases: set[str] | UndefinedType = UNDEFINED,
|
||||
area_id: str | None | UndefinedType = UNDEFINED,
|
||||
configuration_url: str | None | UndefinedType = UNDEFINED,
|
||||
disabled_by: DeviceEntryDisabler | None | UndefinedType = UNDEFINED,
|
||||
@@ -464,6 +469,7 @@ class DeviceRegistry:
|
||||
old_values["identifiers"] = old.identifiers
|
||||
|
||||
for attr_name, value in (
|
||||
("aliases", aliases),
|
||||
("area_id", area_id),
|
||||
("configuration_url", configuration_url),
|
||||
("disabled_by", disabled_by),
|
||||
@@ -542,6 +548,7 @@ class DeviceRegistry:
|
||||
if data is not None:
|
||||
for device in data["devices"]:
|
||||
devices[device["id"]] = DeviceEntry(
|
||||
aliases=set(device["aliases"]),
|
||||
area_id=device["area_id"],
|
||||
config_entries=set(device["config_entries"]),
|
||||
configuration_url=device["configuration_url"],
|
||||
@@ -589,6 +596,7 @@ class DeviceRegistry:
|
||||
|
||||
data["devices"] = [
|
||||
{
|
||||
"aliases": list(entry.aliases),
|
||||
"area_id": entry.area_id,
|
||||
"config_entries": list(entry.config_entries),
|
||||
"configuration_url": entry.configuration_url,
|
||||
|
||||
Reference in New Issue
Block a user