]> xenbits.xensource.com Git - libvirt.git/commitdiff
vmware: implement domainXMLFromNative
authorJean-Baptiste Rouault <jean-baptiste.rouault@diateam.net>
Wed, 22 Feb 2012 09:28:06 +0000 (10:28 +0100)
committerMatthias Bolte <matthias.bolte@googlemail.com>
Wed, 22 Feb 2012 10:36:08 +0000 (11:36 +0100)
src/vmware/vmware_driver.c

index 56e9d2d704f88d1c8cecec7483ff9b841c86a9af..8f9d92270cdf12e7e26d6e788db062b203a2d9d2 100644 (file)
@@ -844,6 +844,36 @@ vmwareDomainGetXMLDesc(virDomainPtr dom, unsigned int flags)
     return ret;
 }
 
+static char *
+vmwareDomainXMLFromNative(virConnectPtr conn, const char *nativeFormat,
+                          const char *nativeConfig,
+                          unsigned int flags)
+{
+    struct vmware_driver *driver = conn->privateData;
+    virVMXContext ctx;
+    virDomainDefPtr def = NULL;
+    char *xml = NULL;
+
+    virCheckFlags(0, NULL);
+
+    if (STRNEQ(nativeFormat, "vmware-vmx")) {
+        vmwareError(VIR_ERR_INVALID_ARG,
+                    _("Unsupported config format '%s'"), nativeFormat);
+        return NULL;
+    }
+
+    ctx.parseFileName = vmwareCopyVMXFileName;
+
+    def = virVMXParseConfig(&ctx, driver->caps, nativeConfig);
+
+    if (def != NULL)
+        xml = virDomainDefFormat(def, VIR_DOMAIN_XML_INACTIVE);
+
+    virDomainDefFree(def);
+
+    return xml;
+}
+
 static int
 vmwareNumDefinedDomains(virConnectPtr conn)
 {
@@ -988,6 +1018,7 @@ static virDriver vmwareDriver = {
     .domainGetInfo = vmwareDomainGetInfo, /* 0.8.7 */
     .domainGetState = vmwareDomainGetState, /* 0.9.2 */
     .domainGetXMLDesc = vmwareDomainGetXMLDesc, /* 0.8.7 */
+    .domainXMLFromNative = vmwareDomainXMLFromNative, /* 0.9.11 */
     .listDefinedDomains = vmwareListDefinedDomains, /* 0.8.7 */
     .numOfDefinedDomains = vmwareNumDefinedDomains, /* 0.8.7 */
     .domainCreate = vmwareDomainCreate, /* 0.8.7 */