refactoring

This commit is contained in:
Devaev Maxim 2020-10-09 11:58:19 +03:00
parent 5bfde6ceae
commit cf5bc84872
2 changed files with 11 additions and 8 deletions

View File

@ -23,6 +23,7 @@
import asyncio import asyncio
import asyncio.subprocess import asyncio.subprocess
import signal import signal
import logging
from typing import Tuple from typing import Tuple
from typing import List from typing import List
@ -46,6 +47,15 @@ async def read_process(cmd: List[str], err_to_null: bool=False) -> Tuple[asyncio
return (proc, stdout.decode(errors="ignore").strip()) return (proc, stdout.decode(errors="ignore").strip())
async def log_process(cmd: List[str], logger: logging.Logger) -> asyncio.subprocess.Process: # pylint: disable=no-member
(proc, stdout) = await read_process(cmd)
if stdout:
log = (logger.info if proc.returncode == 0 else logger.error)
for line in stdout.split("\n"):
log("Console: %s", line)
return proc
def ignore_sigint() -> None: def ignore_sigint() -> None:
signal.signal(signal.SIGINT, signal.SIG_IGN) signal.signal(signal.SIGINT, signal.SIG_IGN)

View File

@ -59,13 +59,6 @@ async def unlock_drive(base_cmd: List[str]) -> None:
async def _run_helper(cmd: List[str]) -> None: async def _run_helper(cmd: List[str]) -> None:
logger = get_logger(0) logger = get_logger(0)
logger.info("Executing helper %s ...", cmd) logger.info("Executing helper %s ...", cmd)
proc = await aioproc.log_process(cmd, logger)
(proc, stdout) = await aioproc.read_process(cmd)
if stdout:
log = (logger.info if proc.returncode == 0 else logger.error)
for line in stdout.split("\n"):
log("Console: %s", line)
if proc.returncode != 0: if proc.returncode != 0:
raise MsdError(f"Error while helper execution: pid={proc.pid}; retcode={proc.returncode}") raise MsdError(f"Error while helper execution: pid={proc.pid}; retcode={proc.returncode}")