v1 was here:
https://www.redhat.com/archives/libvir-list/2012-April/msg00068.html
v2 was here:
https://www.redhat.com/archives/libvir-list/2012-April/msg00222.html
changes from v2: added patch 12/16, addressed some review comments
and made minor changes from more of my own testing
CAVEAT: Paolo and I had an IRC conversation, where we decided that
'drive-mirror' might do better to take a mandatory 'full':'bool'
(or an even more powerful optional '*base':'str') argument for
determining how much to stream (full vs. shallow, or even the
backing file of the copy as matching the base argument of
'block_stream') rather than overloading the
'mode':'no-backing-file'
as the only way to get a full pull. If that change goes in qemu,
then we will need a v4, to tweak how the 'drive-mirror' monitor
command is called, and take advantage of the additional flexibility
it offers.
changes from v1: Paolo has updated the qemu side of things, and built
a scratch image for RHEL that I was able to test with for the new
semantics. I was actually able to successfully run two different
block copy jobs, one canceled and one pivoted, with SELinux disabled
and this patch series.
Patch 13/16 is for reference only when working with Paolo's build;
it will not go upstream.
Patches 14-16 are optional; the extra flexibility might be nice, but
I haven't yet played with those three enough to know if Paolo's build
behaves like I was expecting.
Adam Litke (2):
blockjob: add API for async virDomainBlockJobAbort
blockjob: wire up qemu async virDomainBlockJobAbort
Eric Blake (14):
blockjob: allow for fast-finishing job
blockjob: add new API flags
blockjob: add 'blockcopy' to virsh
blockjob: enhance xml to track mirrors across libvirtd restart
blockjob: react to active block copy
blockjob: expose qemu commands for mirrored storage migration
blockjob: return appropriate event and info
blockjob: support pivot operation on cancel
blockjob: implement block copy for qemu
blockjob: allow for existing files
blockjob: accommodate RHEL backport names
blockjob: add virDomainBlockCopy
blockjob: enhance virsh 'blockcopy'
blockjob: wire up qemu and RPC for block copy
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 | 54 ++++++
src/conf/domain_conf.h | 6 +
src/driver.h | 5 +
src/libvirt.c | 220 +++++++++++++++++++++++-
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_driver.c | 379 +++++++++++++++++++++++++++++++++++++++--
src/qemu/qemu_hotplug.c | 7 +
src/qemu/qemu_monitor.c | 50 ++++++
src/qemu/qemu_monitor.h | 26 +++-
src/qemu/qemu_monitor_json.c | 166 +++++++++++++++---
src/qemu/qemu_monitor_json.h | 19 ++-
src/remote/remote_driver.c | 1 +
src/remote/remote_protocol.x | 12 ++-
src/remote_protocol-structs | 9 +
src/rpc/gendispatch.pl | 1 +
src/util/virterror.c | 6 +
tools/virsh.c | 140 ++++++++++++---
tools/virsh.pod | 40 ++++-
26 files changed, 1143 insertions(+), 91 deletions(-)
--
1.7.7.6