The patchset represented in the mail thread implements the selective block
device migration for the QEMU driver. This closes the referenced bug [1].
First the supplementary API implemented allowing for multiple key-values pair
in the virTypedParameter arrays. This is used to pass the list of block
devices to migrate in the following patches. Unit tests for this are added as
well. This is the subject of the first four patches.
Fifth patch is adding the necessary parameter `migrate_disks' and passes it
through the QEMU driver call stack. The introduced `qemuMigrateDisk' function
is then checks that the disk is to be migrated because it is in the list. If
there is no list specified then the legacy check is used: the device is migrate
if it is not shared, not readonly and has a source.
Sixth and the last patch is adding the necessary code to the `virsh' utility
making it able for user to specify a comma-separated list of the block device
names that are to be migrated.
The implemented Python bindings patch is to be presented.
Changes in v2:
* Addressed review comments
* Removed all the duplicates check in the commit 'multi-value parameters in
virTypedParamsAdd*'
* reimplemented virTypedParamsPick as virTypedParamsFilter
* renamed virTypedParamsPackStrings to virTypedParamsAddStringList
[1]
https://bugzilla.redhat.com/show_bug.cgi?id=1203032
Pavel Boldin (6):
util: multi-value virTypedParameter
util: multi-value parameters in virTypedParamsAdd*
util: virTypedParams{Filter,PickStrings}
util: add virTypedParamsAddStringList
qemu: migration: selective block device migration
virsh: selective block device migration
include/libvirt/libvirt-domain.h | 9 ++
include/libvirt/libvirt-host.h | 16 +++
src/libvirt_public.syms | 7 +
src/qemu/qemu_driver.c | 66 ++++++---
src/qemu/qemu_migration.c | 174 +++++++++++++++--------
src/qemu/qemu_migration.h | 23 ++--
src/util/virtypedparam.c | 263 ++++++++++++++++++++++++++++-------
src/util/virtypedparam.h | 10 ++
tests/Makefile.am | 6 +
tests/virtypedparamtest.c | 291 +++++++++++++++++++++++++++++++++++++++
tools/virsh-domain.c | 23 ++++
tools/virsh.pod | 5 +-
12 files changed, 750 insertions(+), 143 deletions(-)
create mode 100644 tests/virtypedparamtest.c
--
1.9.1