[libvirt] [PATCH v3 1/7] storage_conf: Adjust virStoragePoolAuthType enum

John Ferlan jferlan at redhat.com
Mon Jul 15 13:04:29 UTC 2013


Generate and use the virStoragePoolAuthTypeType{To|From}String helpers
---
 src/conf/storage_conf.c | 19 +++++++++++--------
 src/conf/storage_conf.h |  3 +++
 2 files changed, 14 insertions(+), 8 deletions(-)

diff --git a/src/conf/storage_conf.c b/src/conf/storage_conf.c
index 524a4d6..9bcfced 100644
--- a/src/conf/storage_conf.c
+++ b/src/conf/storage_conf.c
@@ -95,6 +95,10 @@ VIR_ENUM_IMPL(virStoragePoolSourceAdapterType,
               VIR_STORAGE_POOL_SOURCE_ADAPTER_TYPE_LAST,
               "default", "scsi_host", "fc_host")
 
+VIR_ENUM_IMPL(virStoragePoolAuthType,
+              VIR_STORAGE_POOL_AUTH_LAST,
+              "none", "chap", "ceph")
+
 typedef const char *(*virStorageVolFormatToString)(int format);
 typedef int (*virStorageVolFormatFromString)(const char *format);
 typedef const char *(*virStorageVolFeatureToString)(int feature);
@@ -676,11 +680,8 @@ virStoragePoolDefParseSource(xmlXPathContextPtr ctxt,
     if (authType == NULL) {
         source->authType = VIR_STORAGE_POOL_AUTH_NONE;
     } else {
-        if (STREQ(authType, "chap")) {
-            source->authType = VIR_STORAGE_POOL_AUTH_CHAP;
-        } else if (STREQ(authType, "ceph")) {
-            source->authType = VIR_STORAGE_POOL_AUTH_CEPHX;
-        } else {
+        if ((source->authType =
+             virStoragePoolAuthTypeTypeFromString(authType)) < 0) {
             virReportError(VIR_ERR_XML_ERROR,
                            _("unknown auth type '%s'"),
                            authType);
@@ -1117,13 +1118,15 @@ virStoragePoolSourceFormat(virBufferPtr buf,
     }
 
     if (src->authType == VIR_STORAGE_POOL_AUTH_CHAP)
-        virBufferAsprintf(buf,"    <auth type='chap' login='%s' passwd='%s'/>\n",
+        virBufferAsprintf(buf,"    <auth type='%s' login='%s' passwd='%s'/>\n",
+                          virStoragePoolAuthTypeTypeToString(src->authType),
                           src->auth.chap.login,
                           src->auth.chap.passwd);
 
     if (src->authType == VIR_STORAGE_POOL_AUTH_CEPHX) {
-        virBufferAsprintf(buf,"    <auth username='%s' type='ceph'>\n",
-                          src->auth.cephx.username);
+        virBufferAsprintf(buf,"    <auth username='%s' type='%s'>\n",
+                          src->auth.cephx.username,
+                          virStoragePoolAuthTypeTypeToString(src->authType));
 
         virBufferAddLit(buf,"      <secret");
         if (src->auth.cephx.secret.uuidUsable) {
diff --git a/src/conf/storage_conf.h b/src/conf/storage_conf.h
index c183427..98339ef 100644
--- a/src/conf/storage_conf.h
+++ b/src/conf/storage_conf.h
@@ -146,7 +146,10 @@ enum virStoragePoolAuthType {
     VIR_STORAGE_POOL_AUTH_NONE,
     VIR_STORAGE_POOL_AUTH_CHAP,
     VIR_STORAGE_POOL_AUTH_CEPHX,
+
+    VIR_STORAGE_POOL_AUTH_LAST,
 };
+VIR_ENUM_DECL(virStoragePoolAuthType)
 
 typedef struct _virStoragePoolAuthChap virStoragePoolAuthChap;
 typedef virStoragePoolAuthChap *virStoragePoolAuthChapPtr;
-- 
1.8.1.4




More information about the libvir-list mailing list