Commit 09177654 authored by Eduardo Habkost's avatar Eduardo Habkost
Browse files

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: default avatarEduardo Habkost <ehabkost@redhat.com>
Message-Id: <20171005172013.3098-3-ehabkost@redhat.com>
Reviewed-by: default avatarLukáš Doktor <ldoktor@redhat.com>
Signed-off-by: default avatarEduardo Habkost <ehabkost@redhat.com>
parent 8af09b80
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -177,8 +177,7 @@ class QEMUMachine(object):

    def _pre_launch(self):
        self._qmp = qmp.qmp.QEMUMonitorProtocol(self._monitor_address,
                                                server=True,
                                                debug=self._debug)
                                                server=True)

    def _post_launch(self):
        self._qmp.accept()
+7 −9
Original line number Diff line number Diff line
@@ -11,7 +11,7 @@
import json
import errno
import socket
import sys
import logging


class QMPError(Exception):
@@ -32,12 +32,14 @@ class QMPTimeoutError(QMPError):

class QEMUMonitorProtocol(object):

    #: Logger object for debugging messages
    logger = logging.getLogger('QMP')
    #: Socket's error class
    error = socket.error
    #: Socket's timeout
    timeout = socket.timeout

    def __init__(self, address, server=False, debug=False):
    def __init__(self, address, server=False):
        """
        Create a QEMUMonitorProtocol class.

@@ -51,7 +53,6 @@ class QEMUMonitorProtocol(object):
        """
        self.__events = []
        self.__address = address
        self._debug = debug
        self.__sock = self.__get_sock()
        self.__sockfile = None
        if server:
@@ -83,8 +84,7 @@ class QEMUMonitorProtocol(object):
                return
            resp = json.loads(data)
            if 'event' in resp:
                if self._debug:
                    print >>sys.stderr, "QMP:<<< %s" % resp
                self.logger.debug("<<< %s", resp)
                self.__events.append(resp)
                if not only_event:
                    continue
@@ -164,8 +164,7 @@ class QEMUMonitorProtocol(object):
        @return QMP response as a Python dict or None if the connection has
                been closed
        """
        if self._debug:
            print >>sys.stderr, "QMP:>>> %s" % qmp_cmd
        self.logger.debug(">>> %s", qmp_cmd)
        try:
            self.__sock.sendall(json.dumps(qmp_cmd))
        except socket.error as err:
@@ -173,8 +172,7 @@ class QEMUMonitorProtocol(object):
                return
            raise socket.error(err)
        resp = self.__json_read()
        if self._debug:
            print >>sys.stderr, "QMP:<<< %s" % resp
        self.logger.debug("<<< %s", resp)
        return resp

    def cmd(self, name, args=None, cmd_id=None):