]> xenbits.xensource.com Git - libvirt.git/commitdiff
Simplify the Xen domain stats/peek / node memory driver methods
authorDaniel P. Berrange <berrange@redhat.com>
Tue, 30 Apr 2013 16:55:18 +0000 (17:55 +0100)
committerDaniel P. Berrange <berrange@redhat.com>
Thu, 9 May 2013 12:16:20 +0000 (13:16 +0100)
Make the Xen domain stats / peek and node memory driver
methods unconditionally call the sub-drivers which are
guaranteed to be open.

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

index 703116ffb776ab4feecf909a32fa29e1fa8843e9..cc54f7ab850740defab00e5310f6b7ca3f7b133c 100644 (file)
@@ -1575,26 +1575,14 @@ static int
 xenUnifiedDomainBlockStats(virDomainPtr dom, const char *path,
                            struct _virDomainBlockStats *stats)
 {
-    xenUnifiedPrivatePtr priv = dom->conn->privateData;
-
-    if (priv->opened[XEN_UNIFIED_HYPERVISOR_OFFSET])
-        return xenHypervisorDomainBlockStats(dom, path, stats);
-
-    virReportError(VIR_ERR_NO_SUPPORT, __FUNCTION__);
-    return -1;
+    return xenHypervisorDomainBlockStats(dom, path, stats);
 }
 
 static int
 xenUnifiedDomainInterfaceStats(virDomainPtr dom, const char *path,
                                struct _virDomainInterfaceStats *stats)
 {
-    xenUnifiedPrivatePtr priv = dom->conn->privateData;
-
-    if (priv->opened[XEN_UNIFIED_HYPERVISOR_OFFSET])
-        return xenHypervisorDomainInterfaceStats(dom, path, stats);
-
-    virReportError(VIR_ERR_NO_SUPPORT, __FUNCTION__);
-    return -1;
+    return xenHypervisorDomainInterfaceStats(dom, path, stats);
 }
 
 static int
@@ -1602,57 +1590,32 @@ xenUnifiedDomainBlockPeek(virDomainPtr dom, const char *path,
                           unsigned long long offset, size_t size,
                           void *buffer, unsigned int flags)
 {
-    int r;
     xenUnifiedPrivatePtr priv = dom->conn->privateData;
 
     virCheckFlags(0, -1);
 
-    if (priv->opened[XEN_UNIFIED_XEND_OFFSET]) {
-        r = xenDaemonDomainBlockPeek(dom, path, offset, size, buffer);
-        if (r != -2) return r;
-        /* r == -2 means declined, so fall through to XM driver ... */
-    }
-
-    if (priv->opened[XEN_UNIFIED_XM_OFFSET]) {
-        if (xenXMDomainBlockPeek(dom, path, offset, size, buffer) == 0)
-            return 0;
-    }
-
-    virReportError(VIR_ERR_NO_SUPPORT, __FUNCTION__);
-    return -1;
+    if (dom->id < 0 && priv->xendConfigVersion < XEND_CONFIG_VERSION_3_0_4)
+        return xenXMDomainBlockPeek(dom, path, offset, size, buffer);
+    else
+        return xenDaemonDomainBlockPeek(dom, path, offset, size, buffer);
 }
 
 static int
 xenUnifiedNodeGetCellsFreeMemory(virConnectPtr conn, unsigned long long *freeMems,
                                  int startCell, int maxCells)
 {
-    xenUnifiedPrivatePtr priv = conn->privateData;
-
-    if (priv->opened[XEN_UNIFIED_HYPERVISOR_OFFSET])
-        return xenHypervisorNodeGetCellsFreeMemory(conn, freeMems,
-                                                   startCell, maxCells);
-
-    virReportError(VIR_ERR_NO_SUPPORT, __FUNCTION__);
-    return -1;
+    return xenHypervisorNodeGetCellsFreeMemory(conn, freeMems,
+                                               startCell, maxCells);
 }
 
 static unsigned long long
 xenUnifiedNodeGetFreeMemory(virConnectPtr conn)
 {
     unsigned long long freeMem = 0;
-    int ret;
-    xenUnifiedPrivatePtr priv = conn->privateData;
 
-    if (priv->opened[XEN_UNIFIED_HYPERVISOR_OFFSET]) {
-        ret = xenHypervisorNodeGetCellsFreeMemory(conn, &freeMem,
-                                                  -1, 1);
-        if (ret != 1)
-            return 0;
-        return freeMem;
-    }
-
-    virReportError(VIR_ERR_NO_SUPPORT, __FUNCTION__);
-    return 0;
+    if (xenHypervisorNodeGetCellsFreeMemory(conn, &freeMem, -1, 1) < 0)
+        return 0;
+    return freeMem;
 }
 
 
index 53a8ca02755bf744b1c7d676b990085d1921e420..aec57f52137f4195eee87799d01323f7c5e2b453 100644 (file)
@@ -3240,7 +3240,7 @@ error:
  * @size: size
  * @buffer: return buffer
  *
- * Returns 0 if successful, -1 if error, -2 if declined.
+ * Returns 0 if successful, -1 if error
  */
 int
 xenDaemonDomainBlockPeek(virDomainPtr domain,
@@ -3258,9 +3258,6 @@ xenDaemonDomainBlockPeek(virDomainPtr domain,
     int vncport;
     const char *actual;
 
-    if (domain->id < 0 && priv->xendConfigVersion < XEND_CONFIG_VERSION_3_0_4)
-        return -2;              /* Decline, allow XM to handle it. */
-
     /* Security check: The path must correspond to a block device. */
     if (domain->id > 0)
         root = sexpr_get(domain->conn, "/xend/domain/%d?detail=1",