[libvirt] [PATCH 14/16] Xen: xend: remove use of XEND_CONFIG_VERSION

Jim Fehlig jfehlig at suse.com
Tue Dec 15 21:33:11 UTC 2015


Remove use of XEND_CONFIG_VERSION_* in xend_internal.c

Signed-off-by: Jim Fehlig <jfehlig at suse.com>
---
 src/xen/xend_internal.c | 167 ++++++++----------------------------------------
 1 file changed, 27 insertions(+), 140 deletions(-)

diff --git a/src/xen/xend_internal.c b/src/xen/xend_internal.c
index 21d99e3..72a1259 100644
--- a/src/xen/xend_internal.c
+++ b/src/xen/xend_internal.c
@@ -881,10 +881,6 @@ xend_detect_config_version(virConnectPtr conn)
     if (value) {
         if (virStrToLong_i(value, NULL, 10, &priv->xendConfigVersion) < 0)
             goto cleanup;
-    } else {
-        /* Xen prior to 3.0.3 did not have the xend_config_format
-           field, and is implicitly version 1. */
-        priv->xendConfigVersion = XEND_CONFIG_VERSION_3_0_2;
     }
     ret = 0;
  cleanup:
@@ -1124,14 +1120,12 @@ sexpr_to_xend_topology(const struct sexpr *root, virCapsPtr caps)
  * Returns the domain def pointer or NULL in case of error.
  */
 static virDomainDefPtr
