I'm still working on the qemu implementation of this API, but
want to get the API reviewed and included in 0.10.2 before adding
piecewise support for more and more of the API. My biggest issues
for current implementations are:
online qemu: Jeff's block-commit API is still not part of qemu.git,
and might be subject to change, in particular based on review from
Paolo's drive-mirror changes (since both patch series will be
sharing related code on how to handle error reporting).
offline qemu: qemu-img is a blocking command, but this API promises
to be asynchronous. I'll have to run qemu-img in a worker thread,
and I still need to figure out whether qemu-img can display progress
for virDomainBlockJobInfo (can you send it a SIGUSR1, like for dd?),
otherwise, the job will look like it is making no progress.
But as neither of those issues invalidate the API, I'm comfortable
with committing the API now (after all, that's what we did back in
0.9.12 with the virDomainBlockRebase API - we committed code in
preparation for qemu to implement drive-mirror, and we are STILL
waiting on qemu to follow through with that promise...)
Obviously, there will be more patches to come as I get more things
working at the qemu layer (I'm not sure whether online or offline
qemu will be done first, as I have branches working on both approaches
while I am testing against Jeff's qemu patch proposals).
Eric Blake (3):
blockjob: add virDomainBlockCommit
blockjob: add virsh blockcommit
blockjob: add blockcommit support to rpc
docs/apibuild.py | 1 +
include/libvirt/libvirt.h.in | 20 ++++++
src/driver.h | 5 ++
src/libvirt.c | 105 +++++++++++++++++++++++++++++
src/libvirt_public.syms | 1 +
src/remote/remote_driver.c | 1 +
src/remote/remote_protocol.x | 12 +++-
src/remote_protocol-structs | 9 +++
src/rpc/gendispatch.pl | 1 +
tools/virsh-domain.c | 153 ++++++++++++++++++++++++++++++++++++++++++-
tools/virsh.pod | 30 +++++++++
11 files changed, 336 insertions(+), 2 deletions(-)
--
1.7.11.4