From: Daniel P. Berrange Date: Fri, 4 Sep 2009 12:10:44 +0000 (+0200) Subject: Fix ID field in virDomainPtr after starting Xen VM X-Git-Tag: v0.7.1~100 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=96f0ee85d25ae27685470f5ccca0368a7a1d40df;p=thirdparty%2Flibvirt.git Fix ID field in virDomainPtr after starting Xen VM * src/xend_internal.c: Lookup guest after starting persistent config in order to refresh the domain ID field --- diff --git a/src/xend_internal.c b/src/xend_internal.c index 99847b014c..cf45cd6907 100644 --- a/src/xend_internal.c +++ b/src/xend_internal.c @@ -4535,6 +4535,8 @@ virDomainPtr xenDaemonDomainDefineXML(virConnectPtr conn, const char *xmlDesc) { int xenDaemonDomainCreate(virDomainPtr domain) { xenUnifiedPrivatePtr priv; + int ret; + virDomainPtr tmp; if ((domain == NULL) || (domain->conn == NULL) || (domain->name == NULL)) { virXendError((domain ? domain->conn : NULL), VIR_ERR_INVALID_ARG, @@ -4547,7 +4549,17 @@ int xenDaemonDomainCreate(virDomainPtr domain) if (priv->xendConfigVersion < 3) return(-1); - return xend_op(domain->conn, domain->name, "op", "start", NULL); + ret = xend_op(domain->conn, domain->name, "op", "start", NULL); + + if (ret != -1) { + /* Need to force a refresh of this object's ID */ + tmp = virDomainLookupByName(domain->conn, domain->name); + if (tmp) { + domain->id = tmp->id; + virDomainFree(tmp); + } + } + return ret; } int xenDaemonDomainUndefine(virDomainPtr domain)