mirror of https://github.com/xemu-project/xemu.git
scripts/qmp-shell: remove double-underscores
They're not needed; single underscore is enough to express intent that these methods are "internal". double underscore is used as a weak name mangling, but that isn't beneficial for us here. Signed-off-by: John Snow <jsnow@redhat.com> Message-id: 20210607200649.1840382-38-jsnow@redhat.com Signed-off-by: John Snow <jsnow@redhat.com>
This commit is contained in:
parent
7fc29896d2
commit
a64fe44d5a
|
@ -171,7 +171,7 @@ class QMPShell(qmp.QEMUMonitorProtocol):
|
||||||
for cmd in cmds['return']:
|
for cmd in cmds['return']:
|
||||||
self._completer.append(cmd['name'])
|
self._completer.append(cmd['name'])
|
||||||
|
|
||||||
def __completer_setup(self) -> None:
|
def _completer_setup(self) -> None:
|
||||||
self._completer = QMPCompleter()
|
self._completer = QMPCompleter()
|
||||||
self._fill_completion()
|
self._fill_completion()
|
||||||
readline.set_history_length(1024)
|
readline.set_history_length(1024)
|
||||||
|
@ -196,7 +196,7 @@ class QMPShell(qmp.QEMUMonitorProtocol):
|
||||||
LOG.warning(msg)
|
LOG.warning(msg)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def __parse_value(cls, val: str) -> object:
|
def _parse_value(cls, val: str) -> object:
|
||||||
try:
|
try:
|
||||||
return int(val)
|
return int(val)
|
||||||
except ValueError:
|
except ValueError:
|
||||||
|
@ -221,7 +221,7 @@ class QMPShell(qmp.QEMUMonitorProtocol):
|
||||||
pass
|
pass
|
||||||
return val
|
return val
|
||||||
|
|
||||||
def __cli_expr(self,
|
def _cli_expr(self,
|
||||||
tokens: Sequence[str],
|
tokens: Sequence[str],
|
||||||
parent: qmp.QMPObject) -> None:
|
parent: qmp.QMPObject) -> None:
|
||||||
for arg in tokens:
|
for arg in tokens:
|
||||||
|
@ -231,7 +231,7 @@ class QMPShell(qmp.QEMUMonitorProtocol):
|
||||||
f"Expected a key=value pair, got '{arg!s}'"
|
f"Expected a key=value pair, got '{arg!s}'"
|
||||||
)
|
)
|
||||||
|
|
||||||
value = self.__parse_value(val)
|
value = self._parse_value(val)
|
||||||
optpath = key.split('.')
|
optpath = key.split('.')
|
||||||
curpath = []
|
curpath = []
|
||||||
for path in optpath[:-1]:
|
for path in optpath[:-1]:
|
||||||
|
@ -249,7 +249,7 @@ class QMPShell(qmp.QEMUMonitorProtocol):
|
||||||
raise QMPShellError(f'Cannot set "{key}" multiple times')
|
raise QMPShellError(f'Cannot set "{key}" multiple times')
|
||||||
parent[optpath[-1]] = value
|
parent[optpath[-1]] = value
|
||||||
|
|
||||||
def __build_cmd(self, cmdline: str) -> Optional[QMPMessage]:
|
def _build_cmd(self, cmdline: str) -> Optional[QMPMessage]:
|
||||||
"""
|
"""
|
||||||
Build a QMP input object from a user provided command-line in the
|
Build a QMP input object from a user provided command-line in the
|
||||||
following format:
|
following format:
|
||||||
|
@ -289,13 +289,13 @@ class QMPShell(qmp.QEMUMonitorProtocol):
|
||||||
if cmdargs[-1] == ')':
|
if cmdargs[-1] == ')':
|
||||||
cmdargs.pop(-1)
|
cmdargs.pop(-1)
|
||||||
finalize = True
|
finalize = True
|
||||||
self.__cli_expr(cmdargs[1:], action['data'])
|
self._cli_expr(cmdargs[1:], action['data'])
|
||||||
self._actions.append(action)
|
self._actions.append(action)
|
||||||
return self.__build_cmd(')') if finalize else None
|
return self._build_cmd(')') if finalize else None
|
||||||
|
|
||||||
# Standard command: parse and return it to be executed.
|
# Standard command: parse and return it to be executed.
|
||||||
qmpcmd = {'execute': cmdargs[0], 'arguments': {}}
|
qmpcmd = {'execute': cmdargs[0], 'arguments': {}}
|
||||||
self.__cli_expr(cmdargs[1:], qmpcmd['arguments'])
|
self._cli_expr(cmdargs[1:], qmpcmd['arguments'])
|
||||||
return qmpcmd
|
return qmpcmd
|
||||||
|
|
||||||
def _print(self, qmp_message: object) -> None:
|
def _print(self, qmp_message: object) -> None:
|
||||||
|
@ -306,7 +306,7 @@ class QMPShell(qmp.QEMUMonitorProtocol):
|
||||||
|
|
||||||
def _execute_cmd(self, cmdline: str) -> bool:
|
def _execute_cmd(self, cmdline: str) -> bool:
|
||||||
try:
|
try:
|
||||||
qmpcmd = self.__build_cmd(cmdline)
|
qmpcmd = self._build_cmd(cmdline)
|
||||||
except QMPShellError as err:
|
except QMPShellError as err:
|
||||||
print(
|
print(
|
||||||
f"Error while parsing command line: {err!s}\n"
|
f"Error while parsing command line: {err!s}\n"
|
||||||
|
@ -329,7 +329,7 @@ class QMPShell(qmp.QEMUMonitorProtocol):
|
||||||
|
|
||||||
def connect(self, negotiate: bool = True) -> None:
|
def connect(self, negotiate: bool = True) -> None:
|
||||||
self._greeting = super().connect(negotiate)
|
self._greeting = super().connect(negotiate)
|
||||||
self.__completer_setup()
|
self._completer_setup()
|
||||||
|
|
||||||
def show_banner(self,
|
def show_banner(self,
|
||||||
msg: str = 'Welcome to the QMP low-level shell!') -> None:
|
msg: str = 'Welcome to the QMP low-level shell!') -> None:
|
||||||
|
@ -377,10 +377,10 @@ class HMPShell(QMPShell):
|
||||||
def __init__(self, address: qmp.SocketAddrT,
|
def __init__(self, address: qmp.SocketAddrT,
|
||||||
pretty: bool = False, verbose: bool = False):
|
pretty: bool = False, verbose: bool = False):
|
||||||
super().__init__(address, pretty, verbose)
|
super().__init__(address, pretty, verbose)
|
||||||
self.__cpu_index = 0
|
self._cpu_index = 0
|
||||||
|
|
||||||
def __cmd_completion(self) -> None:
|
def _cmd_completion(self) -> None:
|
||||||
for cmd in self.__cmd_passthrough('help')['return'].split('\r\n'):
|
for cmd in self._cmd_passthrough('help')['return'].split('\r\n'):
|
||||||
if cmd and cmd[0] != '[' and cmd[0] != '\t':
|
if cmd and cmd[0] != '[' and cmd[0] != '\t':
|
||||||
name = cmd.split()[0] # drop help text
|
name = cmd.split()[0] # drop help text
|
||||||
if name == 'info':
|
if name == 'info':
|
||||||
|
@ -396,21 +396,21 @@ class HMPShell(QMPShell):
|
||||||
self._completer.append(name)
|
self._completer.append(name)
|
||||||
self._completer.append('help ' + name) # help completion
|
self._completer.append('help ' + name) # help completion
|
||||||
|
|
||||||
def __info_completion(self) -> None:
|
def _info_completion(self) -> None:
|
||||||
for cmd in self.__cmd_passthrough('info')['return'].split('\r\n'):
|
for cmd in self._cmd_passthrough('info')['return'].split('\r\n'):
|
||||||
if cmd:
|
if cmd:
|
||||||
self._completer.append('info ' + cmd.split()[1])
|
self._completer.append('info ' + cmd.split()[1])
|
||||||
|
|
||||||
def __other_completion(self) -> None:
|
def _other_completion(self) -> None:
|
||||||
# special cases
|
# special cases
|
||||||
self._completer.append('help info')
|
self._completer.append('help info')
|
||||||
|
|
||||||
def _fill_completion(self) -> None:
|
def _fill_completion(self) -> None:
|
||||||
self.__cmd_completion()
|
self._cmd_completion()
|
||||||
self.__info_completion()
|
self._info_completion()
|
||||||
self.__other_completion()
|
self._other_completion()
|
||||||
|
|
||||||
def __cmd_passthrough(self, cmdline: str,
|
def _cmd_passthrough(self, cmdline: str,
|
||||||
cpu_index: int = 0) -> QMPMessage:
|
cpu_index: int = 0) -> QMPMessage:
|
||||||
return self.cmd_obj({
|
return self.cmd_obj({
|
||||||
'execute': 'human-monitor-command',
|
'execute': 'human-monitor-command',
|
||||||
|
@ -425,14 +425,14 @@ class HMPShell(QMPShell):
|
||||||
# trap the cpu command, it requires special setting
|
# trap the cpu command, it requires special setting
|
||||||
try:
|
try:
|
||||||
idx = int(cmdline.split()[1])
|
idx = int(cmdline.split()[1])
|
||||||
if 'return' not in self.__cmd_passthrough('info version', idx):
|
if 'return' not in self._cmd_passthrough('info version', idx):
|
||||||
print('bad CPU index')
|
print('bad CPU index')
|
||||||
return True
|
return True
|
||||||
self.__cpu_index = idx
|
self._cpu_index = idx
|
||||||
except ValueError:
|
except ValueError:
|
||||||
print('cpu command takes an integer argument')
|
print('cpu command takes an integer argument')
|
||||||
return True
|
return True
|
||||||
resp = self.__cmd_passthrough(cmdline, self.__cpu_index)
|
resp = self._cmd_passthrough(cmdline, self._cpu_index)
|
||||||
if resp is None:
|
if resp is None:
|
||||||
print('Disconnected')
|
print('Disconnected')
|
||||||
return False
|
return False
|
||||||
|
|
Loading…
Reference in New Issue