]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
virDomainXMLOption: Introduce virDomainABIStabilityDomain
authorMichal Privoznik <mprivozn@redhat.com>
Fri, 19 May 2017 13:07:15 +0000 (15:07 +0200)
committerMichal Privoznik <mprivozn@redhat.com>
Mon, 5 Jun 2017 07:08:52 +0000 (09:08 +0200)
While checking for ABI stability, drivers might pose additional
checks that are not valid for general case. For instance, qemu
driver might check some memory backing attributes because of how
qemu works. But those attributes may work well in other drivers.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
33 files changed:
src/bhyve/bhyve_domain.c
src/conf/domain_conf.c
src/conf/domain_conf.h
src/conf/snapshot_conf.c
src/conf/snapshot_conf.h
src/libxl/libxl_conf.c
src/libxl/libxl_domain.c
src/lxc/lxc_conf.c
src/openvz/openvz_driver.c
src/phyp/phyp_driver.c
src/qemu/qemu_capabilities.c
src/qemu/qemu_conf.c
src/qemu/qemu_domain.c
src/qemu/qemu_driver.c
src/security/virt-aa-helper.c
src/test/test_driver.c
src/uml/uml_driver.c
src/vbox/vbox_common.c
src/vmware/vmware_driver.c
src/vmx/vmx.c
src/vz/vz_driver.c
src/xen/xen_driver.c
src/xenapi/xenapi_driver.c
tests/bhyveargv2xmltest.c
tests/qemuargv2xmltest.c
tests/qemuxml2argvtest.c
tests/sexpr2xmltest.c
tests/testutils.c
tests/vmx2xmltest.c
tests/xlconfigtest.c
tests/xmconfigtest.c
tests/xml2sexprtest.c
tests/xml2vmxtest.c

