aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRyota Ozaki <ozaki.ryota@gmail.com>2012-09-14 21:44:20 +0900
committerLuiz Capitulino <lcapitulino@redhat.com>2012-09-26 10:45:02 -0300
commite9d17b6890ae772f3652c8cacf4e1f72f576f907 (patch)
tree938833b05d42c7ce7414ad25acc6ee60b5ea024c
parentac05f3492421caeb05809ffa02c6198ede179e43 (diff)
downloadqemu-e9d17b6890ae772f3652c8cacf4e1f72f576f907.zip
qemu-e9d17b6890ae772f3652c8cacf4e1f72f576f907.tar.gz
qemu-e9d17b6890ae772f3652c8cacf4e1f72f576f907.tar.bz2
Make negotiation optional in QEMUMonitorProtocol
This is a preparation for qemu-ga-client which uses QEMUMonitorProtocol class. The class tries to negotiate capabilities on connect, however, qemu-ga doesn't suppose it and fails. This change makes the negotiation optional, though it's still performed by default for compatibility. Signed-off-by: Ryota Ozaki <ozaki.ryota@gmail.com> Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
-rw-r--r--QMP/qmp.py7
1 files changed, 4 insertions, 3 deletions
diff --git a/QMP/qmp.py b/QMP/qmp.py
index 36ecc1d..5a573e1 100644
--- a/QMP/qmp.py
+++ b/QMP/qmp.py
@@ -49,7 +49,6 @@ class QEMUMonitorProtocol:
return socket.socket(family, socket.SOCK_STREAM)
def __negotiate_capabilities(self):
- self.__sockfile = self.__sock.makefile()
greeting = self.__json_read()
if greeting is None or not greeting.has_key('QMP'):
raise QMPConnectError
@@ -73,7 +72,7 @@ class QEMUMonitorProtocol:
error = socket.error
- def connect(self):
+ def connect(self, negotiate=True):
"""
Connect to the QMP Monitor and perform capabilities negotiation.
@@ -83,7 +82,9 @@ class QEMUMonitorProtocol:
@raise QMPCapabilitiesError if fails to negotiate capabilities
"""
self.__sock.connect(self.__address)
- return self.__negotiate_capabilities()
+ self.__sockfile = self.__sock.makefile()
+ if negotiate:
+ return self.__negotiate_capabilities()
def accept(self):
"""