提交 f24e67d2 编写于 作者: D Daniel P. Berrange

Fix formatting of XML for an inactive guest

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.
上级 e6cbadd5
...@@ -4408,7 +4408,6 @@ virDomainInputDefFormat(virConnectPtr conn, ...@@ -4408,7 +4408,6 @@ virDomainInputDefFormat(virConnectPtr conn,
static int static int
virDomainGraphicsDefFormat(virConnectPtr conn, virDomainGraphicsDefFormat(virConnectPtr conn,
virBufferPtr buf, virBufferPtr buf,
virDomainDefPtr vm,
virDomainGraphicsDefPtr def, virDomainGraphicsDefPtr def,
int flags) int flags)
{ {
...@@ -4425,7 +4424,7 @@ virDomainGraphicsDefFormat(virConnectPtr conn, ...@@ -4425,7 +4424,7 @@ virDomainGraphicsDefFormat(virConnectPtr conn,
switch (def->type) { switch (def->type) {
case VIR_DOMAIN_GRAPHICS_TYPE_VNC: case VIR_DOMAIN_GRAPHICS_TYPE_VNC:
if (def->data.vnc.port && 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'", virBufferVSprintf(buf, " port='%d'",
def->data.vnc.port); def->data.vnc.port);
else if (def->data.vnc.autoport) else if (def->data.vnc.autoport)
...@@ -4580,7 +4579,10 @@ char *virDomainDefFormat(virConnectPtr conn, ...@@ -4580,7 +4579,10 @@ char *virDomainDefFormat(virConnectPtr conn,
goto cleanup; 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); virBufferVSprintf(&buf, "<domain type='%s' id='%d'>\n", type, def->id);
else else
virBufferVSprintf(&buf, "<domain type='%s'>\n", type); virBufferVSprintf(&buf, "<domain type='%s'>\n", type);
...@@ -4771,7 +4773,7 @@ char *virDomainDefFormat(virConnectPtr conn, ...@@ -4771,7 +4773,7 @@ char *virDomainDefFormat(virConnectPtr conn,
goto cleanup; goto cleanup;
for (n = 0 ; n < def->ngraphics ; n++) 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; goto cleanup;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册