index 76b4fac2c47cb5e7bc9955056c0433927a830ecf..0a99550afa43782a53bbb63c9c47c8781f5096bc 100644 (file)
@@ -144,7 +144,7 @@ virBhyveDriverCreateXMLConf(bhyveConnPtr driver)
     virBhyveDriverDomainDefParserConfig.priv = driver;
     return virDomainXMLOptionNew(&virBhyveDriverDomainDefParserConfig,
                                  &virBhyveDriverPrivateDataCallbacks,
-                                 NULL);
+                                 NULL, NULL);
 }
 
 virDomainDefParserConfig virBhyveDriverDomainDefParserConfig = {
index c7e20b8ba13f5cf48eda3b80339b3824d9cb89e8..9cd39edf226529c67cc82b9e0e22e4051ea8569b 100644 (file)
@@ -76,6 +76,9 @@ struct _virDomainXMLOption {
 
     /* XML namespace callbacks */
     virDomainXMLNamespace ns;
+
+    /* ABI stability callbacks */
+    virDomainABIStability abi;
 };
 
 #define VIR_DOMAIN_DEF_FORMAT_COMMON_FLAGS             \
@@ -1050,7 +1053,8 @@ virDomainKeyWrapDefParseXML(virDomainDefPtr def, xmlXPathContextPtr ctxt)
 virDomainXMLOptionPtr
 virDomainXMLOptionNew(virDomainDefParserConfigPtr config,
                       virDomainXMLPrivateDataCallbacksPtr priv,
-                      virDomainXMLNamespacePtr xmlns)
+                      virDomainXMLNamespacePtr xmlns,
+                      virDomainABIStabilityPtr abi)
 {
     virDomainXMLOptionPtr xmlopt;
 
@@ -1069,6 +1073,9 @@ virDomainXMLOptionNew(virDomainDefParserConfigPtr config,
     if (xmlns)
         xmlopt->ns = *xmlns;
 
+    if (abi)
+        xmlopt->abi = *abi;
+
     /* Technically this forbids to use one of Xerox's MAC address prefixes in
      * our hypervisor drivers. This shouldn't ever be a problem.
      *
@@ -19984,6 +19991,7 @@ virDomainDefVcpuCheckAbiStability(virDomainDefPtr src,
 bool
 virDomainDefCheckABIStabilityFlags(virDomainDefPtr src,
                                    virDomainDefPtr dst,
+                                   virDomainXMLOptionPtr xmlopt,
                                    unsigned int flags)
 {
     size_t i;
@@ -20385,6 +20393,10 @@ virDomainDefCheckABIStabilityFlags(virDomainDefPtr src,
         !virDomainIOMMUDefCheckABIStability(src->iommu, dst->iommu))
         goto error;
 
+    if (xmlopt && xmlopt->abi.domain &&
+        !xmlopt->abi.domain(src, dst))
+        goto error;
+
     /* Coverity is not very happy with this - all dead_error_condition */
 #if !STATIC_ANALYSIS
     /* This switch statement is here to trigger compiler warning when adding
@@ -20444,9 +20456,10 @@ virDomainDefCheckABIStabilityFlags(virDomainDefPtr src,
 
 bool
 virDomainDefCheckABIStability(virDomainDefPtr src,
-                              virDomainDefPtr dst)
+                              virDomainDefPtr dst,
+                              virDomainXMLOptionPtr xmlopt)
 {
-    return virDomainDefCheckABIStabilityFlags(src, dst, 0);
+    return virDomainDefCheckABIStabilityFlags(src, dst, xmlopt, 0);
 }
 
 
index 83e0672691430b8272791633938c0ff1bb6bc866..446b117b7c1e333e82be42af7422cbe03f05aa78 100644 (file)
@@ -2537,9 +2537,19 @@ struct _virDomainXMLPrivateDataCallbacks {
     virDomainXMLPrivateDataParseFunc  parse;
 };
 
+typedef bool (*virDomainABIStabilityDomain)(const virDomainDef *src,
+                                            const virDomainDef *dst);
+
+typedef struct _virDomainABIStability virDomainABIStability;
+typedef virDomainABIStability *virDomainABIStabilityPtr;
+struct _virDomainABIStability {
+    virDomainABIStabilityDomain domain;
+};
+
 virDomainXMLOptionPtr virDomainXMLOptionNew(virDomainDefParserConfigPtr config,
                                             virDomainXMLPrivateDataCallbacksPtr priv,
-                                            virDomainXMLNamespacePtr xmlns);
+                                            virDomainXMLNamespacePtr xmlns,
+                                            virDomainABIStabilityPtr abi);
 
 void virDomainNetGenerateMAC(virDomainXMLOptionPtr xmlopt, virMacAddrPtr mac);
 
@@ -2806,10 +2816,12 @@ virDomainObjPtr virDomainObjParseFile(const char *filename,
                                       unsigned int flags);
 
 bool virDomainDefCheckABIStability(virDomainDefPtr src,
-                                   virDomainDefPtr dst);
+                                   virDomainDefPtr dst,
+                                   virDomainXMLOptionPtr xmlopt);
 
 bool virDomainDefCheckABIStabilityFlags(virDomainDefPtr src,
                                         virDomainDefPtr dst,
+                                        virDomainXMLOptionPtr xmlopt,
                                         unsigned int flags);
 
 int virDomainDefAddImplicitDevices(virDomainDefPtr def);
index 5daa8d11a7353440d6a4727c205fa13047ef2cf7..b6cba5ac38aa42b72b4066f22483d5cd41cecd17 100644 (file)
@@ -1198,6 +1198,7 @@ virDomainSnapshotRedefinePrep(virDomainPtr domain,
                               virDomainObjPtr vm,
                               virDomainSnapshotDefPtr *defptr,
                               virDomainSnapshotObjPtr *snap,
+                              virDomainXMLOptionPtr xmlopt,
                               bool *update_current,
                               unsigned int flags)
 {
@@ -1286,7 +1287,7 @@ virDomainSnapshotRedefinePrep(virDomainPtr domain,
         if (other->def->dom) {
             if (def->dom) {
                 if (!virDomainDefCheckABIStability(other->def->dom,
-                                                   def->dom))
+                                                   def->dom, xmlopt))
                     goto cleanup;
             } else {
                 /* Transfer the domain def */
index fcf7a1e824d397d830dd429476946a2591ef04ff..da904f946001b06e52f9ea2210e1cc810b662af4 100644 (file)
@@ -181,6 +181,7 @@ int virDomainSnapshotRedefinePrep(virDomainPtr domain,
                                   virDomainObjPtr vm,
                                   virDomainSnapshotDefPtr *def,
                                   virDomainSnapshotObjPtr *snap,
+                                  virDomainXMLOptionPtr xmlopt,
                                   bool *update_current,
                                   unsigned int flags);
 
index c56b05b38f6933bd857ab1d08790cd02de7f5726..886dc629faab7f51d1d36d68ffba451f71598834 100644 (file)
@@ -2255,5 +2255,5 @@ libxlCreateXMLConf(void)
 {
     return virDomainXMLOptionNew(&libxlDomainDefParserConfig,
                                  &libxlDomainXMLPrivateDataCallbacks,
-                                 NULL);
+                                 NULL, NULL);
 }
index 256cf1dc18c03421d2fe4a24d673d7d59821017d..68a501cf166419e6803915be713fe9ab3c483efe 100644 (file)
@@ -1452,7 +1452,9 @@ libxlDomainDefCheckABIStability(libxlDriverPrivatePtr driver,
         !(migratableDefDst = virDomainDefCopy(dst, cfg->caps, driver->xmlopt, NULL, true)))
         goto cleanup;
 
-    ret = virDomainDefCheckABIStability(migratableDefSrc, migratableDefDst);
+    ret = virDomainDefCheckABIStability(migratableDefSrc,
+                                        migratableDefDst,
+                                        driver->xmlopt);
 
  cleanup:
     virDomainDefFree(migratableDefSrc);
index 508b98ba21b3c9549e932b3b601f9358aa0af4cd..ff975decc34ebaf1d93d21e685d5cbbc83c74386 100644 (file)
@@ -215,7 +215,8 @@ lxcDomainXMLConfInit(void)
 {
     return virDomainXMLOptionNew(&virLXCDriverDomainDefParserConfig,
                                  &virLXCDriverPrivateDataCallbacks,
-                                 &virLXCDriverDomainXMLNamespace);
+                                 &virLXCDriverDomainXMLNamespace,
+                                 NULL);
 }
 
 
