scripts: add a 'debug' parameter to QEMUMonitorProtocol
Add a 'debug' parameter to the QEMUMonitorProtocol class which will cause it to print out all JSON strings on sys.stderr Signed-off-by: Daniel P. Berrange <berrange@redhat.com> Message-Id: <1469020993-29426-3-git-send-email-berrange@redhat.com> Signed-off-by: Amit Shah <amit.shah@redhat.com>
This commit is contained in:
parent
6f7a4a81ce
commit
991e7c4650
@ -11,6 +11,7 @@
|
|||||||
import json
|
import json
|
||||||
import errno
|
import errno
|
||||||
import socket
|
import socket
|
||||||
|
import sys
|
||||||
|
|
||||||
class QMPError(Exception):
|
class QMPError(Exception):
|
||||||
pass
|
pass
|
||||||
@ -25,7 +26,7 @@ class QMPTimeoutError(QMPError):
|
|||||||
pass
|
pass
|
||||||
|
|
||||||
class QEMUMonitorProtocol:
|
class QEMUMonitorProtocol:
|
||||||
def __init__(self, address, server=False):
|
def __init__(self, address, server=False, debug=False):
|
||||||
"""
|
"""
|
||||||
Create a QEMUMonitorProtocol class.
|
Create a QEMUMonitorProtocol class.
|
||||||
|
|
||||||
@ -39,6 +40,7 @@ class QEMUMonitorProtocol:
|
|||||||
"""
|
"""
|
||||||
self.__events = []
|
self.__events = []
|
||||||
self.__address = address
|
self.__address = address
|
||||||
|
self._debug = debug
|
||||||
self.__sock = self.__get_sock()
|
self.__sock = self.__get_sock()
|
||||||
if server:
|
if server:
|
||||||
self.__sock.bind(self.__address)
|
self.__sock.bind(self.__address)
|
||||||
@ -68,6 +70,8 @@ class QEMUMonitorProtocol:
|
|||||||
return
|
return
|
||||||
resp = json.loads(data)
|
resp = json.loads(data)
|
||||||
if 'event' in resp:
|
if 'event' in resp:
|
||||||
|
if self._debug:
|
||||||
|
print >>sys.stderr, "QMP:<<< %s" % resp
|
||||||
self.__events.append(resp)
|
self.__events.append(resp)
|
||||||
if not only_event:
|
if not only_event:
|
||||||
continue
|
continue
|
||||||
@ -148,13 +152,18 @@ class QEMUMonitorProtocol:
|
|||||||
@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:
|
||||||
|
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:
|
||||||
if err[0] == errno.EPIPE:
|
if err[0] == errno.EPIPE:
|
||||||
return
|
return
|
||||||
raise socket.error(err)
|
raise socket.error(err)
|
||||||
return self.__json_read()
|
resp = self.__json_read()
|
||||||
|
if self._debug:
|
||||||
|
print >>sys.stderr, "QMP:<<< %s" % resp
|
||||||
|
return resp
|
||||||
|
|
||||||
def cmd(self, name, args=None, id=None):
|
def cmd(self, name, args=None, id=None):
|
||||||
"""
|
"""
|
||||||
|
Loading…
Reference in New Issue
Block a user