]> xenbits.xensource.com Git - libvirt.git/commitdiff
Simplify the Xen driver define domain driver methods
authorDaniel P. Berrange <berrange@redhat.com>
Tue, 30 Apr 2013 16:31:40 +0000 (17:31 +0100)
committerDaniel P. Berrange <berrange@redhat.com>
Thu, 9 May 2013 12:16:20 +0000 (13:16 +0100)
Directly call either XenD or the XM driver for handling
domain define operations.

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/xend_internal.h
src/xen/xm_internal.c

index 781e37396e751229356bcceef8e133b2339210f2..d04fe16ab83b59d124d9b6e7393094fa987bbc6c 100644 (file)
@@ -1320,32 +1320,24 @@ xenUnifiedConnectListDefinedDomains(virConnectPtr conn, char **const names,
                                     int maxnames)
 {
     xenUnifiedPrivatePtr priv = conn->privateData;
-    int i;
-    int ret;
-
-    for (i = 0; i < XEN_UNIFIED_NR_DRIVERS; ++i)
-        if (priv->opened[i] && drivers[i]->xenListDefinedDomains) {
-            ret = drivers[i]->xenListDefinedDomains(conn, names, maxnames);
-            if (ret >= 0) return ret;
-        }
 
-    return -1;
+    if (priv->xendConfigVersion < XEND_CONFIG_VERSION_3_0_4) {
+        return xenXMListDefinedDomains(conn, names, maxnames);
+    } else {
+        return xenDaemonListDefinedDomains(conn, names, maxnames);
+    }
 }
 
 static int
 xenUnifiedConnectNumOfDefinedDomains(virConnectPtr conn)
 {
     xenUnifiedPrivatePtr priv = conn->privateData;
-    int i;
-    int ret;
-
-    for (i = 0; i < XEN_UNIFIED_NR_DRIVERS; ++i)
-        if (priv->opened[i] && drivers[i]->xenNumOfDefinedDomains) {
-            ret = drivers[i]->xenNumOfDefinedDomains(conn);
-            if (ret >= 0) return ret;
-        }
 
-    return -1;
+    if (priv->xendConfigVersion < XEND_CONFIG_VERSION_3_0_4) {
+        return xenXMNumOfDefinedDomains(conn);
+    } else {
+        return xenDaemonNumOfDefinedDomains(conn);
+    }
 }
 
 static int
index 4b18b4d2cafdc13bd431c761cffcd614744e1300..c756dded27b4806de51230b4d3ef00fd89a7b4e3 100644 (file)
@@ -93,8 +93,6 @@ extern int xenRegister (void);
  * structure with direct calls in xen_unified.c.
  */
 struct xenUnifiedDriver {
-    virDrvConnectListDefinedDomains xenListDefinedDomains;
-    virDrvConnectNumOfDefinedDomains xenNumOfDefinedDomains;
     virDrvDomainCreate xenDomainCreate;
     virDrvDomainDefineXML xenDomainDefineXML;
     virDrvDomainUndefine xenDomainUndefine;
index 609c5ab548db2edc4eeff1fd8ee52ae31f6c56e4..55e2197568a45605ea81868dc8911e7f643d7886 100644 (file)
@@ -2937,19 +2937,12 @@ xenDaemonDomainUndefine(virDomainPtr domain)
  *
  * Returns the number of domain found or -1 in case of error
  */
-static int
+int
 xenDaemonNumOfDefinedDomains(virConnectPtr conn)
 {
     struct sexpr *root = NULL;
     int ret = -1;
     struct sexpr *_for_i, *node;
-    xenUnifiedPrivatePtr priv = conn->privateData;
-
-    /* xm_internal.c (the support for defined domains from /etc/xen
-     * config files used by old Xen) will handle this.
-     */
-    if (priv->xendConfigVersion < XEND_CONFIG_VERSION_3_0_4)
-        return -1;
 
     root = sexpr_get(conn, "/xend/domain?state=halted");
     if (root == NULL)
@@ -2970,7 +2963,7 @@ error:
     return ret;
 }
 
-static int
+int
 xenDaemonListDefinedDomains(virConnectPtr conn,
                             char **const names,
                             int maxnames)
@@ -2978,10 +2971,6 @@ xenDaemonListDefinedDomains(virConnectPtr conn,
     struct sexpr *root = NULL;
     int i, ret = -1;
     struct sexpr *_for_i, *node;
-    xenUnifiedPrivatePtr priv = conn->privateData;
-
-    if (priv->xendConfigVersion < XEND_CONFIG_VERSION_3_0_4)
-        return -1;
 
     if (maxnames == 0)
         return 0;
@@ -3387,8 +3376,6 @@ xenDaemonDomainBlockPeek(virDomainPtr domain,
 }
 
 struct xenUnifiedDriver xenDaemonDriver = {
-    .xenListDefinedDomains = xenDaemonListDefinedDomains,
-    .xenNumOfDefinedDomains = xenDaemonNumOfDefinedDomains,
     .xenDomainCreate = xenDaemonDomainCreate,
     .xenDomainDefineXML = xenDaemonDomainDefineXML,
     .xenDomainUndefine = xenDaemonDomainUndefine,
index fd661c9cdd60616e3797466c12b4f19ac844a095..4dc97bbe89cae8f8977b807e80f8cfca90c0ab2e 100644 (file)
@@ -109,6 +109,11 @@ char **xenDaemonListDomainsOld(virConnectPtr xend);
 
 char *xenDaemonDomainGetOSType(virDomainPtr domain);
 
+int xenDaemonNumOfDefinedDomains(virConnectPtr conn);
+int xenDaemonListDefinedDomains(virConnectPtr conn,
+                                char **const names,
+                                int maxnames);
+
 virDomainPtr xenDaemonDomainDefineXML(virConnectPtr xend, const char *sexpr);
 int xenDaemonDomainCreate(virDomainPtr domain);
 int xenDaemonDomainUndefine(virDomainPtr domain);
index 353f693749e15eee176818f711253d6e24708c71..d7099cfbc0307d004fa8cd288534b4cc36a04212 100644 (file)
@@ -81,8 +81,6 @@ static int xenXMDomainDetachDeviceFlags(virDomainPtr domain, const char *xml,
 #define XM_XML_ERROR "Invalid xml"
 
 struct xenUnifiedDriver xenXMDriver = {
-    .xenListDefinedDomains = xenXMListDefinedDomains,
-    .xenNumOfDefinedDomains = xenXMNumOfDefinedDomains,
     .xenDomainCreate = xenXMDomainCreate,
     .xenDomainDefineXML = xenXMDomainDefineXML,
     .xenDomainUndefine = xenXMDomainUndefine,