mirror of
https://github.com/home-assistant/core.git
synced 2026-08-03 20:24:55 +02:00
ca4fd1d232
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
39 lines
1.5 KiB
Python
39 lines
1.5 KiB
Python
"""Diagnostics support for NextDNS."""
|
|
|
|
from dataclasses import asdict
|
|
from typing import Any
|
|
|
|
from homeassistant.components.diagnostics import async_redact_data
|
|
from homeassistant.const import CONF_API_KEY, CONF_UNIQUE_ID
|
|
from homeassistant.core import HomeAssistant
|
|
|
|
from . import NextDnsConfigEntry
|
|
from .const import CONF_PROFILE_ID
|
|
|
|
TO_REDACT = {CONF_API_KEY, CONF_PROFILE_ID, CONF_UNIQUE_ID}
|
|
|
|
|
|
async def async_get_config_entry_diagnostics(
|
|
hass: HomeAssistant, config_entry: NextDnsConfigEntry
|
|
) -> dict[str, Any]:
|
|
"""Return diagnostics for a config entry."""
|
|
profiles_data: list[dict[str, Any]] = []
|
|
for subentry_id, profile_data in config_entry.runtime_data.profiles.items():
|
|
subentry = config_entry.subentries[subentry_id]
|
|
profiles_data.append(
|
|
{
|
|
"subentry_title": subentry.title,
|
|
"dnssec_coordinator_data": asdict(profile_data.dnssec.data),
|
|
"encryption_coordinator_data": asdict(profile_data.encryption.data),
|
|
"ip_versions_coordinator_data": asdict(profile_data.ip_versions.data),
|
|
"protocols_coordinator_data": asdict(profile_data.protocols.data),
|
|
"settings_coordinator_data": asdict(profile_data.settings.data),
|
|
"status_coordinator_data": asdict(profile_data.status.data),
|
|
}
|
|
)
|
|
|
|
return {
|
|
"config_entry": async_redact_data(config_entry.as_dict(), TO_REDACT),
|
|
"profiles": profiles_data,
|
|
}
|