]> xenbits.xensource.com Git - libvirt.git/commitdiff
Fix formatting of XML for an inactive guest
authorDaniel P. Berrange <berrange@redhat.com>
Thu, 12 Nov 2009 14:08:43 +0000 (14:08 +0000)
committerDaniel P. Berrange <berrange@redhat.com>
Fri, 13 Nov 2009 11:50:08 +0000 (11:50 +0000)
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

index 8d9408ce6d9b56e7f4687f780f4f802ee8c6211b..0a7eef7bc3ef3c85f085589718d436df57bf14ca 100644 (file)
@@ -4408,7 +4408,6 @@ virDomainInputDefFormat(virConnectPtr conn,
 static int
 virDomainGraphicsDefFormat(virConnectPtr conn,
                            virBufferPtr buf,
-                           virDomainDefPtr vm,
                            virDomainGraphicsDefPtr def,
                            int flags)
 {
@@ -4425,7 +4424,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)
@@ -4580,7 +4579,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);
@@ -4771,7 +4773,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;
     }