提交 09177654 编写于 作者: E Eduardo Habkost

scripts: Remove debug parameter from QEMUMonitorProtocol

Use logging module for the QMP debug messages.  The only scripts
that set debug=True are iotests.py and guestperf/engine.py, and
they already call logging.basicConfig() to set up logging.

Scripts that don't configure logging are safe as long as they
don't need debugging output, because debug messages don't trigger
the "No handlers could be found for logger" message from the
Python logging module.

Scripts that already configure logging but don't use debug=True
(e.g. scripts/vm/basevm.py) will get QMP debugging enabled for
free.

Cc: "Alex Bennée" <alex.bennee@linaro.org>
Cc: Fam Zheng <famz@redhat.com>
Cc: "Philippe Mathieu-Daudé" <f4bug@amsat.org>
Signed-off-by: NEduardo Habkost <ehabkost@redhat.com>
Message-Id: <20171005172013.3098-3-ehabkost@redhat.com>
Reviewed-by: NLukáš Doktor <ldoktor@redhat.com>
Signed-off-by: NEduardo Habkost <ehabkost@redhat.com>
上级 8af09b80
...@@ -177,8 +177,7 @@ class QEMUMachine(object): ...@@ -177,8 +177,7 @@ class QEMUMachine(object):
def _pre_launch(self): def _pre_launch(self):
self._qmp = qmp.qmp.QEMUMonitorProtocol(self._monitor_address, self._qmp = qmp.qmp.QEMUMonitorProtocol(self._monitor_address,
server=True, server=True)
debug=self._debug)
def _post_launch(self): def _post_launch(self):
self._qmp.accept() self._qmp.accept()
......
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
import json import json
import errno import errno
import socket import socket
import sys import logging
class QMPError(Exception): class QMPError(Exception):
...@@ -32,12 +32,14 @@ class QMPTimeoutError(QMPError): ...@@ -32,12 +32,14 @@ class QMPTimeoutError(QMPError):
class QEMUMonitorProtocol(object): class QEMUMonitorProtocol(object):
#: Logger object for debugging messages
logger = logging.getLogger('QMP')
#: Socket's error class #: Socket's error class
error = socket.error error = socket.error
#: Socket's timeout #: Socket's timeout
timeout = socket.timeout timeout = socket.timeout
def __init__(self, address, server=False, debug=False): def __init__(self, address, server=False):
""" """
Create a QEMUMonitorProtocol class. Create a QEMUMonitorProtocol class.
...@@ -51,7 +53,6 @@ class QEMUMonitorProtocol(object): ...@@ -51,7 +53,6 @@ class QEMUMonitorProtocol(object):
""" """
self.__events = [] self.__events = []
self.__address = address self.__address = address
self._debug = debug
self.__sock = self.__get_sock() self.__sock = self.__get_sock()
self.__sockfile = None self.__sockfile = None
if server: if server:
...@@ -83,8 +84,7 @@ class QEMUMonitorProtocol(object): ...@@ -83,8 +84,7 @@ class QEMUMonitorProtocol(object):
return return
resp = json.loads(data) resp = json.loads(data)
if 'event' in resp: if 'event' in resp:
if self._debug: self.logger.debug("<<< %s", resp)
print >>sys.stderr, "QMP:<<< %s" % resp
self.__events.append(resp) self.__events.append(resp)
if not only_event: if not only_event:
continue continue
...@@ -164,8 +164,7 @@ class QEMUMonitorProtocol(object): ...@@ -164,8 +164,7 @@ class QEMUMonitorProtocol(object):
@return QMP response as a Python dict or None if the connection has @return QMP response as a Python dict or None if the connection has
been closed been closed
""" """
if self._debug: self.logger.debug(">>> %s", qmp_cmd)
print >>sys.stderr, "QMP:>>> %s" % qmp_cmd
try: try:
self.__sock.sendall(json.dumps(qmp_cmd)) self.__sock.sendall(json.dumps(qmp_cmd))
except socket.error as err: except socket.error as err:
...@@ -173,8 +172,7 @@ class QEMUMonitorProtocol(object): ...@@ -173,8 +172,7 @@ class QEMUMonitorProtocol(object):
return return
raise socket.error(err) raise socket.error(err)
resp = self.__json_read() resp = self.__json_read()
if self._debug: self.logger.debug("<<< %s", resp)
print >>sys.stderr, "QMP:<<< %s" % resp
return resp return resp
def cmd(self, name, args=None, cmd_id=None): def cmd(self, name, args=None, cmd_id=None):
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册