From afb6997fe74af257c7e687e33fe88a292f7a4a00 Mon Sep 17 00:00:00 2001 From: Csaba Henk Date: Fri, 8 Oct 2010 09:52:52 +0000 Subject: io-stats, volgen: make the distinction between client and brick loglevel in volgen's scope Signed-off-by: Csaba Henk Signed-off-by: Vijay Bellur BUG: 1789 (add log-level options to volume set) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=1789 --- xlators/mgmt/glusterd/src/glusterd-volgen.c | 41 ++++++++++++++++++++++++++--- 1 file changed, 37 insertions(+), 4 deletions(-) (limited to 'xlators/mgmt') diff --git a/xlators/mgmt/glusterd/src/glusterd-volgen.c b/xlators/mgmt/glusterd/src/glusterd-volgen.c index cfd7a7396a9..93e276dc9fb 100644 --- a/xlators/mgmt/glusterd/src/glusterd-volgen.c +++ b/xlators/mgmt/glusterd/src/glusterd-volgen.c @@ -101,8 +101,8 @@ static struct volopt_map_entry glusterd_volopt_map[] = { {"diagnostics.latency-measurement", "debug/io-stats", }, {"diagnostics.dump-fd-stats", "debug/io-stats", }, - {"diagnostics.brick-log-level", "debug/io-stats", "log-level",}, - {"diagnostics.client-log-level", "debug/io-stats", }, + {"diagnostics.brick-log-level", "debug/io-stats", "!log-level",}, + {"diagnostics.client-log-level", "debug/io-stats", "!log-level",}, {"performance.cache-max-file-size", "performance/io-cache", "max-file-size",}, {"performance.cache-min-file-size", "performance/io-cache", "min-file-size",}, @@ -726,6 +726,36 @@ server_auth_option_handler (glusterfs_graph_t *graph, return 0; } +static int +loglevel_option_handler (glusterfs_graph_t *graph, + struct volopt_map_entry *vme, void *param) +{ + char *role = param; + struct volopt_map_entry vme2 = {0,}; + + if (strcmp (vme->option, "!log-level") != 0 || + !strstr (vme->key, role)) + return 0; + + memcpy (&vme2, vme, sizeof (vme2)); + vme2.option = "log-level"; + + return basic_option_handler (graph, &vme2, NULL); +} + +static int +server_spec_option_handler (glusterfs_graph_t *graph, + struct volopt_map_entry *vme, void *param) +{ + int ret = 0; + + ret = server_auth_option_handler (graph, vme, NULL); + if (!ret) + ret = loglevel_option_handler (graph, vme, "brick"); + + return ret; +} + static int server_graph_builder (glusterfs_graph_t *graph, glusterd_volinfo_t *volinfo, dict_t *set_dict, void *param) @@ -809,7 +839,7 @@ server_graph_builder (glusterfs_graph_t *graph, glusterd_volinfo_t *volinfo, return -1; ret = volgen_graph_set_options_generic (graph, set_dict, NULL, - &server_auth_option_handler); + &server_spec_option_handler); return ret; } @@ -999,7 +1029,10 @@ client_graph_builder (glusterfs_graph_t *graph, glusterd_volinfo_t *volinfo, if (!xl) return -1; - return 0; + ret = volgen_graph_set_options_generic (graph, set_dict, "client", + &loglevel_option_handler); + + return ret; } -- cgit