[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

[libvirt] [PATCH 1/2] vmware: implement domainXMLFromNative



---
 src/vmware/vmware_driver.c |   31 +++++++++++++++++++++++++++++++
 1 files changed, 31 insertions(+), 0 deletions(-)

diff --git a/src/vmware/vmware_driver.c b/src/vmware/vmware_driver.c
index 56e9d2d..8f9d922 100644
--- a/src/vmware/vmware_driver.c
+++ b/src/vmware/vmware_driver.c
@@ -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 */
-- 
1.7.9


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]