summaryrefslogtreecommitdiff
path: root/kvmd/plugins/atx
diff options
context:
space:
mode:
authorDevaev Maxim <[email protected]>2020-09-09 16:21:49 +0300
committerDevaev Maxim <[email protected]>2020-09-09 16:21:49 +0300
commit015baee6d719723672037b0ea738106fbd2c8198 (patch)
tree9e3c4eaf8029fe9baec611323773c7a399986cd5 /kvmd/plugins/atx
parent2d44539484c56c6300a582ea026728442d9bc618 (diff)
sync atx api
Diffstat (limited to 'kvmd/plugins/atx')
-rw-r--r--kvmd/plugins/atx/__init__.py14
-rw-r--r--kvmd/plugins/atx/disabled.py21
-rw-r--r--kvmd/plugins/atx/gpio.py42
3 files changed, 34 insertions, 43 deletions
diff --git a/kvmd/plugins/atx/__init__.py b/kvmd/plugins/atx/__init__.py
index bc0c2c41..5de306ea 100644
--- a/kvmd/plugins/atx/__init__.py
+++ b/kvmd/plugins/atx/__init__.py
@@ -59,27 +59,27 @@ class BaseAtx(BasePlugin):
# =====
- async def power_on(self) -> bool:
+ async def power_on(self, wait: bool) -> bool:
raise NotImplementedError
- async def power_off(self) -> bool:
+ async def power_off(self, wait: bool) -> bool:
raise NotImplementedError
- async def power_off_hard(self) -> bool:
+ async def power_off_hard(self, wait: bool) -> bool:
raise NotImplementedError
- async def power_reset_hard(self) -> bool:
+ async def power_reset_hard(self, wait: bool) -> bool:
raise NotImplementedError
# =====
- async def click_power(self) -> None:
+ async def click_power(self, wait: bool) -> None:
raise NotImplementedError
- async def click_power_long(self) -> None:
+ async def click_power_long(self, wait: bool) -> None:
raise NotImplementedError
- async def click_reset(self) -> None:
+ async def click_reset(self, wait: bool) -> None:
raise NotImplementedError
diff --git a/kvmd/plugins/atx/disabled.py b/kvmd/plugins/atx/disabled.py
index 93cfbb5b..c60e2743 100644
--- a/kvmd/plugins/atx/disabled.py
+++ b/kvmd/plugins/atx/disabled.py
@@ -54,25 +54,12 @@ class Plugin(BaseAtx):
# =====
- async def power_on(self) -> bool:
+ async def __stub_power(self, wait: bool) -> bool:
raise AtxDisabledError()
- async def power_off(self) -> bool:
- raise AtxDisabledError()
-
- async def power_off_hard(self) -> bool:
- raise AtxDisabledError()
-
- async def power_reset_hard(self) -> bool:
- raise AtxDisabledError()
+ power_on = power_off = power_off_hard = power_reset_hard = __stub_power
- # =====
-
- async def click_power(self) -> None:
+ async def __stub_click(self, wait: bool) -> None:
raise AtxDisabledError()
- async def click_power_long(self) -> None:
- raise AtxDisabledError()
-
- async def click_reset(self) -> None:
- raise AtxDisabledError()
+ click_power = click_power_long = click_reset = __stub_click
diff --git a/kvmd/plugins/atx/gpio.py b/kvmd/plugins/atx/gpio.py
index 16f3e23f..9ae16338 100644
--- a/kvmd/plugins/atx/gpio.py
+++ b/kvmd/plugins/atx/gpio.py
@@ -130,40 +130,40 @@ class Plugin(BaseAtx): # pylint: disable=too-many-instance-attributes
# =====
- async def power_on(self) -> bool:
+ async def power_on(self, wait: bool) -> bool:
if not (await self.__get_power()):
- await self.click_power()
+ await self.click_power(wait)
return True
return False
- async def power_off(self) -> bool:
+ async def power_off(self, wait: bool) -> bool:
if (await self.__get_power()):
- await self.click_power()
+ await self.click_power(wait)
return True
return False
- async def power_off_hard(self) -> bool:
+ async def power_off_hard(self, wait: bool) -> bool:
if (await self.__get_power()):
- await self.click_power_long()
+ await self.click_power_long(wait)
return True
return False
- async def power_reset_hard(self) -> bool:
+ async def power_reset_hard(self, wait: bool) -> bool:
if (await self.__get_power()):
- await self.click_reset()
+ await self.click_reset(wait)
return True
return False
# =====
- async def click_power(self) -> None:
- await self.__click("power", self.__power_switch_pin, self.__click_delay)
+ async def click_power(self, wait: bool) -> None:
+ await self.__click("power", self.__power_switch_pin, self.__click_delay, wait)
- async def click_power_long(self) -> None:
- await self.__click("power_long", self.__power_switch_pin, self.__long_click_delay)
+ async def click_power_long(self, wait: bool) -> None:
+ await self.__click("power_long", self.__power_switch_pin, self.__long_click_delay, wait)
- async def click_reset(self) -> None:
- await self.__click("reset", self.__reset_switch_pin, self.__click_delay)
+ async def click_reset(self, wait: bool) -> None:
+ await self.__click("reset", self.__reset_switch_pin, self.__click_delay, wait)
# =====
@@ -171,11 +171,15 @@ class Plugin(BaseAtx): # pylint: disable=too-many-instance-attributes
return (await self.get_state())["leds"]["power"]
@aiotools.atomic
- async def __click(self, name: str, pin: int, delay: float) -> None:
- await aiotools.run_region_task(
- "Can't perform ATX click or operation was not completed",
- self.__region, self.__inner_click, name, pin, delay,
- )
+ async def __click(self, name: str, pin: int, delay: float, wait: bool) -> None:
+ if wait:
+ async with self.__region:
+ await self.__inner_click(name, pin, delay)
+ else:
+ await aiotools.run_region_task(
+ "Can't perform ATX click or operation was not completed",
+ self.__region, self.__inner_click, name, pin, delay,
+ )
@aiotools.atomic
async def __inner_click(self, name: str, pin: int, delay: float) -> None: