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


Reply via email to