]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
virDomainCreateXML: Make domain definition transient
authorMichal Privoznik <mprivozn@redhat.com>
Tue, 22 Sep 2015 14:57:52 +0000 (16:57 +0200)
committerCole Robinson <crobinso@redhat.com>
Wed, 23 Dec 2015 23:14:43 +0000 (18:14 -0500)
https://bugzilla.redhat.com/show_bug.cgi?id=871452

So, you want to create a domain from XML. The domain already
exists in libvirt's database of domains. It's okay, because name
and UUID matches. However, on domain startup, internal
representation of the domain is overwritten with your XML even
though we claim that the XML you've provided is a transient one.
The bug is to be found across nearly all the drivers.
Le sigh.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
(cherry picked from commit c99b8cec82a53f091ca3de7532d305a93765b467)

src/bhyve/bhyve_driver.c
src/libxl/libxl_driver.c
src/lxc/lxc_driver.c
src/openvz/openvz_driver.c
src/qemu/qemu_driver.c
src/test/test_driver.c
src/uml/uml_driver.c
src/vmware/vmware_driver.c

index 7f365b1f24467893ce7db7d2d14a51488384fb74..d44cf2c579841fe8c0bc32f155850c6f2cfce406 100644 (file)
@@ -918,6 +918,7 @@ bhyveDomainCreateXML(virConnectPtr conn,
 
     if (!(vm = virDomainObjListAdd(privconn->domains, def,
                                    privconn->xmlopt,
+                                   VIR_DOMAIN_OBJ_LIST_ADD_LIVE |
                                    VIR_DOMAIN_OBJ_LIST_ADD_CHECK_LIVE, NULL)))
         goto cleanup;
     def = NULL;
index 8087c27797957f0d1cfe336425f4d72129f4bdbd..8d77ed8ec21c9a95a137c1382a035e61260b73b7 100644 (file)
@@ -974,6 +974,7 @@ libxlDomainCreateXML(virConnectPtr conn, const char *xml,
 
     if (!(vm = virDomainObjListAdd(driver->domains, def,
                                    driver->xmlopt,
+                                   VIR_DOMAIN_OBJ_LIST_ADD_LIVE |
                                    VIR_DOMAIN_OBJ_LIST_ADD_CHECK_LIVE,
                                    NULL)))
         goto cleanup;
index a08946b0ffe11dad16f098fe13c4066cf2072dc9..0b425a1ff6b058717a4d2247e8b48d2f58de46bb 100644 (file)
@@ -1229,6 +1229,7 @@ lxcDomainCreateXMLWithFiles(virConnectPtr conn,
 
     if (!(vm = virDomainObjListAdd(driver->domains, def,
                                    driver->xmlopt,
+                                   VIR_DOMAIN_OBJ_LIST_ADD_LIVE |
                                    VIR_DOMAIN_OBJ_LIST_ADD_CHECK_LIVE,
                                    NULL)))
         goto cleanup;
index fc8db7ea1da98a4aff7dc32c6a9f0c402b7959fa..d78e2f547adf717e42712649871d77f34dbc8c88 100644 (file)
@@ -1093,6 +1093,7 @@ openvzDomainCreateXML(virConnectPtr conn, const char *xml,
     if (!(vm = virDomainObjListAdd(driver->domains,
                                    vmdef,
                                    driver->xmlopt,
+                                   VIR_DOMAIN_OBJ_LIST_ADD_LIVE |
                                    VIR_DOMAIN_OBJ_LIST_ADD_CHECK_LIVE,
                                    NULL)))
         goto cleanup;
index a0aee8f173e4f1f05df65e7b0f64117c24aac000..3bca5d7718e961394c9a492fc816fa1e01872747 100644 (file)
@@ -1744,6 +1744,7 @@ static virDomainPtr qemuDomainCreateXML(virConnectPtr conn,
 
     if (!(vm = virDomainObjListAdd(driver->domains, def,
                                    driver->xmlopt,
+                                   VIR_DOMAIN_OBJ_LIST_ADD_LIVE |
                                    VIR_DOMAIN_OBJ_LIST_ADD_CHECK_LIVE,
                                    NULL)))
         goto cleanup;
index 3809f72b9b8f67bc87e029e832b689aa1262e019..3281aa0bde9e833064162ea25d31a1d07c2974af 100644 (file)
@@ -1616,6 +1616,7 @@ testDomainCreateXML(virConnectPtr conn, const char *xml,
     if (!(dom = virDomainObjListAdd(privconn->domains,
                                     def,
                                     privconn->xmlopt,
+                                    VIR_DOMAIN_OBJ_LIST_ADD_LIVE |
                                     VIR_DOMAIN_OBJ_LIST_ADD_CHECK_LIVE,
                                     NULL)))
         goto cleanup;
index 337b792250be7c9da6a91042a311dfb030bbf993..4fd4be31d4f42d2353b92d4fcafd453707155704 100644 (file)
@@ -1615,6 +1615,7 @@ static virDomainPtr umlDomainCreateXML(virConnectPtr conn, const char *xml,
 
     if (!(vm = virDomainObjListAdd(driver->domains, def,
                                    driver->xmlopt,
+                                   VIR_DOMAIN_OBJ_LIST_ADD_LIVE |
                                    VIR_DOMAIN_OBJ_LIST_ADD_CHECK_LIVE,
                                    NULL)))
         goto cleanup;
index ce50d789db794cbf930fee0235caae503886c3fe..de02434d7cf5d14174abbe3f96288c813bfcca51 100644 (file)
@@ -698,6 +698,7 @@ vmwareDomainCreateXML(virConnectPtr conn, const char *xml,
     if (!(vm = virDomainObjListAdd(driver->domains,
                                    vmdef,
                                    driver->xmlopt,
+                                   VIR_DOMAIN_OBJ_LIST_ADD_LIVE |
                                    VIR_DOMAIN_OBJ_LIST_ADD_CHECK_LIVE,
                                    NULL)))
         goto cleanup;