qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH for-2.11 v2 4/5] qmp-shell: Accept QMP command a


From: Markus Armbruster
Subject: Re: [Qemu-devel] [PATCH for-2.11 v2 4/5] qmp-shell: Accept QMP command as argument
Date: Mon, 21 Aug 2017 11:22:20 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/25.2 (gnu/linux)

Eduardo Habkost <address@hidden> writes:

> On Wed, Aug 16, 2017 at 08:25:41AM +0200, Markus Armbruster wrote:
>> Eduardo Habkost <address@hidden> writes:
>> 
>> > On Tue, Aug 15, 2017 at 12:03:53PM +0200, Markus Armbruster wrote:
>> >> Eduardo Habkost <address@hidden> writes:
>> >> 
>> >> Suggest to insert here:
>> >> 
>> >>   If additional arguments QMP-COMMAND ARG=VAL... are given, run just
>> >>   that QMP command instead of the REPL.
>> >> 
>> >> Question: is this limited to simple arguments?  If no, how would I write
>> >> an object argument?  For instance, how would I do
>> >> 
>> >>     { "execute": "blockdev-add", "arguments": { "node-name": "foo", 
>> >> "driver": "nbd", "server": { "type": "inet", "host": "localhost", "port": 
>> >> "12345" } } }
>> >> 
>> >> ?
>> >
>> > Exactly the same way you would write it when running qmp-shell in
>> > interactive mode.  e.g.:
>> >
>> >   $ ./scripts/qmp/qmp-shell /tmp/qmp blockdev-add driver=qcow2 
>> > node-name=node-E 'file={"driver":"file","filename":"/path/to/file.qcow2"}'
>> 
>> I see.
>> 
>> The QEMU command line uses dotted key syntax instead.
>
> You mean -blockdev, or is there another way to send QMP commands
> to QEMU that I'm not aware of?

Dotted keys were invented for the block layer's -drive.  I adopted them
for -blockdev after considerable discussion.  The -blockdev code is all
new, and it even has documentation and tests.

>> To be honest, the less qmp-shell is used, the happier I am.
>
> What people would use instead of it?

The syntactic sugar qmp-shell provides over plain QMP doesn't simplify
its use all that much, and it can get in the way.

For my interactive QMP needs, I use

    $ socat UNIX:/wherever/qmp-socket 
READLINE,history=$HOME/.qmp_history,prompt='QMP> '

In programs, I send or receive either plain text or JSON objects,
depending on the program's needs.  Libqtest supports the latter.

>>                                                              Would you
>> like to serve as its sub-maintainer?
>
> I'd be glad to.

Great!  Please post a suitable MAINTAINERS stanza.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]