On 03/25/2011 03:42 PM, Michael Roth wrote:
On 03/25/2011 02:47 PM, Michael Roth wrote:
These apply on top of Anthony's glib tree, commit
03d5927deb5e6baebaade1b4c8ff2428a85e125c currently, and can also be
obtained from:
git://repo.or.cz/qemu/mdroth.git qga_v1
The QGA-specific patches are in pretty rough shape, and there are
some outstanding issues that I'll note below. I just wanted to put
the general approach out there for consideration. Patch-level
comments/review are still much-appreciated though.
However, patches 1-5 are general json/QAPI-related fixes. Anthony,
please consider pulling these into your glib tree. The json fix-ups
may need further evaluation, but I'm confident they're at least an
improvement. The QAPI ones are trivial fix-ups.
ISSUES/TODOS:
- QMP's async callbacks expect the command results to be
de-marshalled beforehand. This is completely infeasible to attempt
outside of the code generator, so this is a big area that needs to be
addressed. So for now, only the 'guest-ping' command works, since it
has no return value. The dummy "guest-view-file" command will cause
an error to be reported to the client.
Well, not completely de-marshalled.
I don't follow. Are you talking about async callbacks within QEMU?
Because that should be totally transparent to you. You'll receive a
qobject and you can do whatever you need with it.
Basically just need a way to pull whatever is stored in the response
qdict's "return" field out without specifying the QTYPE in advance...
which exists in qdict.c:qdict_get_obj(), it's just not currently
exposed to outside callers.
Just use qdict_get()--but I still don't understand what the problem is.
Regards,
Anthony Liguori
Alternatively, the callback function can take in the entire response's
qdict and pull the value out using knowledge from the schema. Will
look into this more, but not nearly involved as I first thought.
- qemu-ga guest daemon is currently not working over virtio-serial
or isa-serial. This is probably an issue with how I'm using glib's io
channel interfaces, still investigating. This means the only way to
currently test is by invocing qemu-ga with "-c unix-listen
-p<sockpath>", then doing something like `socat /dev/ttyS0,raw,echo=0
unix-connect:<sockpath>`.
- guest-view-file is a stub, and will be broken out into an
open/read/close set of RPCs, possibly with a high-level interface
built around those.