From: "Daniel P. Berrange" <berrange(a)redhat.com>
Currently the libvirt_lxc process uses VIR_DOMAIN_XML_INACTIVE
when loading the XML for the container. This means it looses
any dynamic data such as the, just allocated, SELinux label.
Further there is an inconsistency in the libvirt LXC driver
whereby it saves the live config XML and then later overwrites
the file with the live status XML instead. Add a comment about
this for future reference.
* src/lxc/lxc_controller.c: Remove VIR_DOMAIN_XML_INACTIVE
when loading XML
* src/lxc/lxc_driver.c: Add comment about inconsistent
config file formats
Signed-off-by: Daniel P. Berrange <berrange(a)redhat.com>
---
src/lxc/lxc_controller.c | 2 +-
src/lxc/lxc_driver.c | 14 ++++++--------
2 files changed, 7 insertions(+), 9 deletions(-)
diff --git a/src/lxc/lxc_controller.c b/src/lxc/lxc_controller.c
index 2617423..1e3ec30 100644
--- a/src/lxc/lxc_controller.c
+++ b/src/lxc/lxc_controller.c
@@ -1781,7 +1781,7 @@ int main(int argc, char *argv[])
if ((def = virDomainDefParseFile(caps, configFile,
1 << VIR_DOMAIN_VIRT_LXC,
- VIR_DOMAIN_XML_INACTIVE)) == NULL)
+ 0)) == NULL)
goto cleanup;
if (def->nnets != nveths) {
diff --git a/src/lxc/lxc_driver.c b/src/lxc/lxc_driver.c
index 7e7affd..ffdd4ac 100644
--- a/src/lxc/lxc_driver.c
+++ b/src/lxc/lxc_driver.c
@@ -1955,17 +1955,15 @@ static int lxcVmStart(virConnectPtr conn,
lxcProcessAutoDestroyAdd(driver, vm, conn) < 0)
goto error;
- /*
- * Again, need to save the live configuration, because the function
- * requires vm->def->id != -1 to save tty info surely.
- */
- if (virDomainSaveConfig(driver->stateDir, vm->def) < 0)
- goto error;
-
if (virDomainObjSetDefTransient(driver->caps, vm, false) < 0)
goto error;
- /* Write domain status to disk. */
+ /* Write domain status to disk.
+ *
+ * XXX: Earlier we wrote the plain "live" domain XML to this
+ * location for the benefit of libvirt_lxc. We're now overwriting
+ * it with the live status XML instead. This is a (currently
+ * harmless) inconsistency we should fix one day */
if (virDomainSaveStatus(driver->caps, driver->stateDir, vm) < 0)
goto error;
--
1.7.10