index 9c4a1963540884769335192bd311d55f2d277686..8e305a85c01d7520e6ccfcb9ef818b6417091f5b 100644 (file)
@@ -1483,7 +1483,7 @@ static virDrvOpenStatus openvzConnectOpen(virConnectPtr conn,
         goto cleanup;
 
     if (!(driver->xmlopt = virDomainXMLOptionNew(&openvzDomainDefParserConfig,
-                                                 NULL, NULL)))
+                                                 NULL, NULL, NULL)))
         goto cleanup;
 
     if (openvzLoadDomains(driver) < 0)
index 0cc288f36d8e992c42d7183733718e790cf7f8d3..4465ac862d4fb4993853de5699406a61e6886c0c 100644 (file)
@@ -1202,7 +1202,7 @@ phypConnectOpen(virConnectPtr conn,
         goto failure;
 
     if (!(phyp_driver->xmlopt = virDomainXMLOptionNew(&virPhypDriverDomainDefParserConfig,
-                                                      NULL, NULL)))
+                                                      NULL, NULL, NULL)))
         goto failure;
 
     conn->privateData = phyp_driver;
index 7ea85053056f4700c96cd4443e5154411d19956c..03c55853f1e3d1b0f3886e096e3b3fcb76bf6288 100644 (file)
@@ -5026,7 +5026,7 @@ virQEMUCapsInitQMPCommandRun(virQEMUCapsInitQMPCommandPtr cmd,
         goto ignore;
     }
 
