]> xenbits.xensource.com Git - libvirt.git/commitdiff
virDomainCreateXML: Make domain definition transient
authorMichal Privoznik <mprivozn@redhat.com>
Tue, 22 Sep 2015 14:57:52 +0000 (16:57 +0200)
committerMichal Privoznik <mprivozn@redhat.com>
Thu, 24 Sep 2015 08:52:38 +0000 (10:52 +0200)
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>
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 504895754170dc6110060c770d9e7d71e259559e..fc6dcecb9f107297dd2132b84ba0832cb7e606b2 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 e5e6c5abe5eb4dd90da915e873f7ad174faea6ba..b408be00b97055172ea149fe3b115a41033367f0 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 30d2d988e167a7007f56d5f4e58fea0a92fc7640..2a4b02664af5548688b512777c4580c4968352e5 100644 (file)
@@ -1745,6 +1745,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 b40b0799de876f91aff8353a6d929680b8203934..01ab1e3ccc68d02628e7b636c8473b71cc8ac502 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 d4b03b39e43120ac9bed2ceb181c262ef26ea718..14598fc20c8d24f10445c151dc39148e3ece92a0 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 152af398fc747d41409fbb5ef2f3cfbc48779765..a12b03ab238ee2458cfe813a7172f75539f1f404 100644 (file)
@@ -704,6 +704,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;