From 6003ae149a582d5ed0fe3ecaee3c61672e5fd1ff Mon Sep 17 00:00:00 2001 From: "J. Nick Koston" Date: Sun, 4 Feb 2024 14:20:55 -0600 Subject: [PATCH] Avoid linear search of entity registry in ruckus_unleashed (#109643) --- .../ruckus_unleashed/device_tracker.py | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/homeassistant/components/ruckus_unleashed/device_tracker.py b/homeassistant/components/ruckus_unleashed/device_tracker.py index df5027ebaa8..89cc22ef766 100644 --- a/homeassistant/components/ruckus_unleashed/device_tracker.py +++ b/homeassistant/components/ruckus_unleashed/device_tracker.py @@ -18,6 +18,7 @@ from .const import ( KEY_SYS_CLIENTS, UNDO_UPDATE_LISTENERS, ) +from .coordinator import RuckusUnleashedDataUpdateCoordinator _LOGGER = logging.getLogger(__package__) @@ -65,14 +66,19 @@ def add_new_entities(coordinator, async_add_entities, tracked): @callback -def restore_entities(registry, coordinator, entry, async_add_entities, tracked): +def restore_entities( + registry: er.EntityRegistry, + coordinator: RuckusUnleashedDataUpdateCoordinator, + entry: ConfigEntry, + async_add_entities: AddEntitiesCallback, + tracked: set[str], +) -> None: """Restore clients that are not a part of active clients list.""" - missing = [] + missing: list[RuckusUnleashedDevice] = [] - for entity in registry.entities.values(): + for entity in registry.entities.get_entries_for_config_entry_id(entry.entry_id): if ( - entity.config_entry_id == entry.entry_id - and entity.platform == DOMAIN + entity.platform == DOMAIN and entity.unique_id not in coordinator.data[KEY_SYS_CLIENTS] ): missing.append(