summaryrefslogtreecommitdiff
path: root/kvmd/plugins/msd/otg
diff options
context:
space:
mode:
authorDevaev Maxim <[email protected]>2020-12-21 01:59:49 +0300
committerDevaev Maxim <[email protected]>2020-12-21 01:59:49 +0300
commit42475809fcafef12d39a12b7dd2be49aea9d9b6f (patch)
treea56572c31a6128434d2c8b89e7d479a558965b47 /kvmd/plugins/msd/otg
parent2cb210c975b37d4e9db06b8e121f42f7d09c6fe1 (diff)
refactoring
Diffstat (limited to 'kvmd/plugins/msd/otg')
-rw-r--r--kvmd/plugins/msd/otg/__init__.py40
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]: