[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v3 12/31] python/qmp: switch qemu-ga-client to AQMP
From: |
John Snow |
Subject: |
[PATCH v3 12/31] python/qmp: switch qemu-ga-client to AQMP |
Date: |
Mon, 10 Jan 2022 18:28:51 -0500 |
Async QMP always raises a "ConnectError" on any connection error which
houses the cause in a second exception. We can check if this root cause
was python's ConnectionError to determine a fairly similar condition to
the original error check here.
Signed-off-by: John Snow <jsnow@redhat.com>
Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Reviewed-by: Beraldo Leal <bleal@redhat.com>
---
python/qemu/qmp/qemu_ga_client.py | 22 +++++++++++-----------
1 file changed, 11 insertions(+), 11 deletions(-)
diff --git a/python/qemu/qmp/qemu_ga_client.py
b/python/qemu/qmp/qemu_ga_client.py
index b3e1d98c9e..15ed430c61 100644
--- a/python/qemu/qmp/qemu_ga_client.py
+++ b/python/qemu/qmp/qemu_ga_client.py
@@ -37,8 +37,8 @@
# the COPYING file in the top-level directory.
import argparse
+import asyncio
import base64
-import errno
import os
import random
import sys
@@ -50,8 +50,8 @@
Sequence,
)
-from qemu import qmp
-from qemu.qmp import SocketAddrT
+from qemu.aqmp import ConnectError, SocketAddrT
+from qemu.aqmp.legacy import QEMUMonitorProtocol
# This script has not seen many patches or careful attention in quite
@@ -61,7 +61,7 @@
# pylint: disable=missing-docstring
-class QemuGuestAgent(qmp.QEMUMonitorProtocol):
+class QemuGuestAgent(QEMUMonitorProtocol):
def __getattr__(self, name: str) -> Callable[..., Any]:
def wrapper(**kwds: object) -> object:
return self.command('guest-' + name.replace('_', '-'), **kwds)
@@ -149,7 +149,7 @@ def ping(self, timeout: Optional[float]) -> bool:
self.qga.settimeout(timeout)
try:
self.qga.ping()
- except TimeoutError:
+ except asyncio.TimeoutError:
return False
return True
@@ -172,7 +172,7 @@ def suspend(self, mode: str) -> None:
try:
getattr(self.qga, 'suspend' + '_' + mode)()
# On error exception will raise
- except TimeoutError:
+ except asyncio.TimeoutError:
# On success command will timed out
return
@@ -182,7 +182,7 @@ def shutdown(self, mode: str = 'powerdown') -> None:
try:
self.qga.shutdown(mode=mode)
- except TimeoutError:
+ except asyncio.TimeoutError:
pass
@@ -277,7 +277,7 @@ def _cmd_reboot(client: QemuGuestAgentClient, args:
Sequence[str]) -> None:
def send_command(address: str, cmd: str, args: Sequence[str]) -> None:
if not os.path.exists(address):
- print('%s not found' % address)
+ print(f"'{address}' not found. (Is QEMU running?)")
sys.exit(1)
if cmd not in commands:
@@ -287,10 +287,10 @@ def send_command(address: str, cmd: str, args:
Sequence[str]) -> None:
try:
client = QemuGuestAgentClient(address)
- except OSError as err:
+ except ConnectError as err:
print(err)
- if err.errno == errno.ECONNREFUSED:
- print('Hint: qemu is not running?')
+ if isinstance(err.exc, ConnectionError):
+ print('(Is QEMU running?)')
sys.exit(1)
if cmd == 'fsfreeze' and args[0] == 'freeze':
--
2.31.1
- [PATCH v3 03/31] python: update type hints for mypy 0.930, (continued)
- [PATCH v3 03/31] python: update type hints for mypy 0.930, John Snow, 2022/01/10
- [PATCH v3 04/31] simplebench: Fix Python syntax error (reported by LGTM), John Snow, 2022/01/10
- [PATCH v3 05/31] python/aqmp: fix docstring typo, John Snow, 2022/01/10
- [PATCH v3 07/31] python/aqmp: handle asyncio.TimeoutError on execute(), John Snow, 2022/01/10
- [PATCH v3 06/31] python/aqmp: add __del__ method to legacy interface, John Snow, 2022/01/10
- [PATCH v3 09/31] python/aqmp: add SocketAddrT to package root, John Snow, 2022/01/10
- [PATCH v3 08/31] python/aqmp: copy type definitions from qmp, John Snow, 2022/01/10
- [PATCH v3 11/31] python/qemu-ga-client: don't use deprecated CLI syntax in usage comment, John Snow, 2022/01/10
- [PATCH v3 12/31] python/qmp: switch qemu-ga-client to AQMP,
John Snow <=
- [PATCH v3 10/31] python/aqmp: rename AQMPError to QMPError, John Snow, 2022/01/10
- [PATCH v3 16/31] python: move qmp-shell under the AQMP package, John Snow, 2022/01/10
- [PATCH v3 14/31] python/qmp: switch qmp-shell to AQMP, John Snow, 2022/01/10
- [PATCH v3 15/31] python: move qmp utilities to python/qemu/utils, John Snow, 2022/01/10
- [PATCH v3 17/31] python/machine: permanently switch to AQMP, John Snow, 2022/01/10