On Tue, Feb 7, 2023 at 2:03 PM Steve Sistare <[email protected]> wrote: > > Provide reopen_qmp_connection() to reopen a closed monitor connection. > This will be needed by cpr, because qemu exec closes the monitor socket. > > Signed-off-by: Steve Sistare <[email protected]> > Reviewed-by: John Snow <[email protected]> > --- > python/qemu/machine/machine.py | 10 ++++++++++ > 1 file changed, 10 insertions(+) > > diff --git a/python/qemu/machine/machine.py b/python/qemu/machine/machine.py > index ef94dcf..557209a 100644 > --- a/python/qemu/machine/machine.py > +++ b/python/qemu/machine/machine.py > @@ -501,6 +501,16 @@ def _close_qmp_connection(self) -> None: > finally: > self._qmp_connection = None > > + def reopen_qmp_connection(self) -> None: > + """Close and re-open the QMP connection.""" > + self._close_qmp_connection() > + self._qmp_connection = QEMUMonitorProtocol( > + self._monitor_address, > + server=True, > + nickname=self._name > + ) > + self._qmp.accept(self._qmp_timer) > + > def _early_cleanup(self) -> None: > """ > Perform any cleanup that needs to happen before the VM exits. > -- > 1.8.3.1 >
This code is still mechanically fine as far as I can tell, but I lost the plot on why it's needed - Can you please elaborate for me on what you mean by "qemu exec will close the socket"? (R-B still stands, but since I am rewriting machine.py to be natively async, I should be aware of your new use case.) --js
