diff options
author | John Snow <jsnow@redhat.com> | 2022-03-30 13:28:10 -0400 |
---|---|---|
committer | John Snow <jsnow@redhat.com> | 2022-04-21 11:01:00 -0400 |
commit | 37094b6dd59f56978b918e79cadf17c6fd5d36e2 (patch) | |
tree | fdd2d3be3a1aafbfb722217ce3ccbfa9637cd0ec /python | |
parent | 105bbff886782cc44f34d5c87f94529393565840 (diff) | |
download | qemu-37094b6dd59f56978b918e79cadf17c6fd5d36e2.zip qemu-37094b6dd59f56978b918e79cadf17c6fd5d36e2.tar.gz qemu-37094b6dd59f56978b918e79cadf17c6fd5d36e2.tar.bz2 |
python: rename qemu.aqmp to qemu.qmp
Now that we are fully switched over to the new QMP library, move it back
over the old namespace. This is being done primarily so that we may
upload this package simply as "qemu.qmp" without introducing confusion
over whether or not "aqmp" is a new protocol or not.
The trade-off is increased confusion inside the QEMU developer
tree. Sorry!
Note: the 'private' member "_aqmp" in legacy.py also changes to "_qmp";
not out of necessity, but just to remove any traces of the "aqmp"
name.
Signed-off-by: John Snow <jsnow@redhat.com>
Reviewed-by: Beraldo Leal <bleal@redhat.com>
Acked-by: Hanna Reitz <hreitz@redhat.com>
Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@openvz.org>
Message-id: 20220330172812.3427355-8-jsnow@redhat.com
Signed-off-by: John Snow <jsnow@redhat.com>
Diffstat (limited to 'python')
-rw-r--r-- | python/PACKAGE.rst | 4 | ||||
-rw-r--r-- | python/README.rst | 4 | ||||
-rw-r--r-- | python/qemu/machine/machine.py | 4 | ||||
-rw-r--r-- | python/qemu/machine/qtest.py | 2 | ||||
-rw-r--r-- | python/qemu/qmp/__init__.py (renamed from python/qemu/aqmp/__init__.py) | 6 | ||||
-rw-r--r-- | python/qemu/qmp/aqmp_tui.py (renamed from python/qemu/aqmp/aqmp_tui.py) | 0 | ||||
-rw-r--r-- | python/qemu/qmp/error.py (renamed from python/qemu/aqmp/error.py) | 0 | ||||
-rw-r--r-- | python/qemu/qmp/events.py (renamed from python/qemu/aqmp/events.py) | 2 | ||||
-rw-r--r-- | python/qemu/qmp/legacy.py (renamed from python/qemu/aqmp/legacy.py) | 38 | ||||
-rw-r--r-- | python/qemu/qmp/message.py (renamed from python/qemu/aqmp/message.py) | 0 | ||||
-rw-r--r-- | python/qemu/qmp/models.py (renamed from python/qemu/aqmp/models.py) | 0 | ||||
-rw-r--r-- | python/qemu/qmp/protocol.py (renamed from python/qemu/aqmp/protocol.py) | 4 | ||||
-rw-r--r-- | python/qemu/qmp/py.typed (renamed from python/qemu/aqmp/py.typed) | 0 | ||||
-rw-r--r-- | python/qemu/qmp/qmp_client.py (renamed from python/qemu/aqmp/qmp_client.py) | 16 | ||||
-rw-r--r-- | python/qemu/qmp/qmp_shell.py (renamed from python/qemu/aqmp/qmp_shell.py) | 4 | ||||
-rw-r--r-- | python/qemu/qmp/util.py (renamed from python/qemu/aqmp/util.py) | 0 | ||||
-rw-r--r-- | python/qemu/utils/qemu_ga_client.py | 4 | ||||
-rw-r--r-- | python/qemu/utils/qom.py | 2 | ||||
-rw-r--r-- | python/qemu/utils/qom_common.py | 4 | ||||
-rw-r--r-- | python/qemu/utils/qom_fuse.py | 2 | ||||
-rw-r--r-- | python/setup.cfg | 10 | ||||
-rw-r--r-- | python/tests/protocol.py | 14 |
22 files changed, 60 insertions, 60 deletions
diff --git a/python/PACKAGE.rst b/python/PACKAGE.rst index ddfa9ba..b0b86cc 100644 --- a/python/PACKAGE.rst +++ b/python/PACKAGE.rst @@ -8,11 +8,11 @@ to change at any time. Usage ----- -The ``qemu.aqmp`` subpackage provides a library for communicating with +The ``qemu.qmp`` subpackage provides a library for communicating with QMP servers. The ``qemu.machine`` subpackage offers rudimentary facilities for launching and managing QEMU processes. Refer to each package's documentation -(``>>> help(qemu.aqmp)``, ``>>> help(qemu.machine)``) +(``>>> help(qemu.qmp)``, ``>>> help(qemu.machine)``) for more information. Contributing diff --git a/python/README.rst b/python/README.rst index eb52133..9c1fcea 100644 --- a/python/README.rst +++ b/python/README.rst @@ -3,7 +3,7 @@ QEMU Python Tooling This directory houses Python tooling used by the QEMU project to build, configure, and test QEMU. It is organized by namespace (``qemu``), and -then by package (e.g. ``qemu/machine``, ``qemu/aqmp``, etc). +then by package (e.g. ``qemu/machine``, ``qemu/qmp``, etc). ``setup.py`` is used by ``pip`` to install this tooling to the current environment. ``setup.cfg`` provides the packaging configuration used by @@ -59,7 +59,7 @@ Package installation also normally provides executable console scripts, so that tools like ``qmp-shell`` are always available via $PATH. To invoke them without installation, you can invoke e.g.: -``> PYTHONPATH=~/src/qemu/python python3 -m qemu.aqmp.qmp_shell`` +``> PYTHONPATH=~/src/qemu/python python3 -m qemu.qmp.qmp_shell`` The mappings between console script name and python module path can be found in ``setup.cfg``. diff --git a/python/qemu/machine/machine.py b/python/qemu/machine/machine.py index 41be025..07ac5a7 100644 --- a/python/qemu/machine/machine.py +++ b/python/qemu/machine/machine.py @@ -40,8 +40,8 @@ from typing import ( TypeVar, ) -from qemu.aqmp import SocketAddrT -from qemu.aqmp.legacy import ( +from qemu.qmp import SocketAddrT +from qemu.qmp.legacy import ( QEMUMonitorProtocol, QMPMessage, QMPReturnValue, diff --git a/python/qemu/machine/qtest.py b/python/qemu/machine/qtest.py index 13e0aaf..1a1fc6c 100644 --- a/python/qemu/machine/qtest.py +++ b/python/qemu/machine/qtest.py @@ -26,7 +26,7 @@ from typing import ( TextIO, ) -from qemu.aqmp import SocketAddrT +from qemu.qmp import SocketAddrT from .machine import QEMUMachine diff --git a/python/qemu/aqmp/__init__.py b/python/qemu/qmp/__init__.py index 2b69b26..69190d0 100644 --- a/python/qemu/aqmp/__init__.py +++ b/python/qemu/qmp/__init__.py @@ -6,8 +6,8 @@ asynchronously with QMP protocol servers, as implemented by QEMU, the QEMU Guest Agent, and the QEMU Storage Daemon. `QMPClient` provides the main functionality of this package. All errors -raised by this library derive from `QMPError`, see `aqmp.error` for -additional detail. See `aqmp.events` for an in-depth tutorial on +raised by this library derive from `QMPError`, see `qmp.error` for +additional detail. See `qmp.events` for an in-depth tutorial on managing QMP events. """ @@ -36,7 +36,7 @@ from .qmp_client import ExecInterruptedError, ExecuteError, QMPClient # Suppress logging unless an application engages it. -logging.getLogger('qemu.aqmp').addHandler(logging.NullHandler()) +logging.getLogger('qemu.qmp').addHandler(logging.NullHandler()) # The order of these fields impact the Sphinx documentation order. diff --git a/python/qemu/aqmp/aqmp_tui.py b/python/qemu/qmp/aqmp_tui.py index 59d3036..59d3036 100644 --- a/python/qemu/aqmp/aqmp_tui.py +++ b/python/qemu/qmp/aqmp_tui.py diff --git a/python/qemu/aqmp/error.py b/python/qemu/qmp/error.py index 24ba4d5..24ba4d5 100644 --- a/python/qemu/aqmp/error.py +++ b/python/qemu/qmp/error.py diff --git a/python/qemu/aqmp/events.py b/python/qemu/qmp/events.py index f3d4e2b..6199776 100644 --- a/python/qemu/aqmp/events.py +++ b/python/qemu/qmp/events.py @@ -1,5 +1,5 @@ """ -AQMP Events and EventListeners +QMP Events and EventListeners Asynchronous QMP uses `EventListener` objects to listen for events. An `EventListener` is a FIFO event queue that can be pre-filtered to listen diff --git a/python/qemu/aqmp/legacy.py b/python/qemu/qmp/legacy.py index dfcd20b..a8629b4 100644 --- a/python/qemu/aqmp/legacy.py +++ b/python/qemu/qmp/legacy.py @@ -78,13 +78,13 @@ class QEMUMonitorProtocol: server: bool = False, nickname: Optional[str] = None): - self._aqmp = QMPClient(nickname) + self._qmp = QMPClient(nickname) self._aloop = asyncio.get_event_loop() self._address = address self._timeout: Optional[float] = None if server: - self._sync(self._aqmp.start_server(self._address)) + self._sync(self._qmp.start_server(self._address)) _T = TypeVar('_T') @@ -96,9 +96,9 @@ class QEMUMonitorProtocol: ) def _get_greeting(self) -> Optional[QMPMessage]: - if self._aqmp.greeting is not None: + if self._qmp.greeting is not None: # pylint: disable=protected-access - return self._aqmp.greeting._asdict() + return self._qmp.greeting._asdict() return None def __enter__(self: _T) -> _T: @@ -141,11 +141,11 @@ class QEMUMonitorProtocol: :return: QMP greeting dict, or None if negotiate is false :raise ConnectError: on connection errors """ - self._aqmp.await_greeting = negotiate - self._aqmp.negotiate = negotiate + self._qmp.await_greeting = negotiate + self._qmp.negotiate = negotiate self._sync( - self._aqmp.connect(self._address) + self._qmp.connect(self._address) ) return self._get_greeting() @@ -160,10 +160,10 @@ class QEMUMonitorProtocol: :return: QMP greeting dict :raise ConnectError: on connection errors """ - self._aqmp.await_greeting = True - self._aqmp.negotiate = True + self._qmp.await_greeting = True + self._qmp.negotiate = True - self._sync(self._aqmp.accept(), timeout) + self._sync(self._qmp.accept(), timeout) ret = self._get_greeting() assert ret is not None @@ -183,7 +183,7 @@ class QEMUMonitorProtocol: # _raw() isn't a public API, because turning off # automatic ID assignment is discouraged. For # compatibility with iotests *only*, do it anyway. - self._aqmp._raw(qmp_cmd, assign_id=False), + self._qmp._raw(qmp_cmd, assign_id=False), self._timeout ) ) @@ -210,7 +210,7 @@ class QEMUMonitorProtocol: Build and send a QMP command to the monitor, report errors if any """ return self._sync( - self._aqmp.execute(cmd, kwds), + self._qmp.execute(cmd, kwds), self._timeout ) @@ -231,7 +231,7 @@ class QEMUMonitorProtocol: """ if not wait: # wait is False/0: "do not wait, do not except." - if self._aqmp.events.empty(): + if self._qmp.events.empty(): return None # If wait is 'True', wait forever. If wait is False/0, the events @@ -243,7 +243,7 @@ class QEMUMonitorProtocol: return dict( self._sync( - self._aqmp.events.get(), + self._qmp.events.get(), timeout ) ) @@ -263,7 +263,7 @@ class QEMUMonitorProtocol: :return: A list of QMP events. """ - events = [dict(x) for x in self._aqmp.events.clear()] + events = [dict(x) for x in self._qmp.events.clear()] if events: return events @@ -272,12 +272,12 @@ class QEMUMonitorProtocol: def clear_events(self) -> None: """Clear current list of pending events.""" - self._aqmp.events.clear() + self._qmp.events.clear() def close(self) -> None: """Close the connection.""" self._sync( - self._aqmp.disconnect() + self._qmp.disconnect() ) def settimeout(self, timeout: Optional[float]) -> None: @@ -298,10 +298,10 @@ class QEMUMonitorProtocol: """ Send a file descriptor to the remote via SCM_RIGHTS. """ - self._aqmp.send_fd_scm(fd) + self._qmp.send_fd_scm(fd) def __del__(self) -> None: - if self._aqmp.runstate == Runstate.IDLE: + if self._qmp.runstate == Runstate.IDLE: return if not self._aloop.is_running(): diff --git a/python/qemu/aqmp/message.py b/python/qemu/qmp/message.py index f76ccc9..f76ccc9 100644 --- a/python/qemu/aqmp/message.py +++ b/python/qemu/qmp/message.py diff --git a/python/qemu/aqmp/models.py b/python/qemu/qmp/models.py index de87f87..de87f87 100644 --- a/python/qemu/aqmp/models.py +++ b/python/qemu/qmp/models.py diff --git a/python/qemu/aqmp/protocol.py b/python/qemu/qmp/protocol.py index 36fae57..6ea8665 100644 --- a/python/qemu/aqmp/protocol.py +++ b/python/qemu/qmp/protocol.py @@ -196,9 +196,9 @@ class AsyncProtocol(Generic[T]): :param name: Name used for logging messages, if any. By default, messages - will log to 'qemu.aqmp.protocol', but each individual connection + will log to 'qemu.qmp.protocol', but each individual connection can be given its own logger by giving it a name; messages will - then log to 'qemu.aqmp.protocol.${name}'. + then log to 'qemu.qmp.protocol.${name}'. """ # pylint: disable=too-many-instance-attributes diff --git a/python/qemu/aqmp/py.typed b/python/qemu/qmp/py.typed index e69de29..e69de29 100644 --- a/python/qemu/aqmp/py.typed +++ b/python/qemu/qmp/py.typed diff --git a/python/qemu/aqmp/qmp_client.py b/python/qemu/qmp/qmp_client.py index 90a8737..5dcda04 100644 --- a/python/qemu/aqmp/qmp_client.py +++ b/python/qemu/qmp/qmp_client.py @@ -192,7 +192,7 @@ class QMPClient(AsyncProtocol[Message], Events): await self.qmp.runstate_changed.wait() await self.disconnect() - See `aqmp.events` for more detail on event handling patterns. + See `qmp.events` for more detail on event handling patterns. """ #: Logger object used for debugging messages. logger = logging.getLogger(__name__) @@ -416,7 +416,7 @@ class QMPClient(AsyncProtocol[Message], Events): @upper_half def _get_exec_id(self) -> str: - exec_id = f"__aqmp#{self._execute_id:05d}" + exec_id = f"__qmp#{self._execute_id:05d}" self._execute_id += 1 return exec_id @@ -476,7 +476,7 @@ class QMPClient(AsyncProtocol[Message], Events): An execution ID will be assigned if assign_id is `True`. It can be disabled, but this requires that an ID is manually assigned instead. For manually assigned IDs, you must not use the string - '__aqmp#' anywhere in the ID. + '__qmp#' anywhere in the ID. :param msg: The QMP `Message` to execute. :param assign_id: If True, assign a new execution ID. @@ -490,7 +490,7 @@ class QMPClient(AsyncProtocol[Message], Events): msg['id'] = self._get_exec_id() elif 'id' in msg: assert isinstance(msg['id'], str) - assert '__aqmp#' not in msg['id'] + assert '__qmp#' not in msg['id'] exec_id = await self._issue(msg) return await self._reply(exec_id) @@ -512,7 +512,7 @@ class QMPClient(AsyncProtocol[Message], Events): Assign an arbitrary execution ID to this message. If `False`, the existing id must either be absent (and no other such pending execution may omit an ID) or a string. If it is - a string, it must not start with '__aqmp#' and no other such + a string, it must not start with '__qmp#' and no other such pending execution may currently be using that ID. :return: Execution reply from the server. @@ -524,7 +524,7 @@ class QMPClient(AsyncProtocol[Message], Events): When assign_id is `False`, an ID is given, and it is not a string. :raise ValueError: When assign_id is `False`, but the ID is not usable; - Either because it starts with '__aqmp#' or it is already in-use. + Either because it starts with '__qmp#' or it is already in-use. """ # 1. convert generic Mapping or bytes to a QMP Message # 2. copy Message objects so that we assign an ID only to the copy. @@ -534,9 +534,9 @@ class QMPClient(AsyncProtocol[Message], Events): if not assign_id and 'id' in msg: if not isinstance(exec_id, str): raise TypeError(f"ID ('{exec_id}') must be a string.") - if exec_id.startswith('__aqmp#'): + if exec_id.startswith('__qmp#'): raise ValueError( - f"ID ('{exec_id}') must not start with '__aqmp#'." + f"ID ('{exec_id}') must not start with '__qmp#'." ) if not assign_id and exec_id in self._pending: diff --git a/python/qemu/aqmp/qmp_shell.py b/python/qemu/qmp/qmp_shell.py index c23f1b1..619ab42 100644 --- a/python/qemu/aqmp/qmp_shell.py +++ b/python/qemu/qmp/qmp_shell.py @@ -98,8 +98,8 @@ from typing import ( Sequence, ) -from qemu.aqmp import ConnectError, QMPError, SocketAddrT -from qemu.aqmp.legacy import ( +from qemu.qmp import ConnectError, QMPError, SocketAddrT +from qemu.qmp.legacy import ( QEMUMonitorProtocol, QMPBadPortError, QMPMessage, diff --git a/python/qemu/aqmp/util.py b/python/qemu/qmp/util.py index eaa5fc7..eaa5fc7 100644 --- a/python/qemu/aqmp/util.py +++ b/python/qemu/qmp/util.py diff --git a/python/qemu/utils/qemu_ga_client.py b/python/qemu/utils/qemu_ga_client.py index 15ed430..8c38a7a 100644 --- a/python/qemu/utils/qemu_ga_client.py +++ b/python/qemu/utils/qemu_ga_client.py @@ -50,8 +50,8 @@ from typing import ( Sequence, ) -from qemu.aqmp import ConnectError, SocketAddrT -from qemu.aqmp.legacy import QEMUMonitorProtocol +from qemu.qmp import ConnectError, SocketAddrT +from qemu.qmp.legacy import QEMUMonitorProtocol # This script has not seen many patches or careful attention in quite diff --git a/python/qemu/utils/qom.py b/python/qemu/utils/qom.py index bb5d1a7..bcf192f 100644 --- a/python/qemu/utils/qom.py +++ b/python/qemu/utils/qom.py @@ -32,7 +32,7 @@ QOM commands: import argparse -from qemu.aqmp import ExecuteError +from qemu.qmp import ExecuteError from .qom_common import QOMCommand diff --git a/python/qemu/utils/qom_common.py b/python/qemu/utils/qom_common.py index e034a6f..80da1b2 100644 --- a/python/qemu/utils/qom_common.py +++ b/python/qemu/utils/qom_common.py @@ -27,8 +27,8 @@ from typing import ( TypeVar, ) -from qemu.aqmp import QMPError -from qemu.aqmp.legacy import QEMUMonitorProtocol +from qemu.qmp import QMPError +from qemu.qmp.legacy import QEMUMonitorProtocol class ObjectPropertyInfo: diff --git a/python/qemu/utils/qom_fuse.py b/python/qemu/utils/qom_fuse.py index 653a76b..8dcd59f 100644 --- a/python/qemu/utils/qom_fuse.py +++ b/python/qemu/utils/qom_fuse.py @@ -48,7 +48,7 @@ from typing import ( import fuse from fuse import FUSE, FuseOSError, Operations -from qemu.aqmp import ExecuteError +from qemu.qmp import ExecuteError from .qom_common import QOMCommand diff --git a/python/setup.cfg b/python/setup.cfg index 49e3c28..773e51b 100644 --- a/python/setup.cfg +++ b/python/setup.cfg @@ -24,7 +24,7 @@ classifiers = [options] python_requires = >= 3.6 packages = - qemu.aqmp + qemu.qmp qemu.machine qemu.utils @@ -66,9 +66,9 @@ console_scripts = qom-tree = qemu.utils.qom:QOMTree.entry_point qom-fuse = qemu.utils.qom_fuse:QOMFuse.entry_point [fuse] qemu-ga-client = qemu.utils.qemu_ga_client:main - qmp-shell = qemu.aqmp.qmp_shell:main - qmp-shell-wrap = qemu.aqmp.qmp_shell:main_wrap - aqmp-tui = qemu.aqmp.aqmp_tui:main [tui] + qmp-shell = qemu.qmp.qmp_shell:main + qmp-shell-wrap = qemu.qmp.qmp_shell:main_wrap + aqmp-tui = qemu.qmp.aqmp_tui:main [tui] [flake8] extend-ignore = E722 # Prefer pylint's bare-except checks to flake8's @@ -84,7 +84,7 @@ namespace_packages = True # fusepy has no type stubs: allow_subclassing_any = True -[mypy-qemu.aqmp.aqmp_tui] +[mypy-qemu.qmp.aqmp_tui] # urwid and urwid_readline have no type stubs: allow_subclassing_any = True diff --git a/python/tests/protocol.py b/python/tests/protocol.py index d6849ad..56c4d44 100644 --- a/python/tests/protocol.py +++ b/python/tests/protocol.py @@ -6,9 +6,9 @@ from tempfile import TemporaryDirectory import avocado -from qemu.aqmp import ConnectError, Runstate -from qemu.aqmp.protocol import AsyncProtocol, StateError -from qemu.aqmp.util import asyncio_run, create_task +from qemu.qmp import ConnectError, Runstate +from qemu.qmp.protocol import AsyncProtocol, StateError +from qemu.qmp.util import asyncio_run, create_task class NullProtocol(AsyncProtocol[None]): @@ -183,7 +183,7 @@ class Smoke(avocado.Test): def testLogger(self): self.assertEqual( self.proto.logger.name, - 'qemu.aqmp.protocol' + 'qemu.qmp.protocol' ) def testName(self): @@ -196,7 +196,7 @@ class Smoke(avocado.Test): self.assertEqual( self.proto.logger.name, - 'qemu.aqmp.protocol.Steve' + 'qemu.qmp.protocol.Steve' ) self.assertEqual( @@ -431,7 +431,7 @@ class Accept(Connect): await self.proto.start_server_and_accept('/dev/null') async def _hanging_connection(self): - with TemporaryDirectory(suffix='.aqmp') as tmpdir: + with TemporaryDirectory(suffix='.qmp') as tmpdir: sock = os.path.join(tmpdir, type(self.proto).__name__ + ".sock") await self.proto.start_server_and_accept(sock) @@ -587,7 +587,7 @@ class SimpleSession(TestBase): @TestBase.async_test async def testSmoke(self): - with TemporaryDirectory(suffix='.aqmp') as tmpdir: + with TemporaryDirectory(suffix='.qmp') as tmpdir: sock = os.path.join(tmpdir, type(self.proto).__name__ + ".sock") server_task = create_task(self.server.start_server_and_accept(sock)) |