Re: [PATCH v4] python/qemu/qmp.py: QMP debug with VM label

2020-03-17 Thread Cleber Rosa
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

2020-03-17 Thread Wainer dos Santos Moschetta



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

2020-03-16 Thread John Snow



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

2020-03-16 Thread Oksana Vohchana
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