From baebaab45980e63f85622e70363fe898cdc572ad Mon Sep 17 00:00:00 2001 From: shishir gowda Date: Mon, 30 Aug 2010 01:36:33 +0000 Subject: 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 Signed-off-by: Vijay Bellur BUG: 1457 (volume add brick validation for export) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=1457 --- cli/src/cli-cmd-parser.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'cli') 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, " "); -- cgit