-    if (!(xmlopt = virDomainXMLOptionNew(NULL, NULL, NULL)) ||
+    if (!(xmlopt = virDomainXMLOptionNew(NULL, NULL, NULL, NULL)) ||
         !(cmd->vm = virDomainObjNew(xmlopt)))
         goto cleanup;
 
index 19ddf787dc88c3f137c87af44e89dc567e54ff21..78f55c0e77ef362d41ab756aaf417ee8ecdd4ba4 100644 (file)
@@ -909,7 +909,8 @@ virQEMUDriverCreateXMLConf(virQEMUDriverPtr driver)
     virQEMUDriverDomainDefParserConfig.priv = driver;
     return virDomainXMLOptionNew(&virQEMUDriverDomainDefParserConfig,
                                  &virQEMUDriverPrivateDataCallbacks,
-                                 &virQEMUDriverDomainXMLNamespace);
+                                 &virQEMUDriverDomainXMLNamespace,
+                                 NULL);
 }
 
 
index 0a85ee9d74f6c69a10275dbed5e4d9800d073ffb..173334dfb931d2cfe2f1d3a32d1323fc26178aad 100644 (file)
@@ -5839,6 +5839,7 @@ qemuDomainDefCheckABIStability(virQEMUDriverPtr driver,
 
     if (!virDomainDefCheckABIStabilityFlags(migratableDefSrc,
                                             migratableDefDst,
+                                            driver->xmlopt,
                                             check_flags))
         goto cleanup;
 
index 14bc6708ae67e68d3cda46338bea51d2d9718311..f0cdea6594ee7efd4bceb9766a53acabf67e8b64 100644 (file)
@@ -6142,7 +6142,7 @@ qemuDomainSaveImageUpdateDef(virQEMUDriverPtr driver,
                                           VIR_DOMAIN_XML_MIGRATABLE)))
         goto cleanup;
 
