]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
Fix ID field in virDomainPtr after starting Xen VM
authorDaniel P. Berrange <berrange@redhat.com>
Fri, 4 Sep 2009 12:10:44 +0000 (14:10 +0200)
committerDaniel Veillard <veillard@redhat.com>
Fri, 4 Sep 2009 12:10:44 +0000 (14:10 +0200)
* src/xend_internal.c: Lookup guest after starting persistent
  config in order to refresh the domain ID field

src/xend_internal.c

index 99847b014c5dbbe096cef4ede1f2ab09db2c779e..cf45cd69078e685fbb76851b907afebff1c0cca2 100644 (file)
@@ -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)