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 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list