Reduce Freebox router Raid warning to one occurence (#98740)

* consider Freebox router does not support Raid if the first enumeration raised an http error, fixes #98274

* add router name to warning message

* reduce log level to info, remove details
This commit is contained in:
Florent Thiery 2023-08-21 17:45:15 +02:00 committed by GitHub
parent af0e48081f
commit c86565b9bc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -71,6 +71,7 @@ class FreeboxRouter:
self.devices: dict[str, dict[str, Any]] = {}
self.disks: dict[int, dict[str, Any]] = {}
self.supports_raid = True
self.raids: dict[int, dict[str, Any]] = {}
self.sensors_temperature: dict[str, int] = {}
self.sensors_connection: dict[str, float] = {}
@ -159,14 +160,21 @@ class FreeboxRouter:
async def _update_raids_sensors(self) -> None:
"""Update Freebox raids."""
# None at first request
if not self.supports_raid:
return
try:
fbx_raids: list[dict[str, Any]] = await self._api.storage.get_raids() or []
except HttpRequestError:
_LOGGER.warning("Unable to enumerate raid disks")
else:
for fbx_raid in fbx_raids:
self.raids[fbx_raid["id"]] = fbx_raid
self.supports_raid = False
_LOGGER.info(
"Router %s API does not support RAID",
self.name,
)
return
for fbx_raid in fbx_raids:
self.raids[fbx_raid["id"]] = fbx_raid
async def update_home_devices(self) -> None:
"""Update Home devices (alarm, light, sensor, switch, remote ...)."""