[libvirt] [PATCH 00/21] Make migration APIs more extensible

Jiri Denemark jdenemar at redhat.com
Tue Jun 18 14:05:42 UTC 2013


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




More information about the libvir-list mailing list