qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH 1/1] Add -version-simple argument, printing only


From: Markus Armbruster
Subject: Re: [Qemu-devel] [PATCH 1/1] Add -version-simple argument, printing only version number.
Date: Fri, 14 May 2010 13:24:44 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/23.1 (gnu/linux)

"Daniel P. Berrange" <address@hidden> writes:

> On Fri, May 14, 2010 at 11:42:57AM +0200, Markus Armbruster wrote:
>> "Daniel P. Berrange" <address@hidden> writes:
[...]
>> > It would also be nice to avoid having to parse the -help output to 
>> > determine
>> > ARGV supported too. I wonder if it would be a good idea to just produce a
>> > well structured equivalent to -help that provides the same data, but in 
>> > JSON format for sane parsing. That would let peple easily determine the
>> > supported ARGV as well as version number(s)
>> 
>> I'm all for machine-readable self-documentation.  And the place for that
>> is QMP.  Humble beginnings are already there:
>> 
>> { "execute": "query-version", "arguments": { } }
>> --> {"return": {"qemu": "0.12.50", "package": ""}}
>> 
>> { "execute": "query-commands", "arguments": { } }
>> --> {"return": [{"name": "quit"}, {"name": "eject"}, [...]
>> 
>> Any practical problems with use of QMP instead of parsing command line
>> option output?
>
> It is unneccessarily complex for such a simple task, requiring you to 
> configure & connect to the monitor & do the capabilities negotiaton
> and then issue the command. 
>
> To just query the version requires this ridiculous interaction:
>
>   $ qemu -chardev stdio,id=monitor -monitor chardev=monitor,mode=control
>   {"execute":"qmp_capabilities"}
>   {"QMP": {"version": {"qemu": "0.12.1", "package": " (qemu-kvm-0.12.1.2)"}, 
> "capabilities": []}}
>   {"execute":"query-version"}
>   {"return": {"qemu": "0.12.50", "package": ""}}

Actually,

$ qemu -nodefaults -nographic -S -chardev stdio,id=qmp -mon 
mode=control,chardev=qmp </dev/null
{"QMP": {"version": {"qemu": "0.12.50", "package": ""}, "capabilities": []}}

suffices, with the minor wart that you have to SIGINT out.

> I'm suggesting we just allow some simple syntactic sugar on the command 
> line for the handful of QMP commands that are just returning static info
> about the binary, that are not affected by VM state. 
>
> eg, make this work:
>
>   $ qemu -query-version
>   {"qemu": "0.12.50", "package": ""}

I wouldn't mind.



reply via email to

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