[libvirt] [PATCH 1/5] Fix formatting of XML for an inactive guest

Daniel Veillard veillard at redhat.com
Fri Nov 13 09:26:05 UTC 2009


On Thu, Nov 12, 2009 at 03:00:47PM +0000, Daniel P. Berrange wrote:
> If the virDomainDefPtr object has an 'id' of -1, then forcably
> set the VIR_DOMAIN_XML_INACTIVE flag to ensure generated XML
> does not include any cruft from the previously running guest
> such as console PTY path, or VNC port.
> 
> * src/conf/domain_conf.c: Set VIR_DOMAIN_XML_INACTIVE if
>   def->id is -1. Replace checks for def->id == -1 with
>   check against flags & VIR_DOMAIN_XML_INACTIVE.
> ---
>  src/conf/domain_conf.c |   10 ++++++----
>  1 files changed, 6 insertions(+), 4 deletions(-)
> 
> diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
> index 9e37452..c2c07ca 100644
> --- a/src/conf/domain_conf.c
> +++ b/src/conf/domain_conf.c
> @@ -4407,7 +4407,6 @@ virDomainInputDefFormat(virConnectPtr conn,
>  static int
>  virDomainGraphicsDefFormat(virConnectPtr conn,
>                             virBufferPtr buf,
> -                           virDomainDefPtr vm,
>                             virDomainGraphicsDefPtr def,
>                             int flags)
>  {
> @@ -4424,7 +4423,7 @@ virDomainGraphicsDefFormat(virConnectPtr conn,
>      switch (def->type) {
>      case VIR_DOMAIN_GRAPHICS_TYPE_VNC:
>          if (def->data.vnc.port &&
> -            (!def->data.vnc.autoport || vm->id != -1))
> +            (!def->data.vnc.autoport || !(flags & VIR_DOMAIN_XML_INACTIVE)))
>              virBufferVSprintf(buf, " port='%d'",
>                                def->data.vnc.port);
>          else if (def->data.vnc.autoport)
> @@ -4579,7 +4578,10 @@ char *virDomainDefFormat(virConnectPtr conn,
>          goto cleanup;
>      }
>  
> -    if (def->id >= 0)
> +    if (def->id == -1)
> +        flags |= VIR_DOMAIN_XML_INACTIVE;
> +
> +    if (!(flags & VIR_DOMAIN_XML_INACTIVE))
>          virBufferVSprintf(&buf, "<domain type='%s' id='%d'>\n", type, def->id);
>      else
>          virBufferVSprintf(&buf, "<domain type='%s'>\n", type);
> @@ -4770,7 +4772,7 @@ char *virDomainDefFormat(virConnectPtr conn,
>              goto cleanup;
>  
>          for (n = 0 ; n < def->ngraphics ; n++)
> -            if (virDomainGraphicsDefFormat(conn, &buf, def, def->graphics[n], flags) < 0)
> +            if (virDomainGraphicsDefFormat(conn, &buf, def->graphics[n], flags) < 0)
>                  goto cleanup;
>      }
>  

  ACK

Daniel

-- 
Daniel Veillard      | libxml Gnome XML XSLT toolkit  http://xmlsoft.org/
daniel at veillard.com  | Rpmfind RPM search engine http://rpmfind.net/
http://veillard.com/ | virtualization library  http://libvirt.org/




More information about the libvir-list mailing list