On Mon, Jul 15, 2013 at 09:04:29AM -0400, John Ferlan wrote:
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;
ACK
Daniel
--
|:
http://berrange.com -o-
http://www.flickr.com/photos/dberrange/ :|
|:
http://libvirt.org -o-
http://virt-manager.org :|
|:
http://autobuild.org -o-
http://search.cpan.org/~danberr/ :|
|:
http://entangle-photo.org -o-
http://live.gnome.org/gtk-vnc :|