diff options
author | shishir gowda <shishirng@gluster.com> | 2010-08-30 01:36:33 +0000 |
---|---|---|
committer | Vijay Bellur <vijay@dev.gluster.com> | 2010-08-30 02:52:22 -0700 |
commit | baebaab45980e63f85622e70363fe898cdc572ad (patch) | |
tree | be17d070370227989e04f5d595c295006c51dc4e /cli/src | |
parent | 27f39a7c9d10e836295ae4ad1a88d1f0a911079f (diff) |
Volume Add-brick validation for exports
Added checks for export already in use, duplicate exports in command,
and check whether exports are valid.
Also, cleaned up error handling in glusterd_handle_add_bricks
Signed-off-by: shishir gowda <shishirng@gluster.com>
Signed-off-by: Vijay Bellur <vijay@dev.gluster.com>
BUG: 1457 (volume add brick validation for export)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=1457
Diffstat (limited to 'cli/src')
-rw-r--r-- | cli/src/cli-cmd-parser.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/cli/src/cli-cmd-parser.c b/cli/src/cli-cmd-parser.c index 4b8520c676b..79f56e2d4b6 100644 --- a/cli/src/cli-cmd-parser.c +++ b/cli/src/cli-cmd-parser.c @@ -306,6 +306,9 @@ cli_cmd_volume_add_brick_parse (const char **words, int wordcount, int brick_count = 0, brick_index = 0; int brick_list_size = 1; char brick_list[120000] = {0,}; + int j = 0; + char *tmp_list = NULL; + char *tmpptr = NULL; GF_ASSERT (words); GF_ASSERT (options); @@ -374,6 +377,19 @@ cli_cmd_volume_add_brick_parse (const char **words, int wordcount, ret = -1; goto out; } + tmp_list = strdup(brick_list+1); + j = 0; + while(( brick_count != 0) && (j < brick_count)) { + strtok_r (tmp_list, " ", &tmpptr); + if (!(strcmp (tmp_list, words[brick_index]))) { + ret = -1; + cli_out ("Found duplicate" + " exports %s",words[brick_index]); + goto out; + } + tmp_list = tmpptr; + j++; + } strcat (brick_list, words[brick_index]); strcat (brick_list, " "); |