mirror of
https://github.com/home-assistant/core.git
synced 2025-07-16 17:57:11 +00:00
Fix system is loaded flag during reboot/shutdown of Synology DSM (#66125)
This commit is contained in:
parent
ae5a885387
commit
200e07b8d6
@ -33,7 +33,7 @@ from homeassistant.const import (
|
|||||||
)
|
)
|
||||||
from homeassistant.core import HomeAssistant, callback
|
from homeassistant.core import HomeAssistant, callback
|
||||||
|
|
||||||
from .const import CONF_DEVICE_TOKEN
|
from .const import CONF_DEVICE_TOKEN, DOMAIN, SYSTEM_LOADED
|
||||||
|
|
||||||
LOGGER = logging.getLogger(__name__)
|
LOGGER = logging.getLogger(__name__)
|
||||||
|
|
||||||
@ -218,6 +218,11 @@ class SynoApi:
|
|||||||
)
|
)
|
||||||
self.surveillance_station = self.dsm.surveillance_station
|
self.surveillance_station = self.dsm.surveillance_station
|
||||||
|
|
||||||
|
def _set_system_loaded(self, state: bool = False) -> None:
|
||||||
|
"""Set system loaded flag."""
|
||||||
|
dsm_device = self._hass.data[DOMAIN].get(self.information.serial)
|
||||||
|
dsm_device[SYSTEM_LOADED] = state
|
||||||
|
|
||||||
async def _syno_api_executer(self, api_call: Callable) -> None:
|
async def _syno_api_executer(self, api_call: Callable) -> None:
|
||||||
"""Synology api call wrapper."""
|
"""Synology api call wrapper."""
|
||||||
try:
|
try:
|
||||||
@ -231,10 +236,12 @@ class SynoApi:
|
|||||||
async def async_reboot(self) -> None:
|
async def async_reboot(self) -> None:
|
||||||
"""Reboot NAS."""
|
"""Reboot NAS."""
|
||||||
await self._syno_api_executer(self.system.reboot)
|
await self._syno_api_executer(self.system.reboot)
|
||||||
|
self._set_system_loaded()
|
||||||
|
|
||||||
async def async_shutdown(self) -> None:
|
async def async_shutdown(self) -> None:
|
||||||
"""Shutdown NAS."""
|
"""Shutdown NAS."""
|
||||||
await self._syno_api_executer(self.system.shutdown)
|
await self._syno_api_executer(self.system.shutdown)
|
||||||
|
self._set_system_loaded()
|
||||||
|
|
||||||
async def async_unload(self) -> None:
|
async def async_unload(self) -> None:
|
||||||
"""Stop interacting with the NAS and prepare for removal from hass."""
|
"""Stop interacting with the NAS and prepare for removal from hass."""
|
||||||
|
@ -15,7 +15,6 @@ from .const import (
|
|||||||
SERVICE_SHUTDOWN,
|
SERVICE_SHUTDOWN,
|
||||||
SERVICES,
|
SERVICES,
|
||||||
SYNO_API,
|
SYNO_API,
|
||||||
SYSTEM_LOADED,
|
|
||||||
)
|
)
|
||||||
|
|
||||||
LOGGER = logging.getLogger(__name__)
|
LOGGER = logging.getLogger(__name__)
|
||||||
@ -57,7 +56,6 @@ async def async_setup_services(hass: HomeAssistant) -> None:
|
|||||||
)
|
)
|
||||||
dsm_api: SynoApi = dsm_device[SYNO_API]
|
dsm_api: SynoApi = dsm_device[SYNO_API]
|
||||||
try:
|
try:
|
||||||
dsm_device[SYSTEM_LOADED] = False
|
|
||||||
await getattr(dsm_api, f"async_{call.service}")()
|
await getattr(dsm_api, f"async_{call.service}")()
|
||||||
except SynologyDSMException as ex:
|
except SynologyDSMException as ex:
|
||||||
LOGGER.error(
|
LOGGER.error(
|
||||||
|
Loading…
x
Reference in New Issue
Block a user