-    if (!virDomainDefCheckABIStability(def, newdef_migr)) {
+    if (!virDomainDefCheckABIStability(def, newdef_migr, driver->xmlopt)) {
         virErrorPtr err = virSaveLastError();
 
         /* Due to a bug in older version of external snapshot creation
@@ -6151,7 +6151,7 @@ qemuDomainSaveImageUpdateDef(virQEMUDriverPtr driver,
          * saved XML type, we need to check the ABI compatibility against
          * the user provided XML if the check against the migratable XML
          * fails. Snapshots created prior to v1.1.3 have this issue. */
-        if (!virDomainDefCheckABIStability(def, newdef)) {
+        if (!virDomainDefCheckABIStability(def, newdef, driver->xmlopt)) {
             virSetError(err);
             virFreeError(err);
             goto cleanup;
@@ -14588,6 +14588,7 @@ qemuDomainSnapshotCreateXML(virDomainPtr domain,
 
     if (redefine) {
         if (virDomainSnapshotRedefinePrep(domain, vm, &def, &snap,
+                                          driver->xmlopt,
                                           &update_current, flags) < 0)
             goto endjob;
     } else {
index 5f5d1cd71054a974a49e9e5d087b2f4375ce5348..48201d5b8ca93fd2dcd62340fc2d64fb3689b123 100644 (file)
@@ -667,7 +667,7 @@ get_definition(vahControl * ctl, const char *xmlStr)
         goto exit;
     }
 
-    if (!(ctl->xmlopt = virDomainXMLOptionNew(NULL, NULL, NULL))) {
+    if (!(ctl->xmlopt = virDomainXMLOptionNew(NULL, NULL, NULL, NULL))) {
         vah_error(ctl, 0, _("Failed to create XML config object"));
         goto exit;
     }
index e5938f5eab10b9b4e3ce2f0f58d5abaec3a7b109..604f09b195cd4846bb7c5db5ba1f99cdbb0dc300 100644 (file)
@@ -414,7 +414,7 @@ testDriverNew(void)
         goto error;
     }
 
-    if (!(ret->xmlopt = virDomainXMLOptionNew(NULL, NULL, &ns)) ||
+    if (!(ret->xmlopt = virDomainXMLOptionNew(NULL, NULL, &ns, NULL)) ||
         !(ret->eventState = virObjectEventStateNew()) ||
         !(ret->ifaces = virInterfaceObjListNew()) ||
         !(ret->domains = virDomainObjListNew()) ||
@@ -6373,6 +6373,7 @@ testDomainSnapshotCreateXML(virDomainPtr domain,
 
     if (redefine) {
         if (virDomainSnapshotRedefinePrep(domain, vm, &def, &snap,
+                                          privconn->xmlopt,
                                           &update_current, flags) < 0)
             goto cleanup;
     } else {
@@ -6648,7 +6649,8 @@ testDomainRevertToSnapshot(virDomainSnapshotPtr snapshot,
         if (virDomainObjIsActive(vm)) {
             /* Transitions 5, 6, 8, 9 */
             /* Check for ABI compatibility.  */
-            if (!virDomainDefCheckABIStability(vm->def, config)) {
+            if (!virDomainDefCheckABIStability(vm->def, config,
+                                               privconn->xmlopt)) {
                 virErrorPtr err = virGetLastError();
 
                 if (!(flags & VIR_DOMAIN_SNAPSHOT_REVERT_FORCE)) {
index 03edc897cc2198a23bcc921a15e8e29cb33834a0..58ab033c80141f5a4754e057b9f0979931dc8005 100644 (file)
@@ -533,7 +533,7 @@ umlStateInitialize(bool privileged,
         goto out_of_memory;
 
     if (!(uml_driver->xmlopt = virDomainXMLOptionNew(&umlDriverDomainDefParserConfig,
-                                                     &privcb, NULL)))
+                                                     &privcb, NULL, NULL)))
         goto error;
 
     if ((uml_driver->inotifyFD = inotify_init()) < 0) {
index d6d363e456a73c91005698dd719cd73098d21a7e..c66939e01060b4cae7d89802824afc7de739af13 100644 (file)
@@ -142,7 +142,7 @@ vboxDriverObjNew(void)
 
     if (!(driver->caps = vboxCapsInit()) ||
         !(driver->xmlopt = virDomainXMLOptionNew(&vboxDomainDefParserConfig,
-                                                 NULL, NULL)))
+                                                 NULL, NULL, NULL)))
         goto cleanup;
 
     return driver;
index 6853658334f7da0af3d40a30081893da8549d029..9e369e67bea906f3761ce13453a4817fdb22ea66 100644 (file)
@@ -114,7 +114,7 @@ vmwareDomainXMLConfigInit(void)
     virDomainXMLPrivateDataCallbacks priv = { .alloc = vmwareDataAllocFunc,
                                               .free = vmwareDataFreeFunc };
 
-    return virDomainXMLOptionNew(&vmwareDomainDefParserConfig, &priv, NULL);
+    return virDomainXMLOptionNew(&vmwareDomainDefParserConfig, &priv, NULL, NULL);
 }
 
 static virDrvOpenStatus
index 31af2e9df4d94195dffd8077e4faf692e7e13dac..3289a20026896d5753bbe1b169cb706ee4e3726b 100644 (file)
@@ -591,7 +591,7 @@ virDomainXMLOptionPtr
 virVMXDomainXMLConfInit(void)
 {
     return virDomainXMLOptionNew(&virVMXDomainDefParserConfig, NULL,
-                                 &virVMXDomainXMLNamespace);
+                                 &virVMXDomainXMLNamespace, NULL);
 }
 
 char *
index ef7b4531e3264b7b6b6aae9fe4878a21713447bf..2c021884f1c207fe7d220af997d79e9df17b1d21 100644 (file)
@@ -328,7 +328,7 @@ vzDriverObjNew(void)
     if (!(driver->caps = vzBuildCapabilities()) ||
         !(driver->xmlopt = virDomainXMLOptionNew(&vzDomainDefParserConfig,
                                                  &vzDomainXMLPrivateDataCallbacksPtr,
-                                                 NULL)) ||
+                                                 NULL, NULL)) ||
         !(driver->domains = virDomainObjListNew()) ||
         !(driver->domainEventState = virObjectEventStateNew()) ||
         (vzInitVersion(driver) < 0) ||
index 4d1408927f4b996b947d6f33b1abf07f0828f95a..f81ee20ad3582d5446e48360752f20418cc6e321 100644 (file)
@@ -401,7 +401,7 @@ virDomainXMLOptionPtr
 xenDomainXMLConfInit(void)
 {
     return virDomainXMLOptionNew(&xenDomainDefParserConfig,
-                                 NULL, NULL);
+                                 NULL, NULL, NULL);
 }
 
 
index 37d1a6fd9d8132aaf8a4edcdbc609abc83e9bc2d..380c3a1deb1f54bf187455e8f84ef180ca734cbc 100644 (file)
@@ -200,7 +200,7 @@ xenapiConnectOpen(virConnectPtr conn, virConnectAuthPtr auth,
     }
 
     if (!(privP->xmlopt = virDomainXMLOptionNew(&xenapiDomainDefParserConfig,
-                                                NULL, NULL))) {
+                                                NULL, NULL, NULL))) {
         xenapiSessionErrorHandler(conn, VIR_ERR_INTERNAL_ERROR,
                                   _("Failed to create XML conf object"));
         goto error;
index 08b2dfd4be1c464c09be8e65acf85cb9aabb211d..bde7d0e05d0bfea169bec47e09d0a82e69fac0e6 100644 (file)
@@ -130,7 +130,8 @@ mymain(void)
     if ((driver.caps = virBhyveCapsBuild()) == NULL)
         return EXIT_FAILURE;
 
-    if ((driver.xmlopt = virDomainXMLOptionNew(NULL, NULL, NULL)) == NULL)
+    if ((driver.xmlopt = virDomainXMLOptionNew(NULL, NULL,
+                                               NULL, NULL)) == NULL)
         return EXIT_FAILURE;
 
 # define DO_TEST_FULL(name, flags)                            \
index 0b519a460b25e8c9f00f902dadbf434dc4dc8b86..1adbcfef6ec9046b83e593690d838b7fdb69d80e 100644 (file)
@@ -95,7 +95,7 @@ static int testCompareXMLToArgvFiles(const char *xmlfile,
     if (testSanitizeDef(vmdef) < 0)
         goto fail;
 
-    if (!virDomainDefCheckABIStability(vmdef, vmdef)) {
+    if (!virDomainDefCheckABIStability(vmdef, vmdef, driver.xmlopt)) {
         VIR_TEST_DEBUG("ABI stability check failed on %s", xmlfile);
         goto fail;
     }
index b3601854be54cbf5925caad2944682cc93843c8e..b7d7cc2abb5130bfd23b6648081d5dd416329838 100644 (file)
@@ -463,7 +463,7 @@ testCompareXMLToArgv(const void *data)
     if (virBitmapParse("0-3", &priv->autoNodeset, 4) < 0)
         goto cleanup;
 
-    if (!virDomainDefCheckABIStability(vm->def, vm->def)) {
+    if (!virDomainDefCheckABIStability(vm->def, vm->def, driver.xmlopt)) {
         VIR_TEST_DEBUG("ABI stability check failed on %s", xml);
         goto cleanup;
     }
index 107509b31a7fd62ba6a0b8cb360d31797ca7c1f1..5dfc45d7d30f5af4dee036ab80c3cd6b9cdef237 100644 (file)
@@ -57,7 +57,7 @@ testCompareFiles(const char *xml, const char *sexpr)
                                  tty, vncport, caps, xmlopt)))
       goto fail;
 
-  if (!virDomainDefCheckABIStability(def, def)) {
+  if (!virDomainDefCheckABIStability(def, def, xmlopt)) {
       fprintf(stderr, "ABI stability check failed on %s", xml);
       goto fail;
   }
index 817fffa041ce1b259b2b129d30c85a7986cc7cd0..4fb2338bb1de7dfcec7da50588935ca0bf91e8c9 100644 (file)
@@ -1136,7 +1136,7 @@ virDomainXMLOptionPtr virTestGenericDomainXMLConfInit(void)
 {
     return virDomainXMLOptionNew(&virTestGenericDomainDefParserConfig,
                                  &virTestGenericPrivateDataCallbacks,
-                                 NULL);
+                                 NULL, NULL);
 }
 
 
@@ -1169,7 +1169,7 @@ testCompareDomXML2XMLFiles(virCapsPtr caps, virDomainXMLOptionPtr xmlopt,
         goto out;
     }
 
-    if (!virDomainDefCheckABIStability(def, def)) {
+    if (!virDomainDefCheckABIStability(def, def, xmlopt)) {
         VIR_TEST_DEBUG("ABI stability check failed on %s", infile);
         result = TEST_COMPARE_DOM_XML2XML_RESULT_FAIL_STABILITY;
         goto out;
index 4eedbac2bc2fb96c4e9fa019de107bc22dc0ccb8..00385dfa712ac99fe88276cc1d0f96a1c9bd971e 100644 (file)
@@ -81,7 +81,7 @@ testCompareFiles(const char *vmx, const char *xml)
     if (!(def = virVMXParseConfig(&ctx, xmlopt, caps, vmxData)))
         goto cleanup;
 
-    if (!virDomainDefCheckABIStability(def, def)) {
+    if (!virDomainDefCheckABIStability(def, def, xmlopt)) {
         fprintf(stderr, "ABI stability check failed on %s", vmx);
         goto cleanup;
     }
index 05f7c2042b2997de8101687a38366dffbd97a865..3fe42988de54a644e83df3f11a1268215213c315 100644 (file)
@@ -97,7 +97,7 @@ testCompareParseXML(const char *xlcfg, const char *xml, bool replaceVars)
             goto fail;
     }
 
-    if (!virDomainDefCheckABIStability(def, def)) {
+    if (!virDomainDefCheckABIStability(def, def, xmlopt)) {
         fprintf(stderr, "ABI stability check failed on %s", xml);
         goto fail;
     }
index aa3845bf0029ce27c55c181990fc4b647ddad2dd..345223ffe406d52a34cebde48ddfd8a55baddb30 100644 (file)
@@ -67,7 +67,7 @@ testCompareParseXML(const char *xmcfg, const char *xml)
                                       VIR_DOMAIN_DEF_PARSE_INACTIVE)))
         goto fail;
 
-    if (!virDomainDefCheckABIStability(def, def)) {
+    if (!virDomainDefCheckABIStability(def, def, xmlopt)) {
         fprintf(stderr, "ABI stability check failed on %s", xml);
         goto fail;
     }
index fddccf02963f288f2e588f2ed3b6fba6fbee8865..0ba8a765bf26ee848ba787ff5aaa05c441f185ae 100644 (file)
@@ -31,7 +31,7 @@ testCompareFiles(const char *xml, const char *sexpr)
                                     VIR_DOMAIN_DEF_PARSE_INACTIVE)))
       goto fail;
 
-  if (!virDomainDefCheckABIStability(def, def)) {
+  if (!virDomainDefCheckABIStability(def, def, xmlopt)) {
       fprintf(stderr, "ABI stability check failed on %s", xml);
       goto fail;
   }
index 71c4cb9dc8125e3a5c4b6febfdb0b91da8b59a99..13f53e7d2d70d3938efc19b86c7dbeba0c39d055 100644 (file)
@@ -82,7 +82,7 @@ testCompareFiles(const char *xml, const char *vmx, int virtualHW_version)
     if (def == NULL)
         goto failure;
 
-    if (!virDomainDefCheckABIStability(def, def)) {
+    if (!virDomainDefCheckABIStability(def, def, xmlopt)) {
         fprintf(stderr, "ABI stability check failed on %s", xml);
         goto failure;
     }