This is in response to my discussion with Paolo here:
https://www.redhat.com/archives/libvir-list/2012-March/msg01171.html
It also picks up an old patch from Adam here (now split into two):
https://www.redhat.com/archives/libvir-list/2012-January/msg00562.html
Patches 1-12 are in pretty good shape, while patch 13 is still a work
in progress. I can test a lot of the pieces, but still have several
patches to go before I can fully test the new API. I'm posting this
now to at least start some review on the earlier pieces, and to get
consensus that the API and XML changes are correct.
None of these patches should be applied until after 0.9.11 is released,
and even then, we still want confirmation of whether upstream qemu 1.1
will include complete support for block mirroring.
For anyone trying to backport this feature to 0.9.10 .so API, I've
made sure that you can just omit patches 5 and 6, and that everything
else will backport cleanly to give you the new feature through just
the public virDomainBlockRebase() call.
Adam Litke (2):
blockjob: add API for async virDomainBlockJobAbort
blockjob: wire up qemu async virDomainBlockJobAbort
Eric Blake (11):
blockjob: add new API flags
blockjob: add 'blockcopy' to virsh
blockjob: add virDomainBlockCopy
blockjob: enhance virsh 'blockcopy'
blockjob: wire up RPC for block copy
blockjob: enhance xml to track mirrors across libvirtd restart
blockjob: react to active block copy
blockjob: expose qemu commands for mirrored storage migration
blockjob: query backing file of a disk
blockjob: return appropriate event and info
WIP: blockjob: implement block copy for qemu
docs/apibuild.py | 1 +
docs/formatdomain.html.in | 11 ++
docs/schemas/domaincommon.rng | 19 +++-
include/libvirt/libvirt.h.in | 50 +++++++++-
include/libvirt/virterror.h | 1 +
src/conf/domain_conf.c | 77 +++++++++++++++
src/conf/domain_conf.h | 14 +++
src/driver.h | 6 +
src/libvirt.c | 216 +++++++++++++++++++++++++++++++++++++++--
src/libvirt_private.syms | 1 +
src/libvirt_public.syms | 5 +
src/qemu/qemu_capabilities.c | 3 +
src/qemu/qemu_capabilities.h | 2 +
src/qemu/qemu_conf.h | 1 +
src/qemu/qemu_driver.c | 211 ++++++++++++++++++++++++++++++++++++++--
src/qemu/qemu_hotplug.c | 7 ++
src/qemu/qemu_monitor.c | 60 +++++++++++-
src/qemu/qemu_monitor.h | 23 +++++
src/qemu/qemu_monitor_json.c | 128 ++++++++++++++++++++++--
src/qemu/qemu_monitor_json.h | 21 ++++-
src/qemu/qemu_process.c | 19 ++++
src/remote/remote_driver.c | 1 +
src/remote/remote_protocol.x | 13 +++-
src/remote_protocol-structs | 10 ++
src/rpc/gendispatch.pl | 1 +
src/util/virterror.c | 6 +
tools/virsh.c | 135 ++++++++++++++++++++-----
tools/virsh.pod | 33 ++++++-
28 files changed, 1007 insertions(+), 68 deletions(-)
--
1.7.7.6