[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH] qmp-shell: fix pretty printing of JSON responses
From: |
Daniel P. Berrange |
Subject: |
[Qemu-devel] [PATCH] qmp-shell: fix pretty printing of JSON responses |
Date: |
Mon, 22 Feb 2016 17:02:47 +0000 |
Pretty printing of JSON responses is important to be able
to understand large responses from query commands in
particular, eg
(QEMU) query-chardev
{ u'return': [ { u'filename': u'vc',
u'frontend-open': False,
u'label': u'parallel0'},
{ u'filename': u'vc',
u'frontend-open': True,
u'label': u'serial0'},
{ u'filename': u'unix:/tmp/qemp,server',
u'frontend-open': True,
u'label': u'compat_monitor0'}]}
Unfortunately this was broken during the addition of
the verbose flag in
commit 1ceca07e48ead0dd2e41576c81d40e6a91cafefd
Author: John Snow <address@hidden>
Date: Wed Apr 29 15:14:04 2015 -0400
scripts: qmp-shell: Add verbose flag
This is because that change turned the python data
structure into a formatted JSON string before the
pretty print was given it. So we're just pretty
printing a string, which is a no-op.
This fixes pretty printing of the command responses
and as an added benefit it will also pretty print
command arguments in verbose mode
(QEMU) object-add qom-type=secret id=sec0 props={"data":"123456"}
{ 'arguments': { 'id': 'sec0',
'props': { u'data': u'123456'},
'qom-type': 'secret'},
'execute': 'object-add'}
{ u'return': { }}
Signed-off-by: Daniel P. Berrange <address@hidden>
---
scripts/qmp/qmp-shell | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/scripts/qmp/qmp-shell b/scripts/qmp/qmp-shell
index 7a402ed..15bbc5e 100755
--- a/scripts/qmp/qmp-shell
+++ b/scripts/qmp/qmp-shell
@@ -231,10 +231,10 @@ class QMPShell(qmp.QEMUMonitorProtocol):
return qmpcmd
def _print(self, qmp):
- jsobj = json.dumps(qmp)
if self._pp is not None:
- self._pp.pprint(jsobj)
+ self._pp.pprint(qmp)
else:
+ jsobj = json.dumps(qmp)
print str(jsobj)
def _execute_cmd(self, cmdline):
--
2.5.0
- [Qemu-devel] [PATCH] qmp-shell: fix pretty printing of JSON responses,
Daniel P. Berrange <=