-sexpr_to_domain(virConnectPtr conn, const struct sexpr *root)
+sexpr_to_domain(virConnectPtr conn ATTRIBUTE_UNUSED, const struct sexpr *root)
 {
     virDomainDefPtr ret = NULL;
     unsigned char uuid[VIR_UUID_BUFLEN];
     const char *name;
-    const char *tmp;
     int id = -1;
-    xenUnifiedPrivatePtr priv = conn->privateData;
 
     if (sexpr_uuid(uuid, root, "domain/uuid") < 0)
         goto error;
@@ -1139,14 +1133,7 @@ sexpr_to_domain(virConnectPtr conn, const struct sexpr *root)
     if (name == NULL)
         goto error;
 
-    tmp = sexpr_node(root, "domain/domid");
-    /* New 3.0.4 XenD will not report a domid for inactive domains,
-     * so only error out for old XenD
-     */
-    if (!tmp && priv->xendConfigVersion < XEND_CONFIG_VERSION_3_0_4)
-        goto error;
-
-    if (tmp)
+    if (sexpr_node(root, "domain/domid"))
         id = sexpr_int(root, "domain/domid");
 
     return virDomainDefNewFull(name, uuid, id);
@@ -1853,30 +1840,20 @@ xenDaemonDomainPinVcpu(virConnectPtr conn,
 {
     char buf[VIR_UUID_BUFLEN], mapstr[sizeof(cpumap_t) * 64];
     size_t i, j;
-    xenUnifiedPrivatePtr priv = conn->privateData;
 
     if (maplen > (int)sizeof(cpumap_t)) {
         virReportError(VIR_ERR_INVALID_ARG, __FUNCTION__);
         return -1;
     }
 
-    if (priv->xendConfigVersion < XEND_CONFIG_VERSION_3_0_4) {
-        mapstr[0] = '[';
-        mapstr[1] = 0;
-    } else {
-        mapstr[0] = 0;
-    }
-
+    mapstr[0] = 0;
     /* from bit map, build character string of mapped CPU numbers */
     for (i = 0; i < maplen; i++) for (j = 0; j < 8; j++)
      if (cpumap[i] & (1 << j)) {
         snprintf(buf, sizeof(buf), "%zu,", (8 * i) + j);
         strcat(mapstr, buf);
     }
-    if (priv->xendConfigVersion < XEND_CONFIG_VERSION_3_0_4)
-        mapstr[strlen(mapstr) - 1] = ']';
-    else
-        mapstr[strlen(mapstr) - 1] = 0;
+    mapstr[strlen(mapstr) - 1] = 0;
 
     snprintf(buf, sizeof(buf), "%d", vcpu);
 
@@ -2033,53 +2010,23 @@ xenDaemonLookupByUUID(virConnectPtr conn, const unsigned char *uuid)
     virDomainDefPtr ret;
     char *name = NULL;
     int id = -1;
-    xenUnifiedPrivatePtr priv = conn->privateData;
+    char *domname = NULL;
+    char uuidstr[VIR_UUID_STRING_BUFLEN];
+    struct sexpr *root = NULL;
 
-    /* Old approach for xen <= 3.0.3 */
-    if (priv->xendConfigVersion < XEND_CONFIG_VERSION_3_0_4) {
-        char **names, **tmp;
-        unsigned char ident[VIR_UUID_BUFLEN];
-        names = xenDaemonListDomainsOld(conn);
-        tmp = names;
+    virUUIDFormat(uuid, uuidstr);
+    root = sexpr_get(conn, "/xend/domain/%s?detail=1", uuidstr);
+    if (root == NULL)
+        return NULL;
+    domname = (char*)sexpr_node(root, "domain/name");
+    if (sexpr_node(root, "domain/domid")) /* only active domains have domid */
+        id = sexpr_int(root, "domain/domid");
+    else
+        id = -1;
 
-        if (names == NULL)
-            return NULL;
-        while (*tmp != NULL) {
-            id = xenDaemonDomainLookupByName_ids(conn, *tmp, &ident[0]);
-            if (id >= 0) {
-                if (!memcmp(uuid, ident, VIR_UUID_BUFLEN)) {
-                    name = *tmp;
-                    break;
-                }
-            }
-            tmp++;
-        }
-        tmp = names;
-        while (*tmp) {
-            if (*tmp != name)
-                VIR_FREE(*tmp);
-            tmp++;
-        }
-        VIR_FREE(names);
-    } else { /* New approach for xen >= 3.0.4 */
-        char *domname = NULL;
-        char uuidstr[VIR_UUID_STRING_BUFLEN];
-        struct sexpr *root = NULL;
+    ignore_value(VIR_STRDUP(name, domname));
 
-        virUUIDFormat(uuid, uuidstr);
-        root = sexpr_get(conn, "/xend/domain/%s?detail=1", uuidstr);
-        if (root == NULL)
-            return NULL;
-        domname = (char*)sexpr_node(root, "domain/name");
-        if (sexpr_node(root, "domain/domid")) /* only active domains have domid */
-            id = sexpr_int(root, "domain/domid");
-        else
-            id = -1;
-
-        ignore_value(VIR_STRDUP(name, domname));
-
-        sexpr_free(root);
-    }
+    sexpr_free(root);
 
     if (name == NULL)
         return NULL;
@@ -2194,21 +2141,9 @@ xenDaemonAttachDeviceFlags(virConnectPtr conn,
             return -1;
         }
     } else {
-        /* Only live config can be changed if xendConfigVersion < 3 */
-        if (priv->xendConfigVersion < XEND_CONFIG_VERSION_3_0_4 &&
-            (flags != VIR_DOMAIN_DEVICE_MODIFY_CURRENT &&
-             flags != VIR_DOMAIN_DEVICE_MODIFY_LIVE)) {
-            virReportError(VIR_ERR_OPERATION_INVALID, "%s",
-                           _("Xend version does not support modifying "
-                             "persistent config"));
-            return -1;
-        }
-        /* Xen only supports modifying both live and persistent config if
-         * xendConfigVersion >= 3
-         */
-        if (priv->xendConfigVersion >= XEND_CONFIG_VERSION_3_0_4 &&
-            (flags != (VIR_DOMAIN_DEVICE_MODIFY_LIVE |
-                       VIR_DOMAIN_DEVICE_MODIFY_CONFIG))) {
+        /* Xen only supports modifying both live and persistent config */
+        if (flags != (VIR_DOMAIN_DEVICE_MODIFY_LIVE |
+                      VIR_DOMAIN_DEVICE_MODIFY_CONFIG)) {
             virReportError(VIR_ERR_OPERATION_INVALID, "%s",
                            _("Xend only supports modifying both live and "
                              "persistent config"));
@@ -2342,21 +2277,9 @@ xenDaemonUpdateDeviceFlags(virConnectPtr conn,
             return -1;
         }
     } else {
-        /* Only live config can be changed if xendConfigVersion < 3 */
-        if (priv->xendConfigVersion < XEND_CONFIG_VERSION_3_0_4 &&
-            (flags != VIR_DOMAIN_DEVICE_MODIFY_CURRENT &&
-             flags != VIR_DOMAIN_DEVICE_MODIFY_LIVE)) {
-            virReportError(VIR_ERR_OPERATION_INVALID, "%s",
-                           _("Xend version does not support modifying "
-                             "persistent config"));
-            return -1;
-        }
-        /* Xen only supports modifying both live and persistent config if
-         * xendConfigVersion >= 3
-         */
-        if (priv->xendConfigVersion >= XEND_CONFIG_VERSION_3_0_4 &&
-            (flags != (VIR_DOMAIN_DEVICE_MODIFY_LIVE |
-                       VIR_DOMAIN_DEVICE_MODIFY_CONFIG))) {
+        /* Xen only supports modifying both live and persistent config */
+        if (flags != (VIR_DOMAIN_DEVICE_MODIFY_LIVE |
+                      VIR_DOMAIN_DEVICE_MODIFY_CONFIG)) {
             virReportError(VIR_ERR_OPERATION_INVALID, "%s",
                            _("Xend only supports modifying both live and "
                              "persistent config"));
@@ -2444,21 +2367,9 @@ xenDaemonDetachDeviceFlags(virConnectPtr conn,
             return -1;
         }
     } else {
-        /* Only live config can be changed if xendConfigVersion < 3 */
-        if (priv->xendConfigVersion < XEND_CONFIG_VERSION_3_0_4 &&
-            (flags != VIR_DOMAIN_DEVICE_MODIFY_CURRENT &&
-             flags != VIR_DOMAIN_DEVICE_MODIFY_LIVE)) {
-            virReportError(VIR_ERR_OPERATION_INVALID, "%s",
-                           _("Xend version does not support modifying "
-                             "persistent config"));
-            return -1;
-        }
-        /* Xen only supports modifying both live and persistent config if
-         * xendConfigVersion >= 3
-         */
-        if (priv->xendConfigVersion >= XEND_CONFIG_VERSION_3_0_4 &&
-            (flags != (VIR_DOMAIN_DEVICE_MODIFY_LIVE |
-                       VIR_DOMAIN_DEVICE_MODIFY_CONFIG))) {
+        /* Xen only supports modifying both live and persistent config */
+        if (flags != (VIR_DOMAIN_DEVICE_MODIFY_LIVE |
+                      VIR_DOMAIN_DEVICE_MODIFY_CONFIG)) {
             virReportError(VIR_ERR_OPERATION_INVALID, "%s",
                            _("Xend only supports modifying both live and "
                              "persistent config"));
@@ -2916,18 +2827,10 @@ char *
 xenDaemonGetSchedulerType(virConnectPtr conn,
                           int *nparams)
 {
-    xenUnifiedPrivatePtr priv = conn->privateData;
     struct sexpr *root;
     const char *ret = NULL;
     char *schedulertype = NULL;
 
-    /* Support only xendConfigVersion >=4 */
-    if (priv->xendConfigVersion < XEND_CONFIG_VERSION_3_1_0) {
-        virReportError(VIR_ERR_OPERATION_INVALID,
-                       "%s", _("unsupported in xendConfigVersion < 4"));
-        return NULL;
-    }
-
     root = sexpr_get(conn, "/xend/node/");
     if (root == NULL)
         return NULL;
@@ -2979,19 +2882,11 @@ xenDaemonGetSchedulerParameters(virConnectPtr conn,
                                 virTypedParameterPtr params,
                                 int *nparams)
 {
-    xenUnifiedPrivatePtr priv = conn->privateData;
     struct sexpr *root;
     char *sched_type = NULL;
     int sched_nparam = 0;
     int ret = -1;
 
-    /* Support only xendConfigVersion >=4 */
-    if (priv->xendConfigVersion < XEND_CONFIG_VERSION_3_1_0) {
-        virReportError(VIR_ERR_OPERATION_INVALID,
-                       "%s", _("unsupported in xendConfigVersion < 4"));
-        return -1;
-    }
-
     /* look up the information by domain name */
     root = sexpr_get(conn, "/xend/domain/%s?detail=1", def->name);
     if (root == NULL)
@@ -3083,20 +2978,12 @@ xenDaemonSetSchedulerParameters(virConnectPtr conn,
                                 virTypedParameterPtr params,
                                 int nparams)
 {
-    xenUnifiedPrivatePtr priv = conn->privateData;
     struct sexpr *root;
     char *sched_type = NULL;
     size_t i;
     int sched_nparam = 0;
     int ret = -1;
 
-    /* Support only xendConfigVersion >=4 and active domains */
-    if (priv->xendConfigVersion < XEND_CONFIG_VERSION_3_1_0) {
-        virReportError(VIR_ERR_OPERATION_INVALID,
-                       "%s", _("unsupported in xendConfigVersion < 4"));
-        return -1;
-    }
-
     /* look up the information by domain name */
     root = sexpr_get(conn, "/xend/domain/%s?detail=1", def->name);
     if (root == NULL)
-- 
2.1.4




More information about the libvir-list mailing list