[libvirt] [PATCHv2 05/13] snapshot: indent domain xml when nesting

Peter Krempa pkrempa at redhat.com
Wed Oct 19 19:08:35 UTC 2011


Dňa 29.9.2011 18:22, Eric Blake wrote / napísal(a):
> <domainsnapshot>  is the first public instance of<domain>  being
> used as a sub-element, although we have two other private uses
> (runtime state, and migration cookie).  Although indentation has
> no effect on XML parsing, using it makes the output more consistent.
>
> This uses virBuffer auto-indentation to obtain the effect, for all
> but the portions of<domain>  that are not generated a line at a
> time into the same virBuffer.  Further patches will clean up the
> remaining problems.
>
> * src/conf/domain_conf.h (virDomainDefFormatInternal): New prototype.
> * src/conf/domain_conf.c (virDomainDefFormatInternal): Export.
> (virDomainObjFormat, virDomainSnapshotDefFormat): Update callers.
> * src/libvirt_private.syms (domain_conf.h): Add new export.
> * src/qemu/qemu_migration.c (qemuMigrationCookieXMLFormat): Use
> new function.
> (qemuMigrationCookieXMLFormatStr): Update caller.
> ---
>   src/conf/domain_conf.c    |   16 +++++++++++-----
>   src/conf/domain_conf.h    |    3 +++
>   src/libvirt_private.syms  |    1 +
>   src/qemu/qemu_migration.c |   25 ++++++++++++++++---------
>   4 files changed, 31 insertions(+), 14 deletions(-)
>
>
> diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c
> index 1122dab..513ec37 100644
> --- a/src/qemu/qemu_migration.c
> +++ b/src/qemu/qemu_migration.c
> @@ -416,14 +416,17 @@ static void qemuMigrationCookieXMLFormat(virBufferPtr buf,
>
>       if ((mig->flags&  QEMU_MIGRATION_COOKIE_PERSISTENT)&&
>           mig->persistent) {
> -        domXML = virDomainDefFormat(mig->persistent,
> -                                    VIR_DOMAIN_XML_INACTIVE |
> -                                    VIR_DOMAIN_XML_SECURE);
> -        virBufferAdd(buf, domXML, -1);
Saves one big strlen().
> -        VIR_FREE(domXML);
>
>
> @@ -431,10 +434,14 @@ static char *qemuMigrationCookieXMLFormatStr(qemuMigrationCookiePtr mig)
>   {
>       virBuffer buf = VIR_BUFFER_INITIALIZER;
>
> -    qemuMigrationCookieXMLFormat(&buf, mig);
> +    if (qemuMigrationCookieXMLFormat(&buf, mig)<  0) {
> +        virBufferFreeAndReset(&buf);
> +        return NULL;
> +    }
>
>       if (virBufferError(&buf)) {
>           virReportOOMError();
> +        virBufferFreeAndReset(&buf);
Probably shouldn't be necessary as the virBufferSetError already frees 
the internal buffer.
>           return NULL;
>       }
ACK,

Peter.




More information about the libvir-list mailing list