Re: [PATCH v4] python/qemu/qmp.py: QMP debug with VM label
On Mon, Mar 16, 2020 at 12:32:03PM +0200, Oksana Vohchana wrote: > QEMUMachine writes some messages to the default logger. > But it sometimes hard to read the output if we have requests to > more than one VM. > This patch adds a label to the logger in the debug mode. > > Signed-off-by: Oksana Vohchana Reviewed-by: Cleber Rosa Queueing it on my python-next branch. Thanks! signature.asc Description: PGP signature
Re: [PATCH v4] python/qemu/qmp.py: QMP debug with VM label
On 3/16/20 7:32 AM, Oksana Vohchana wrote: QEMUMachine writes some messages to the default logger. But it sometimes hard to read the output if we have requests to more than one VM. For example, tests/acceptance/migration.py uses two VMs and reading the qmp outputs on avocado's log is very confusing. Certainly this change will help to improve that situation, just need to adapt tests/acceptance/avocado_qemu/__init__.py to create the QEMUMachine object with a name. Anyway, this patch looks good to me so: Reviewed-by: Wainer dos Santos Moschetta Thanks! This patch adds a label to the logger in the debug mode. Signed-off-by: Oksana Vohchana --- v2: - Instead of shown the label in the message it provides the label only in the debug logger information. v3: - Fixes coding style problems. v4: - Use a suffix method to get a children's logger process from the parent. --- python/qemu/machine.py | 3 ++- python/qemu/qmp.py | 5 - 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/python/qemu/machine.py b/python/qemu/machine.py index 183d8f3d38..f53abfa492 100644 --- a/python/qemu/machine.py +++ b/python/qemu/machine.py @@ -270,7 +270,8 @@ class QEMUMachine(object): self._vm_monitor = os.path.join(self._sock_dir, self._name + "-monitor.sock") self._remove_files.append(self._vm_monitor) -self._qmp = qmp.QEMUMonitorProtocol(self._vm_monitor, server=True) +self._qmp = qmp.QEMUMonitorProtocol(self._vm_monitor, server=True, +nickname=self._name) def _post_launch(self): if self._qmp: diff --git a/python/qemu/qmp.py b/python/qemu/qmp.py index f40586eedd..d6c9b2f4b1 100644 --- a/python/qemu/qmp.py +++ b/python/qemu/qmp.py @@ -46,7 +46,7 @@ class QEMUMonitorProtocol: #: Logger object for debugging messages logger = logging.getLogger('QMP') -def __init__(self, address, server=False): +def __init__(self, address, server=False, nickname=None): """ Create a QEMUMonitorProtocol class. @@ -62,6 +62,9 @@ class QEMUMonitorProtocol: self.__address = address self.__sock = self.__get_sock() self.__sockfile = None +self._nickname = nickname +if self._nickname: +self.logger = logging.getLogger('QMP').getChild(self._nickname) if server: self.__sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) self.__sock.bind(self.__address)
Re: [PATCH v4] python/qemu/qmp.py: QMP debug with VM label
On 3/16/20 6:32 AM, Oksana Vohchana wrote: > QEMUMachine writes some messages to the default logger. > But it sometimes hard to read the output if we have requests to > more than one VM. > This patch adds a label to the logger in the debug mode. > > Signed-off-by: Oksana Vohchana > --- > v2: > - Instead of shown the label in the message it provides the label >only in the debug logger information. > v3: > - Fixes coding style problems. > v4: > - Use a suffix method to get a children's logger process from the parent. > --- > python/qemu/machine.py | 3 ++- > python/qemu/qmp.py | 5 - > 2 files changed, 6 insertions(+), 2 deletions(-) > > diff --git a/python/qemu/machine.py b/python/qemu/machine.py > index 183d8f3d38..f53abfa492 100644 > --- a/python/qemu/machine.py > +++ b/python/qemu/machine.py > @@ -270,7 +270,8 @@ class QEMUMachine(object): > self._vm_monitor = os.path.join(self._sock_dir, > self._name + "-monitor.sock") > self._remove_files.append(self._vm_monitor) > -self._qmp = qmp.QEMUMonitorProtocol(self._vm_monitor, > server=True) > +self._qmp = qmp.QEMUMonitorProtocol(self._vm_monitor, > server=True, > +nickname=self._name) > > def _post_launch(self): > if self._qmp: > diff --git a/python/qemu/qmp.py b/python/qemu/qmp.py > index f40586eedd..d6c9b2f4b1 100644 > --- a/python/qemu/qmp.py > +++ b/python/qemu/qmp.py > @@ -46,7 +46,7 @@ class QEMUMonitorProtocol: > #: Logger object for debugging messages > logger = logging.getLogger('QMP') > > -def __init__(self, address, server=False): > +def __init__(self, address, server=False, nickname=None): > """ > Create a QEMUMonitorProtocol class. > > @@ -62,6 +62,9 @@ class QEMUMonitorProtocol: > self.__address = address > self.__sock = self.__get_sock() > self.__sockfile = None > +self._nickname = nickname > +if self._nickname: > +self.logger = logging.getLogger('QMP').getChild(self._nickname) > if server: > self.__sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) > self.__sock.bind(self.__address) > Looks right to me. Thank you for taking the time to get this cleaned up. Reviewed-by: John Snow
[PATCH v4] python/qemu/qmp.py: QMP debug with VM label
QEMUMachine writes some messages to the default logger. But it sometimes hard to read the output if we have requests to more than one VM. This patch adds a label to the logger in the debug mode. Signed-off-by: Oksana Vohchana --- v2: - Instead of shown the label in the message it provides the label only in the debug logger information. v3: - Fixes coding style problems. v4: - Use a suffix method to get a children's logger process from the parent. --- python/qemu/machine.py | 3 ++- python/qemu/qmp.py | 5 - 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/python/qemu/machine.py b/python/qemu/machine.py index 183d8f3d38..f53abfa492 100644 --- a/python/qemu/machine.py +++ b/python/qemu/machine.py @@ -270,7 +270,8 @@ class QEMUMachine(object): self._vm_monitor = os.path.join(self._sock_dir, self._name + "-monitor.sock") self._remove_files.append(self._vm_monitor) -self._qmp = qmp.QEMUMonitorProtocol(self._vm_monitor, server=True) +self._qmp = qmp.QEMUMonitorProtocol(self._vm_monitor, server=True, +nickname=self._name) def _post_launch(self): if self._qmp: diff --git a/python/qemu/qmp.py b/python/qemu/qmp.py index f40586eedd..d6c9b2f4b1 100644 --- a/python/qemu/qmp.py +++ b/python/qemu/qmp.py @@ -46,7 +46,7 @@ class QEMUMonitorProtocol: #: Logger object for debugging messages logger = logging.getLogger('QMP') -def __init__(self, address, server=False): +def __init__(self, address, server=False, nickname=None): """ Create a QEMUMonitorProtocol class. @@ -62,6 +62,9 @@ class QEMUMonitorProtocol: self.__address = address self.__sock = self.__get_sock() self.__sockfile = None +self._nickname = nickname +if self._nickname: +self.logger = logging.getLogger('QMP').getChild(self._nickname) if server: self.__sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) self.__sock.bind(self.__address) -- 2.21.1