summaryrefslogtreecommitdiffstats
path: root/xlators/mgmt/glusterd
diff options
context:
space:
mode:
authorAshish Pandey <aspandey@redhat.com>2016-04-11 17:31:58 +0530
committerAtin Mukherjee <amukherj@redhat.com>2016-06-14 06:19:07 -0700
commitd079d6f6ec21955a600feb43e1154cabf18008ff (patch)
tree9a2844adf97678adc32492b631b0dd035c46aca0 /xlators/mgmt/glusterd
parent352758e2f2548a5a66186e8b3179b1e3ee11984c (diff)
performance/decompounder: Add graph for decompounder xlator
This xlator will fall below protocol/server. This is mandatory xlator without any options. Observed that the callback for decompounder translator was not added which was causing volume start to fail. Added cbks for decompounder. Change-Id: I3e16a566376338d9c6d36d6fbc7bf295fda9f3a6 BUG: 1335019 Signed-off-by: Ashish Pandey <aspandey@redhat.com> Reviewed-on: http://review.gluster.org/13968 Smoke: Gluster Build System <jenkins@build.gluster.org> Reviewed-by: Ravishankar N <ravishankar@redhat.com> Reviewed-by: Anuradha Talur <atalur@redhat.com> NetBSD-regression: NetBSD Build System <jenkins@build.gluster.org> CentOS-regression: Gluster Build System <jenkins@build.gluster.org> Reviewed-by: Atin Mukherjee <amukherj@redhat.com>
Diffstat (limited to 'xlators/mgmt/glusterd')
-rw-r--r--xlators/mgmt/glusterd/src/glusterd-volgen.c59
1 files changed, 50 insertions, 9 deletions
diff --git a/xlators/mgmt/glusterd/src/glusterd-volgen.c b/xlators/mgmt/glusterd/src/glusterd-volgen.c
index a56de2dd858..3806127f00c 100644
--- a/xlators/mgmt/glusterd/src/glusterd-volgen.c
+++ b/xlators/mgmt/glusterd/src/glusterd-volgen.c
@@ -1177,6 +1177,7 @@ server_auth_option_handler (volgen_graph_t *graph,
char *aa = NULL;
int ret = 0;
char *key = NULL;
+ char *auth_path = NULL;
if (strcmp (vme->option, "!server-auth") != 0)
return 0;
@@ -1186,16 +1187,21 @@ server_auth_option_handler (volgen_graph_t *graph,
/* from 'auth.allow' -> 'allow', and 'auth.reject' -> 'reject' */
key = strchr (vme->key, '.') + 1;
- for (trav = xl->children; trav; trav = trav->next) {
- ret = gf_asprintf (&aa, "auth.addr.%s.%s", trav->xlator->name,
+ ret = xlator_get_option (xl, "auth-path", &auth_path);
+ if (ret) {
+ gf_msg ("glusterd", GF_LOG_ERROR, 0,
+ GD_MSG_DEFAULT_OPT_INFO,
+ "Failed to get auth-path from server graph");
+ return -1;
+ }
+ ret = gf_asprintf (&aa, "auth.addr.%s.%s", auth_path,
key);
- if (ret != -1) {
- ret = xlator_set_option (xl, aa, vme->value);
- GF_FREE (aa);
- }
- if (ret)
- return -1;
+ if (ret != -1) {
+ ret = xlator_set_option (xl, aa, vme->value);
+ GF_FREE (aa);
}
+ if (ret)
+ return -1;
return 0;
}
@@ -1536,6 +1542,27 @@ out:
}
static int
+brick_graph_add_decompounder (volgen_graph_t *graph, glusterd_volinfo_t *volinfo,
+ dict_t *set_dict, glusterd_brickinfo_t *brickinfo)
+{
+ xlator_t *xl = NULL;
+ xlator_t *this = NULL;
+ glusterd_conf_t *conf = NULL;
+ int ret = -1;
+
+ this = THIS;
+ GF_VALIDATE_OR_GOTO ("glusterd", this, out);
+ conf = this->private;
+ GF_VALIDATE_OR_GOTO (this->name, conf, out);
+
+ xl = volgen_graph_add (graph, "performance/decompounder", volinfo->volname);
+ if (xl)
+ ret = 0;
+out:
+ return ret;
+}
+
+static int
brick_graph_add_arbiter (volgen_graph_t *graph, glusterd_volinfo_t *volinfo,
dict_t *set_dict, glusterd_brickinfo_t *brickinfo)
{
@@ -2280,6 +2307,13 @@ brick_graph_add_server (volgen_graph_t *graph, glusterd_volinfo_t *volinfo,
return -1;
}
+ memset (key, 0, sizeof (key));
+ snprintf (key, sizeof (key), "auth-path");
+
+ ret = xlator_set_option (xl, key, brickinfo->path);
+ if (ret)
+ return -1;
+
if (dict_get_str (volinfo->dict, "auth.ssl-allow", &ssl_user) == 0) {
memset (key, 0, sizeof (key));
snprintf (key, sizeof (key), "auth.login.%s.ssl-allow",
@@ -2402,7 +2436,8 @@ out:
* the topology of the brick graph */
static volgen_brick_xlator_t server_graph_table[] = {
{brick_graph_add_server, NULL},
- {brick_graph_add_io_stats, NULL},
+ {brick_graph_add_decompounder, "decompounder"},
+ {brick_graph_add_io_stats, "NULL"},
{brick_graph_add_cdc, NULL},
{brick_graph_add_quota, "quota"},
{brick_graph_add_index, "index"},
@@ -5624,6 +5659,7 @@ glusterd_snapdsvc_generate_volfile (volgen_graph_t *graph,
char *loglevel = NULL;
char *xlator = NULL;
char *value = NULL;
+ char auth_path[] = "auth-path";
set_dict = dict_copy (volinfo->dict, NULL);
if (!set_dict)
@@ -5691,6 +5727,11 @@ glusterd_snapdsvc_generate_volfile (volgen_graph_t *graph,
if (ret)
return -1;
+ snprintf (key, sizeof (key), "snapd-%s", volinfo->volname);
+ ret = xlator_set_option (xl, auth_path, key);
+ if (ret)
+ return -1;
+
ret = volgen_graph_set_options_generic
(graph, set_dict,
(xlator && loglevel)? (void *)set_dict: volinfo,