Message ID | 20210917054047.2042843-16-jsnow@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Switch iotests to using Async QMP | expand |
On 17.09.21 07:40, John Snow wrote: > Swap out the synchronous QEMUMonitorProtocol from qemu.qmp with the sync > wrapper from qemu.aqmp instead. > > Add an escape hatch in the form of the environment variable > QEMU_PYTHON_LEGACY_QMP which allows you to cajole QEMUMachine into using > the old interface, proving that both implementations work concurrently. > > Signed-off-by: John Snow <jsnow@redhat.com> > --- > python/qemu/machine/machine.py | 7 ++++++- > 1 file changed, 6 insertions(+), 1 deletion(-) > > diff --git a/python/qemu/machine/machine.py b/python/qemu/machine/machine.py > index 8f5a6649e5..6b005dd5d1 100644 > --- a/python/qemu/machine/machine.py > +++ b/python/qemu/machine/machine.py > @@ -41,7 +41,6 @@ > ) > > from qemu.qmp import ( # pylint: disable=import-error > - QEMUMonitorProtocol, > QMPMessage, > QMPReturnValue, > SocketAddrT, > @@ -50,6 +49,12 @@ > from . import console_socket > > > +if os.environ.get('QEMU_PYTHON_LEGACY_QMP'): > + from qemu.qmp import QEMUMonitorProtocol > +else: > + from qemu.aqmp.legacy import QEMUMonitorProtocol > + > + > LOG = logging.getLogger(__name__) Black magic. Reviewed-by: Hanna Reitz <hreitz@redhat.com> Tested-by: Hanna Reitz <hreitz@redhat.com>
On Fri, Sep 17, 2021 at 10:40 AM Hanna Reitz <hreitz@redhat.com> wrote: > On 17.09.21 07:40, John Snow wrote: > > Swap out the synchronous QEMUMonitorProtocol from qemu.qmp with the sync > > wrapper from qemu.aqmp instead. > > > > Add an escape hatch in the form of the environment variable > > QEMU_PYTHON_LEGACY_QMP which allows you to cajole QEMUMachine into using > > the old interface, proving that both implementations work concurrently. > > > > Signed-off-by: John Snow <jsnow@redhat.com> > > --- > > python/qemu/machine/machine.py | 7 ++++++- > > 1 file changed, 6 insertions(+), 1 deletion(-) > > > > diff --git a/python/qemu/machine/machine.py > b/python/qemu/machine/machine.py > > index 8f5a6649e5..6b005dd5d1 100644 > > --- a/python/qemu/machine/machine.py > > +++ b/python/qemu/machine/machine.py > > @@ -41,7 +41,6 @@ > > ) > > > > from qemu.qmp import ( # pylint: disable=import-error > > - QEMUMonitorProtocol, > > QMPMessage, > > QMPReturnValue, > > SocketAddrT, > > @@ -50,6 +49,12 @@ > > from . import console_socket > > > > > > +if os.environ.get('QEMU_PYTHON_LEGACY_QMP'): > > + from qemu.qmp import QEMUMonitorProtocol > > +else: > > + from qemu.aqmp.legacy import QEMUMonitorProtocol > > + > > + > > LOG = logging.getLogger(__name__) > > Black magic. > > Reviewed-by: Hanna Reitz <hreitz@redhat.com> > Tested-by: Hanna Reitz <hreitz@redhat.com> > > Thanks for taking a look! Sorry for making you look at python :)
diff --git a/python/qemu/machine/machine.py b/python/qemu/machine/machine.py index 8f5a6649e5..6b005dd5d1 100644 --- a/python/qemu/machine/machine.py +++ b/python/qemu/machine/machine.py @@ -41,7 +41,6 @@ ) from qemu.qmp import ( # pylint: disable=import-error - QEMUMonitorProtocol, QMPMessage, QMPReturnValue, SocketAddrT, @@ -50,6 +49,12 @@ from . import console_socket +if os.environ.get('QEMU_PYTHON_LEGACY_QMP'): + from qemu.qmp import QEMUMonitorProtocol +else: + from qemu.aqmp.legacy import QEMUMonitorProtocol + + LOG = logging.getLogger(__name__)
Swap out the synchronous QEMUMonitorProtocol from qemu.qmp with the sync wrapper from qemu.aqmp instead. Add an escape hatch in the form of the environment variable QEMU_PYTHON_LEGACY_QMP which allows you to cajole QEMUMachine into using the old interface, proving that both implementations work concurrently. Signed-off-by: John Snow <jsnow@redhat.com> --- python/qemu/machine/machine.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-)