Current migration APIs support a fixed set of optional parameters and whenever there is a need for a new parameter, a whole bunch of new internal and external APIs have to be introduced. This patch set introduces new extensible APIs that use virTypedParameters for passing optional parameters to a migration protocol. Thus making it possible to introduce new parameters without the need for new APIs. The first 7 patches provide some basic infrastructure needed by the following patches. Patches 8 to 19 add support for the new extensible APIs and patches 20 and 21 make use of the new APIs to introduce additional migration parameter. Have fun. Jiri Denemark (21): 1 Rename virTypedParameterArrayValidate as virTypedParamsValidate 2 util: Emit proper error code in virTypedParamsValidate 3 Introduce virTypedParamsCheck internal API 4 Introduce virTypedParamsReplaceString internal API 5 Introduce VIR_TYPED_PARAMS_DEBUG macro for dumping typed params 6 Log input type parameters in API entry points 7 Introduce virTypedParamsCopy internal API 8 Introduce migration parameters 9 New internal migration APIs with extensible parameters 10 Implement extensible migration APIs in remote driver 11 Implement extensible migration APIs in qemu driver 12 qemu: Move internals of Begin phase to qemu_migration.c 13 qemu: Move internals of Prepare phase to qemu_migration.c 14 qemu: Move internals of Confirm phase to qemu_migration.c 15 Adapt virDomainMigrateVersion3 for extensible migration APIs 16 Adapt virDomainMigratePeer2Peer for extensible migration APIs 17 Extensible migration APIs 18 python: Add bindings for extensible migration APIs 19 virsh: Use extensible migration APIs 20 Introduce VIR_MIGRATE_PARAM_GRAPHICS_URI parameter 21 qemu: Implement support for VIR_MIGRATE_PARAM_GRAPHICS_URI daemon/remote.c | 331 ++++++++++++- docs/apibuild.py | 11 +- docs/hvsupport.pl | 7 + include/libvirt/libvirt.h.in | 87 ++++ python/generator.py | 2 + python/libvirt-override-api.xml | 18 + python/libvirt-override.c | 218 +++++++++ src/driver.h | 67 +++ src/esx/esx_driver.c | 24 +- src/libvirt.c | 1022 ++++++++++++++++++++++++++++++++++----- src/libvirt_internal.h | 59 +++ src/libvirt_private.syms | 14 +- src/libvirt_public.syms | 6 + src/libxl/libxl_driver.c | 12 +- src/lxc/lxc_driver.c | 40 +- src/nodeinfo.c | 16 +- src/openvz/openvz_driver.c | 16 +- src/qemu/qemu_driver.c | 633 ++++++++++++------------ src/qemu/qemu_migration.c | 730 ++++++++++++++++++++-------- src/qemu/qemu_migration.h | 45 +- src/remote/remote_driver.c | 398 +++++++++++++++ src/remote/remote_protocol.x | 96 +++- src/remote_protocol-structs | 107 ++++ src/test/test_driver.c | 8 +- src/util/virtypedparam.c | 163 ++++++- src/util/virtypedparam.h | 36 +- src/xen/xen_hypervisor.c | 12 +- tools/virsh-domain.c | 88 +++- tools/virsh.pod | 18 +- 29 files changed, 3548 insertions(+), 736 deletions(-) -- 1.8.2.1 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list