[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] Getting VM state from outside QEMU?
From: |
Eric Blake |
Subject: |
Re: [Qemu-devel] Getting VM state from outside QEMU? |
Date: |
Wed, 08 Apr 2015 10:16:46 -0600 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.6.0 |
On 04/08/2015 10:10 AM, Erik Rull wrote:
>>
>> My suggestion is to create a script that sends the QMP command
>> "query-status" an then parse the result. The syntax and output is:
>>
>> -> { "execute": "query-status" }
>> <- { "return": { "running": true, "singlestep": false, "status":
>> "running" } }
>>
>
> Sounds good - I tried that - but all attempts return that the command has not
> been found. I added the following command line snippet and the results are:
> [...] -qmp tcp:localhost:4444,server,nowait [...]
>
> 172.17.48.45 ~ # telnet 127.0.0.1 4444
> {"QMP": {"version": {"qemu": {"micro": 0, "minor": 1, "major": 2}, "package":
> ""}, "capabilities": []}}
You HAVE to use {"execute":"qmp_capabilities"} (possibly with an
"id":...) as your first command on the monitor, before you can issue any
other command. I really wish we could improve the error message:
>
> { "execute": "query-status" }
> {"error": {"class": "CommandNotFound", "desc": "The command query-status has
> not
> been found"}}
it would be a LOT nicer if we reported 'still in negotiation phase;
"qmp_capabilities" expected' than a bland "CommandNotFound". Of course,
patches are welcome to improve the experience there!
Similarly, once you are NOT in capabilities negotiation, any subsequent
use of "qmp_capabilities" fails. That's also something where the error
message could be improved.
--
Eric Blake eblake redhat com +1-919-301-3266
Libvirt virtualization library http://libvirt.org
Re: [Qemu-devel] Getting VM state from outside QEMU?, John Snow, 2015/04/07