QMP: allow JSON dict arguments in qmp-shell
qmp-shell hides the QMP wire protocol JSON encoding from the user. Most of the time this is helpful and makes the command-line human-friendly. Some QMP commands take a dict as an argument. In order to express this we need to revert back to JSON notation. This patch allows JSON dict arguments in qmp-shell so commands like blockdev-add and nbd-server-start can be invoked: (QEMU) blockdev-add options={"driver":"file","id":"drive1",...} Note that spaces are not allowed since str.split() is used to break up the command-line arguments first. Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com> Reviewed-by: Benoit Canet <benoit@irqsave.net> Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
This commit is contained in:
parent
dde3a21840
commit
ff9ec34de8
@ -31,6 +31,7 @@
|
||||
# (QEMU)
|
||||
|
||||
import qmp
|
||||
import json
|
||||
import readline
|
||||
import sys
|
||||
import pprint
|
||||
@ -107,6 +108,8 @@ class QMPShell(qmp.QEMUMonitorProtocol):
|
||||
value = True
|
||||
elif opt[1] == 'false':
|
||||
value = False
|
||||
elif opt[1].startswith('{'):
|
||||
value = json.loads(opt[1])
|
||||
else:
|
||||
value = opt[1]
|
||||
qmpcmd['arguments'][opt[0]] = value
|
||||
|
Loading…
Reference in New Issue
Block a user