Explicitly pass in the config_entry in nextdns coordinator (#138072)

explicitly pass in the config_entry in coordinator
pull/137224/head
Michael 2025-02-09 16:31:24 +01:00 committed by GitHub
parent 5dba229c67
commit 2e496411a1
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 19 additions and 3 deletions

View File

@ -98,7 +98,9 @@ async def async_setup_entry(hass: HomeAssistant, entry: NextDnsConfigEntry) -> b
# Independent DataUpdateCoordinator is used for each API endpoint to avoid
# unnecessary requests when entities using this endpoint are disabled.
for coordinator_name, coordinator_class, update_interval in COORDINATORS:
coordinator = coordinator_class(hass, nextdns, profile_id, update_interval)
coordinator = coordinator_class(
hass, entry, nextdns, profile_id, update_interval
)
tasks.append(coordinator.async_config_entry_first_refresh())
coordinators[coordinator_name] = coordinator

View File

@ -1,8 +1,10 @@
"""NextDns coordinator."""
from __future__ import annotations
from datetime import timedelta
import logging
from typing import TypeVar
from typing import TYPE_CHECKING, TypeVar
from aiohttp.client_exceptions import ClientConnectorError
from nextdns import (
@ -25,6 +27,9 @@ from homeassistant.exceptions import ConfigEntryAuthFailed
from homeassistant.helpers.device_registry import DeviceEntryType, DeviceInfo
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, UpdateFailed
if TYPE_CHECKING:
from . import NextDnsConfigEntry
from .const import DOMAIN
_LOGGER = logging.getLogger(__name__)
@ -35,9 +40,12 @@ CoordinatorDataT = TypeVar("CoordinatorDataT", bound=NextDnsData)
class NextDnsUpdateCoordinator(DataUpdateCoordinator[CoordinatorDataT]):
"""Class to manage fetching NextDNS data API."""
config_entry: NextDnsConfigEntry
def __init__(
self,
hass: HomeAssistant,
config_entry: NextDnsConfigEntry,
nextdns: NextDns,
profile_id: str,
update_interval: timedelta,
@ -54,7 +62,13 @@ class NextDnsUpdateCoordinator(DataUpdateCoordinator[CoordinatorDataT]):
name=self.profile_name,
)
super().__init__(hass, _LOGGER, name=DOMAIN, update_interval=update_interval)
super().__init__(
hass,
_LOGGER,
config_entry=config_entry,
name=DOMAIN,
update_interval=update_interval,
)
async def _async_update_data(self) -> CoordinatorDataT:
"""Update data via internal method."""