]> xenbits.xensource.com Git - libvirt.git/commitdiff
Simplify the Xen domain define/undefine driver methods
authorDaniel P. Berrange <berrange@redhat.com>
Tue, 30 Apr 2013 16:39:29 +0000 (17:39 +0100)
committerDaniel P. Berrange <berrange@redhat.com>
Thu, 9 May 2013 12:16:20 +0000 (13:16 +0100)
Make the domain define/undefine driver methods directly call
into either the XenD or XM drivers

Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
src/xen/xen_driver.c
src/xen/xen_driver.h
src/xen/xend_internal.c
src/xen/xm_internal.c

index e504578fdb1bb489bccb5003d05893da544b9f4e..341312da0a6b17eb7537c4a9c04157de6c146ede 100644 (file)
@@ -1380,31 +1380,23 @@ static virDomainPtr
 xenUnifiedDomainDefineXML(virConnectPtr conn, const char *xml)
 {
     xenUnifiedPrivatePtr priv = conn->privateData;
-    int i;
-    virDomainPtr ret;
-
-    for (i = 0; i < XEN_UNIFIED_NR_DRIVERS; ++i)
-        if (priv->opened[i] && drivers[i]->xenDomainDefineXML) {
-            ret = drivers[i]->xenDomainDefineXML(conn, xml);
-            if (ret) return ret;
-        }
 
-    return NULL;
+    if (priv->xendConfigVersion < XEND_CONFIG_VERSION_3_0_4)
+        return xenXMDomainDefineXML(conn, xml);
+    else
+        return xenDaemonDomainDefineXML(conn, xml);
 }
 
 static int
 xenUnifiedDomainUndefineFlags(virDomainPtr dom, unsigned int flags)
 {
     xenUnifiedPrivatePtr priv = dom->conn->privateData;
-    int i;
 
     virCheckFlags(0, -1);
-    for (i = 0; i < XEN_UNIFIED_NR_DRIVERS; ++i)
-        if (priv->opened[i] && drivers[i]->xenDomainUndefine &&
-            drivers[i]->xenDomainUndefine(dom) == 0)
-            return 0;
-
-    return -1;
+    if (priv->xendConfigVersion < XEND_CONFIG_VERSION_3_0_4)
+        return xenXMDomainUndefine(dom);
+    else
+        return xenDaemonDomainUndefine(dom);
 }
 
 static int
index e2c0d6882b17aa32e84dd472a987912d0fa1b920..254c2f52b5021e3fde9bdd2d3907ab6fdc8a3e86 100644 (file)
@@ -93,8 +93,6 @@ extern int xenRegister (void);
  * structure with direct calls in xen_unified.c.
  */
 struct xenUnifiedDriver {
-    virDrvDomainDefineXML xenDomainDefineXML;
-    virDrvDomainUndefine xenDomainUndefine;
     virDrvDomainAttachDeviceFlags xenDomainAttachDeviceFlags;
     virDrvDomainDetachDeviceFlags xenDomainDetachDeviceFlags;
     virDrvDomainGetSchedulerType xenDomainGetSchedulerType;
index 53f87d69806087af65200da17e5bf06f56fc6f7d..9efe26ec51a0664f6c25fe8a33ec75c6b702e990 100644 (file)
@@ -2859,9 +2859,6 @@ xenDaemonDomainDefineXML(virConnectPtr conn, const char *xmlDesc)
     xenUnifiedPrivatePtr priv = conn->privateData;
     virDomainDefPtr def;
 
-    if (priv->xendConfigVersion < XEND_CONFIG_VERSION_3_0_4)
-        return NULL;
-
     if (!(def = virDomainDefParseString(xmlDesc, priv->caps, priv->xmlopt,
                                         1 << VIR_DOMAIN_VIRT_XEN,
                                         VIR_DOMAIN_XML_INACTIVE))) {
@@ -2915,11 +2912,6 @@ xenDaemonDomainCreate(virDomainPtr domain)
 int
 xenDaemonDomainUndefine(virDomainPtr domain)
 {
-    xenUnifiedPrivatePtr priv = domain->conn->privateData;
-
-    if (priv->xendConfigVersion < XEND_CONFIG_VERSION_3_0_4)
-        return -1;
-
     return xend_op(domain->conn, domain->name, "op", "delete", NULL);
 }
 
@@ -3370,8 +3362,6 @@ xenDaemonDomainBlockPeek(virDomainPtr domain,
 }
 
 struct xenUnifiedDriver xenDaemonDriver = {
-    .xenDomainDefineXML = xenDaemonDomainDefineXML,
-    .xenDomainUndefine = xenDaemonDomainUndefine,
     .xenDomainAttachDeviceFlags = xenDaemonAttachDeviceFlags,
     .xenDomainDetachDeviceFlags = xenDaemonDetachDeviceFlags,
     .xenDomainGetSchedulerType = xenDaemonGetSchedulerType,
index ac452c481b2751261ed7257987e91fab284ce47e..2785b0b3f021ce5775b5975758ecee52f000a7a2 100644 (file)
@@ -81,8 +81,6 @@ static int xenXMDomainDetachDeviceFlags(virDomainPtr domain, const char *xml,
 #define XM_XML_ERROR "Invalid xml"
 
 struct xenUnifiedDriver xenXMDriver = {
-    .xenDomainDefineXML = xenXMDomainDefineXML,
-    .xenDomainUndefine = xenXMDomainUndefine,
     .xenDomainAttachDeviceFlags = xenXMDomainAttachDeviceFlags,
     .xenDomainDetachDeviceFlags = xenXMDomainDetachDeviceFlags,
 };
@@ -1103,9 +1101,6 @@ xenXMDomainUndefine(virDomainPtr domain)
     xenXMConfCachePtr entry;
     int ret = -1;
 
-    if (domain->id != -1)
-        return -1;
-
     xenUnifiedLock(priv);
 
     if (!(filename = virHashLookup(priv->nameConfigMap, domain->name)))