diff options
author | Devaev Maxim <[email protected]> | 2020-12-21 01:59:49 +0300 |
---|---|---|
committer | Devaev Maxim <[email protected]> | 2020-12-21 01:59:49 +0300 |
commit | 42475809fcafef12d39a12b7dd2be49aea9d9b6f (patch) | |
tree | a56572c31a6128434d2c8b89e7d479a558965b47 /kvmd/plugins/msd/otg | |
parent | 2cb210c975b37d4e9db06b8e121f42f7d09c6fe1 (diff) |
refactoring
Diffstat (limited to 'kvmd/plugins/msd/otg')
-rw-r--r-- | kvmd/plugins/msd/otg/__init__.py | 40 |
1 files changed, 18 insertions, 22 deletions
diff --git a/kvmd/plugins/msd/otg/__init__.py b/kvmd/plugins/msd/otg/__init__.py index a4fd3919..2b31ea53 100644 --- a/kvmd/plugins/msd/otg/__init__.py +++ b/kvmd/plugins/msd/otg/__init__.py @@ -255,36 +255,32 @@ class Plugin(BaseMsd): # pylint: disable=too-many-instance-attributes self.__state.vd.cdrom = cdrom @aiotools.atomic - async def connect(self) -> None: + async def set_connected(self, connected: bool) -> None: async with self.__state.busy(): assert self.__state.vd + if connected: + if self.__state.vd.connected or self.__drive.get_image_path(): + raise MsdConnectedError() + if self.__state.vd.image is None: + raise MsdImageNotSelected() - if self.__state.vd.connected or self.__drive.get_image_path(): - raise MsdConnectedError() - if self.__state.vd.image is None: - raise MsdImageNotSelected() - - assert self.__state.vd.image.in_storage + assert self.__state.vd.image.in_storage - if not os.path.exists(self.__state.vd.image.path): - raise MsdUnknownImageError() + if not os.path.exists(self.__state.vd.image.path): + raise MsdUnknownImageError() - await self.__unlock_drive() - self.__drive.set_cdrom_flag(self.__state.vd.cdrom) - self.__drive.set_image_path(self.__state.vd.image.path) - self.__state.vd.connected = True + await self.__unlock_drive() + self.__drive.set_cdrom_flag(self.__state.vd.cdrom) + self.__drive.set_image_path(self.__state.vd.image.path) - @aiotools.atomic - async def disconnect(self) -> None: - async with self.__state.busy(): - assert self.__state.vd + else: + if not (self.__state.vd.connected or self.__drive.get_image_path()): + raise MsdDisconnectedError() - if not (self.__state.vd.connected or self.__drive.get_image_path()): - raise MsdDisconnectedError() + await self.__unlock_drive() + self.__drive.set_image_path("") - await self.__unlock_drive() - self.__drive.set_image_path("") - self.__state.vd.connected = False + self.__state.vd.connected = connected @contextlib.asynccontextmanager async def write_image(self, name: str) -> AsyncGenerator[None, None]: |