[libvirt] [PATCH 2/6] Move all the QEMU migration code to a new file

Eric Blake eblake at redhat.com
Wed Feb 9 20:20:39 UTC 2011


On 02/09/2011 09:58 AM, Daniel P. Berrange wrote:
> The introduction of the v3 migration protocol, along with
> support for migration cookies, will significantly expand
> the size of the migration code. Move it all to a separate
> file to make it more manageable
> 
> The functions are not moved 100%. The API entry points
> remain in the main QEMU driver, but once the public
> virDomainPtr is resolved to the internal virDomainObjPtr,
> all following code is moved.
> 
> This will allow the new v3 API entry points to call into the
> same shared internal migration functions
> 
> * src/qemu/qemu_domain.c, src/qemu/qemu_domain.h: Add
>   qemuDomainFormatXML helper method
> * src/qemu/qemu_driver.c: Remove all migration code
> * src/qemu/qemu_migration.c, src/qemu/qemu_migration.h: Add
>   all migration code.
> ---
>  po/POTFILES.in            |    1 +
>  src/Makefile.am           |    3 +-
>  src/qemu/qemu_domain.c    |   39 ++
>  src/qemu/qemu_domain.h    |    4 +
>  src/qemu/qemu_driver.c    | 1297 ++-------------------------------------------
>  src/qemu/qemu_migration.c | 1295 ++++++++++++++++++++++++++++++++++++++++++++
>  src/qemu/qemu_migration.h |   63 +++
>  7 files changed, 1445 insertions(+), 1257 deletions(-)
>  create mode 100644 src/qemu/qemu_migration.c
>  create mode 100644 src/qemu/qemu_migration.h

You fixed my concerns from v1; however, you missed that commit ee3b030
in the meantime has changed what needed migration.

> + * This version starts an empty VM listening on a localhost TCP port, and
> + * sets up the corresponding virStream to handle the incoming data.
> + */
> +int
> +qemuMigrationPrepareTunnel(struct qemud_driver *driver,
> +                           virConnectPtr dconn,
> +                           virStreamPtr st,
> +                           const char *dname,
> +                           const char *dom_xml)
> +{

> +    /* Parse the domain XML. */
> +    if (!(def = virDomainDefParseString(driver->caps, dom_xml,
> +                                        VIR_DOMAIN_XML_INACTIVE))) {
> +        qemuReportError(VIR_ERR_OPERATION_FAILED,
> +                        "%s", _("failed to parse XML"));
> +        goto cleanup;

This needs to be:

         qemuReportError(VIR_ERR_OPERATION_FAILED,
-                        "%s", _("failed to parse XML"));
+                        "%s", _("failed to parse XML, libvirt version
may be "
+                                "different between source and
destination host"));

ACK with that nit fixed.

-- 
Eric Blake   eblake at redhat.com    +1-801-349-2682
Libvirt virtualization library http://libvirt.org

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 619 bytes
Desc: OpenPGP digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20110209/3f57c1c6/attachment-0001.sig>


More information about the libvir-list mailing list