qmp_shell.py: _fill_completion() use .command() instead of .cmd()

We just want to ignore failure, so we don't need low level .cmd(). This
helps further renaming .command() to .cmd().

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
Reviewed-by: Eric Blake <eblake@redhat.com>
Message-id: 20231006154125.1068348-3-vsementsov@yandex-team.ru
Signed-off-by: John Snow <jsnow@redhat.com>
master
Vladimir Sementsov-Ogievskiy 2023-10-06 18:41:12 +03:00 committed by John Snow
parent f187cfefd2
commit 2cee9ca97d
1 changed files with 14 additions and 6 deletions

View File

@ -91,14 +91,21 @@ from subprocess import Popen
import sys
from typing import (
IO,
Dict,
Iterator,
List,
NoReturn,
Optional,
Sequence,
cast,
)
from qemu.qmp import ConnectError, QMPError, SocketAddrT
from qemu.qmp import (
ConnectError,
ExecuteError,
QMPError,
SocketAddrT,
)
from qemu.qmp.legacy import (
QEMUMonitorProtocol,
QMPBadPortError,
@ -194,11 +201,12 @@ class QMPShell(QEMUMonitorProtocol):
super().close()
def _fill_completion(self) -> None:
cmds = self.cmd('query-commands')
if 'error' in cmds:
return
for cmd in cmds['return']:
self._completer.append(cmd['name'])
try:
cmds = cast(List[Dict[str, str]], self.command('query-commands'))
for cmd in cmds:
self._completer.append(cmd['name'])
except ExecuteError:
pass
def _completer_setup(self) -> None:
self._completer = QMPCompleter()