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