"Daniel P. Berrange" <berra...@redhat.com> writes: > On Fri, May 14, 2010 at 11:42:57AM +0200, Markus Armbruster wrote: >> "Daniel P. Berrange" <berra...@redhat.com> 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.