From 96f0ee85d25ae27685470f5ccca0368a7a1d40df Mon Sep 17 00:00:00 2001 From: "Daniel P. Berrange" Date: Fri, 4 Sep 2009 14:10:44 +0200 Subject: [PATCH] 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 --- src/xend_internal.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) 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) -- 2.47.2