From 81b6fa2b813d6913dd6329ef6a463669d282ebb6 Mon Sep 17 00:00:00 2001 From: shishir gowda Date: Mon, 11 Oct 2010 03:49:45 +0000 Subject: Add log-level validation for volume set command Signed-off-by: shishir gowda Signed-off-by: Vijay Bellur BUG: 1886 (log-level mess) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=1886 --- xlators/mgmt/glusterd/src/glusterd-volgen.c | 32 ++++++++++++++++++++++++++++- xlators/mgmt/glusterd/src/glusterd-volgen.h | 1 + 2 files changed, 32 insertions(+), 1 deletion(-) (limited to 'xlators/mgmt/glusterd/src') diff --git a/xlators/mgmt/glusterd/src/glusterd-volgen.c b/xlators/mgmt/glusterd/src/glusterd-volgen.c index df4818df8..987449942 100644 --- a/xlators/mgmt/glusterd/src/glusterd-volgen.c +++ b/xlators/mgmt/glusterd/src/glusterd-volgen.c @@ -738,6 +738,8 @@ loglevel_option_handler (glusterfs_graph_t *graph, !strstr (vme->key, role)) return 0; + if (glusterd_check_log_level(vme->value) == -1) + return -1; memcpy (&vme2, vme, sizeof (vme2)); vme2.option = "log-level"; @@ -1387,4 +1389,32 @@ glusterd_validate_reconfopts (glusterd_volinfo_t *volinfo, dict_t *val_dict, out: gf_log ("", GF_LOG_DEBUG, "Returning %d", ret); return ret; -} \ No newline at end of file +} + +int +glusterd_check_log_level (const char *value) +{ + int log_level = -1; + + if (!strcasecmp (value, "CRITICAL")) { + log_level = GF_LOG_CRITICAL; + } else if (!strcasecmp (value, "ERROR")) { + log_level = GF_LOG_ERROR; + } else if (!strcasecmp (value, "WARNING")) { + log_level = GF_LOG_WARNING; + } else if (!strcasecmp (value, "INFO")) { + log_level = GF_LOG_INFO; + } else if (!strcasecmp (value, "DEBUG")) { + log_level = GF_LOG_DEBUG; + } else if (!strcasecmp (value, "TRACE")) { + log_level = GF_LOG_TRACE; + } else if (!strcasecmp (value, "NONE")) { + log_level = GF_LOG_NONE; + } + + if (log_level == -1) + gf_log ("", GF_LOG_ERROR, "Invalid log-level. possible values " + "are DEBUG|WARNING|ERROR|CRITICAL|NONE|TRACE"); + + return log_level; +} diff --git a/xlators/mgmt/glusterd/src/glusterd-volgen.h b/xlators/mgmt/glusterd/src/glusterd-volgen.h index 16bf1c73e..95f61383b 100644 --- a/xlators/mgmt/glusterd/src/glusterd-volgen.h +++ b/xlators/mgmt/glusterd/src/glusterd-volgen.h @@ -41,4 +41,5 @@ int glusterd_delete_volfile (glusterd_volinfo_t *volinfo, int glusterd_volinfo_get (glusterd_volinfo_t *volinfo, char *key, char **value); +int glusterd_check_log_level (const char *log_level); #endif -- cgit