Right now we are parsing the XML as though it's live, which for example will choke on hardcoded XML like: <seclabel type='dynamic' model='selinux' relabel='yes'/> Erroring with: $ sudo virsh domxml-to-native qemu-argv f error: XML error: security label is missing All drivers are fixed, but only qemu was tested. --- v2: Fix all drivers src/esx/esx_driver.c | 3 ++- src/libxl/libxl_driver.c | 3 ++- src/qemu/qemu_driver.c | 3 ++- src/xen/xen_driver.c | 3 ++- 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/esx/esx_driver.c b/src/esx/esx_driver.c index 886d984..6a2efe3 100644 --- a/src/esx/esx_driver.c +++ b/src/esx/esx_driver.c @@ -2836,7 +2836,8 @@ esxConnectDomainXMLToNative(virConnectPtr conn, const char *nativeFormat, } def = virDomainDefParseString(domainXml, priv->caps, priv->xmlopt, - 1 << VIR_DOMAIN_VIRT_VMWARE, 0); + 1 << VIR_DOMAIN_VIRT_VMWARE, + VIR_DOMAIN_XML_INACTIVE); if (!def) { return NULL; diff --git a/src/libxl/libxl_driver.c b/src/libxl/libxl_driver.c index ae7342a..09ae075 100644 --- a/src/libxl/libxl_driver.c +++ b/src/libxl/libxl_driver.c @@ -2979,7 +2979,8 @@ libxlConnectDomainXMLToNative(virConnectPtr conn, const char * nativeFormat, if (!(def = virDomainDefParseString(domainXml, cfg->caps, driver->xmlopt, - 1 << VIR_DOMAIN_VIRT_XEN, 0))) + 1 << VIR_DOMAIN_VIRT_XEN, + VIR_DOMAIN_XML_INACTIVE))) goto cleanup; if (!(conf = xenFormatXM(conn, def, cfg->verInfo->xen_version_major))) diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index a01739c..89f443f 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -5812,7 +5812,8 @@ static char *qemuConnectDomainXMLToNative(virConnectPtr conn, goto cleanup; def = virDomainDefParseString(xmlData, caps, driver->xmlopt, - QEMU_EXPECTED_VIRT_TYPES, 0); + QEMU_EXPECTED_VIRT_TYPES, + VIR_DOMAIN_XML_INACTIVE); if (!def) goto cleanup; diff --git a/src/xen/xen_driver.c b/src/xen/xen_driver.c index 1880b22..9204f88 100644 --- a/src/xen/xen_driver.c +++ b/src/xen/xen_driver.c @@ -1657,7 +1657,8 @@ xenUnifiedConnectDomainXMLToNative(virConnectPtr conn, } if (!(def = virDomainDefParseString(xmlData, priv->caps, priv->xmlopt, - 1 << VIR_DOMAIN_VIRT_XEN, 0))) + 1 << VIR_DOMAIN_VIRT_XEN, + VIR_DOMAIN_XML_INACTIVE))) goto cleanup; if (STREQ(format, XEN_CONFIG_FORMAT_XM)) { -- 1.8.5.3 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list