mirror of
https://github.com/home-assistant/core.git
synced 2025-07-15 17:27:10 +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 .const import CONF_DEVICE_TOKEN
|
||||
from .const import CONF_DEVICE_TOKEN, DOMAIN, SYSTEM_LOADED
|
||||
|
||||
LOGGER = logging.getLogger(__name__)
|
||||
|
||||
@ -218,6 +218,11 @@ class SynoApi:
|
||||
)
|
||||
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:
|
||||
"""Synology api call wrapper."""
|
||||
try:
|
||||
@ -231,10 +236,12 @@ class SynoApi:
|
||||
async def async_reboot(self) -> None:
|
||||
"""Reboot NAS."""
|
||||
await self._syno_api_executer(self.system.reboot)
|
||||
self._set_system_loaded()
|
||||
|
||||
async def async_shutdown(self) -> None:
|
||||
"""Shutdown NAS."""
|
||||
await self._syno_api_executer(self.system.shutdown)
|
||||
self._set_system_loaded()
|
||||
|
||||
async def async_unload(self) -> None:
|
||||
"""Stop interacting with the NAS and prepare for removal from hass."""
|
||||
|
@ -15,7 +15,6 @@ from .const import (
|
||||
SERVICE_SHUTDOWN,
|
||||
SERVICES,
|
||||
SYNO_API,
|
||||
SYSTEM_LOADED,
|
||||
)
|
||||
|
||||
LOGGER = logging.getLogger(__name__)
|
||||
@ -57,7 +56,6 @@ async def async_setup_services(hass: HomeAssistant) -> None:
|
||||
)
|
||||
dsm_api: SynoApi = dsm_device[SYNO_API]
|
||||
try:
|
||||
dsm_device[SYSTEM_LOADED] = False
|
||||
await getattr(dsm_api, f"async_{call.service}")()
|
||||
except SynologyDSMException as ex:
|
||||
LOGGER.error(
|
||||
|
Loading…
x
Reference in New Issue
Block a user