summaryrefslogtreecommitdiffstats
path: root/cli/src/cli-cmd-parser.c
diff options
context:
space:
mode:
authorshishir gowda <shishirng@gluster.com>2010-08-30 01:36:33 +0000
committerVijay Bellur <vijay@dev.gluster.com>2010-08-30 02:52:22 -0700
commitbaebaab45980e63f85622e70363fe898cdc572ad (patch)
treebe17d070370227989e04f5d595c295006c51dc4e /cli/src/cli-cmd-parser.c
parent27f39a7c9d10e836295ae4ad1a88d1f0a911079f (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/cli-cmd-parser.c')
-rw-r--r--cli/src/cli-cmd-parser.c16
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, " ");