]> xenbits.xensource.com Git - people/liuw/libxenctrl-split/libvirt.git/commitdiff
vmware/vmx: use virDomainDefPostParse after parsing vmx config
authorPavel Hrdina <phrdina@redhat.com>
Sat, 28 Nov 2015 04:12:33 +0000 (05:12 +0100)
committerPavel Hrdina <phrdina@redhat.com>
Wed, 9 Dec 2015 11:36:44 +0000 (12:36 +0100)
This change ensures to call driver specific post-parse code to modify
domain definition after parsing hypervisor config the same way we do
after parsing XML.

Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
src/esx/esx_driver.c
src/vmware/vmware_conf.c
src/vmware/vmware_driver.c
src/vmx/vmx.c
src/vmx/vmx.h
tests/vmx2xmltest.c

index ebf23be6d04ad338f26d9b8fe78ca3d56c58f0c1..8d4b3fd1b4bb14ace62b58268992b1f18d99f2cb 100644 (file)
@@ -2743,7 +2743,7 @@ esxDomainGetXMLDesc(virDomainPtr domain, unsigned int flags)
     ctx.autodetectSCSIControllerModel = NULL;
     ctx.datacenterPath = priv->primary->datacenterPath;
 
-    def = virVMXParseConfig(&ctx, priv->xmlopt, vmx);
+    def = virVMXParseConfig(&ctx, priv->xmlopt, priv->caps, vmx);
 
     if (def) {
         if (powerState != esxVI_VirtualMachinePowerState_PoweredOff)
@@ -2802,7 +2802,7 @@ esxConnectDomainXMLFromNative(virConnectPtr conn, const char *nativeFormat,
     ctx.autodetectSCSIControllerModel = NULL;
     ctx.datacenterPath = NULL;
 
-    def = virVMXParseConfig(&ctx, priv->xmlopt, nativeConfig);
+    def = virVMXParseConfig(&ctx, priv->xmlopt, priv->caps, nativeConfig);
 
     if (def)
         xml = virDomainDefFormat(def, VIR_DOMAIN_DEF_FORMAT_INACTIVE);
index f3cbbf55547933afddd42bc87908f16454249823..b30b5de35b61b8bf4cd20492c45b2986eb5db7ca 100644 (file)
@@ -166,7 +166,8 @@ vmwareLoadDomains(struct vmware_driver *driver)
             goto cleanup;
 
         if ((vmdef =
-             virVMXParseConfig(&ctx, driver->xmlopt, vmx)) == NULL) {
+             virVMXParseConfig(&ctx, driver->xmlopt,
+                               driver->caps, vmx)) == NULL) {
             goto cleanup;
         }
 
index a12b03ab238ee2458cfe813a7172f75539f1f404..7eedba300a714cba261c9b104bc44a8f960ff896 100644 (file)
@@ -1035,7 +1035,7 @@ vmwareConnectDomainXMLFromNative(virConnectPtr conn, const char *nativeFormat,
     ctx.autodetectSCSIControllerModel = NULL;
     ctx.datacenterPath = NULL;
 
-    def = virVMXParseConfig(&ctx, driver->xmlopt, nativeConfig);
+    def = virVMXParseConfig(&ctx, driver->xmlopt, driver->caps, nativeConfig);
 
     if (def != NULL)
         xml = virDomainDefFormat(def, VIR_DOMAIN_DEF_FORMAT_INACTIVE);
index 7c3c10a29b36cf0b5e57ef70095754317e9ad057..2ae83f3513119a204ac7cc6729e75e94d5a5f0e1 100644 (file)
@@ -1276,6 +1276,7 @@ virVMXGatherSCSIControllers(virVMXContext *ctx, virDomainDefPtr def,
 virDomainDefPtr
 virVMXParseConfig(virVMXContext *ctx,
                   virDomainXMLOptionPtr xmlopt,
+                  virCapsPtr caps,
                   const char *vmx)
 {
     bool success = false;
@@ -1811,6 +1812,10 @@ virVMXParseConfig(virVMXContext *ctx,
         def->namespaceData = namespaceData;
     }
 
+    if (virDomainDefPostParse(def, caps, VIR_DOMAIN_DEF_PARSE_ABI_UPDATE,
+                              xmlopt) < 0)
+        goto cleanup;
+
     success = true;
 
  cleanup:
index 90bd7479ed81012a84c49fb4362c82235c86e381..08b62776596e1015b570726dbe44c3032de8e141 100644 (file)
@@ -82,6 +82,7 @@ char *virVMXConvertToUTF8(const char *encoding, const char *string);
 
 virDomainDefPtr virVMXParseConfig(virVMXContext *ctx,
                                   virDomainXMLOptionPtr xmlopt,
+                                  virCapsPtr caps,
                                   const char *vmx);
 
 int virVMXParseVNC(virConfPtr conf, virDomainGraphicsDefPtr *def);
index 2b14804de443a9c00622ec786f5fa4f64d20e599..0bbf055c06661d8967eb2b45fb946da11d0871c4 100644 (file)
@@ -78,7 +78,7 @@ testCompareFiles(const char *vmx, const char *xml)
     if (virtTestLoadFile(vmx, &vmxData) < 0)
         goto cleanup;
 
-    if (!(def = virVMXParseConfig(&ctx, xmlopt, vmxData)))
+    if (!(def = virVMXParseConfig(&ctx, xmlopt, caps, vmxData)))
         goto cleanup;
 
     if (!virDomainDefCheckABIStability(def, def)) {