From 7c177bda6ccd1c3e7a7c070eb2ab0dc5e6b32a5c Mon Sep 17 00:00:00 2001 From: darshan n Date: Wed, 4 Mar 2015 19:18:10 +0530 Subject: geo-rep-cli: added a new option "no-verify" to geo-rep create. This patch adds a new option called as "no-verify" to geo-rep create command. With no-verify option, following checks does not take place before session creation: * if ssh port 22 is open in slave * has proper passwordless ssh login setup * slave volume is created and is empty * if slave has enough memory This option is needed by ovirt-engine as the tasks done by push-pem is taken care by ovirt-engine and also the above checks are done. Thus creation of password-less ssh can be avoided when geo-replication is managed through ovirt. Usage: volume geo-replication [] [] { create [[no-verify]|[push-pem]] [force]| start [force]|stop [force]|pause [force]| resume [force]|config|status [detail]| delete } [options...] Change-Id: I975265f27d6434be5409438257d09cd4190c9159 BUG: 1198615 Signed-off-by: darshan n Reviewed-on: http://review.gluster.org/9799 Reviewed-by: Aravinda VK Reviewed-by: Kotresh HR Tested-by: Gluster Build System Reviewed-by: Krishnan Parthasarathi Tested-by: Krishnan Parthasarathi --- cli/src/cli-cmd-parser.c | 29 +++++++++++++++++++++++++---- cli/src/cli-cmd-volume.c | 2 +- 2 files changed, 26 insertions(+), 5 deletions(-) (limited to 'cli') diff --git a/cli/src/cli-cmd-parser.c b/cli/src/cli-cmd-parser.c index 0981f11b7be..b2ef1d77104 100644 --- a/cli/src/cli-cmd-parser.c +++ b/cli/src/cli-cmd-parser.c @@ -2028,7 +2028,7 @@ out: } static int32_t -force_push_pem_parse (const char **words, int wordcount, +force_push_pem_no_verify_parse (const char **words, int wordcount, dict_t *dict, unsigned *cmdi) { int32_t ret = 0; @@ -2037,6 +2037,7 @@ force_push_pem_parse (const char **words, int wordcount, if ((strcmp ((char *)words[wordcount-2], "start")) && (strcmp ((char *)words[wordcount-2], "stop")) && (strcmp ((char *)words[wordcount-2], "create")) && + (strcmp ((char *)words[wordcount-2], "no-verify")) && (strcmp ((char *)words[wordcount-2], "push-pem")) && (strcmp ((char *)words[wordcount-2], "pause")) && (strcmp ((char *)words[wordcount-2], "resume"))) { @@ -2058,6 +2059,16 @@ force_push_pem_parse (const char **words, int wordcount, if (ret) goto out; (*cmdi)++; + } else if (!strcmp ((char *)words[wordcount-2], "no-verify")) { + if (strcmp ((char *)words[wordcount-3], "create")) { + ret = -1; + goto out; + } + ret = dict_set_uint32 (dict, "no_verify", + _gf_true); + if (ret) + goto out; + (*cmdi)++; } } else if (!strcmp ((char *)words[wordcount-1], "push-pem")) { if (strcmp ((char *)words[wordcount-2], "create")) { @@ -2068,6 +2079,16 @@ force_push_pem_parse (const char **words, int wordcount, if (ret) goto out; (*cmdi)++; + } else if (!strcmp ((char *)words[wordcount-1], "no-verify")) { + if ((strcmp ((char *)words[wordcount-2], "create"))) { + ret = -1; + goto out; + } + ret = dict_set_uint32 (dict, "no_verify", + _gf_true); + if (ret) + goto out; + (*cmdi)++; } out: @@ -2088,7 +2109,7 @@ cli_cmd_gsync_set_parse (const char **words, int wordcount, dict_t **options) unsigned glob = 0; unsigned cmdi = 0; char *opwords[] = { "create", "status", "start", "stop", - "config", "force", "delete", + "config", "force", "delete", "no-verify" "push-pem", "detail", "pause", "resume", NULL }; char *w = NULL; @@ -2102,7 +2123,7 @@ cli_cmd_gsync_set_parse (const char **words, int wordcount, dict_t **options) /* new syntax: * - * volume geo-replication $m $s create [push-pem] [force] + * volume geo-replication $m $s create [[no-verify] | [push-pem]] [force] * volume geo-replication [$m [$s]] status [detail] * volume geo-replication [$m] $s config [[!]$opt [$val]] * volume geo-replication $m $s start|stop [force] @@ -2215,7 +2236,7 @@ cli_cmd_gsync_set_parse (const char **words, int wordcount, dict_t **options) } else GF_ASSERT (!"opword mismatch"); - ret = force_push_pem_parse (words, wordcount, dict, &cmdi); + ret = force_push_pem_no_verify_parse (words, wordcount, dict, &cmdi); if (ret) goto out; diff --git a/cli/src/cli-cmd-volume.c b/cli/src/cli-cmd-volume.c index af9cc6a5aa6..a14a772cfb7 100644 --- a/cli/src/cli-cmd-volume.c +++ b/cli/src/cli-cmd-volume.c @@ -2378,7 +2378,7 @@ struct cli_cmd volume_cmds[] = { "reset all the reconfigured options"}, #if (SYNCDAEMON_COMPILE) - {"volume "GEOREP" [] [] {create [push-pem] [force]" + {"volume "GEOREP" [] [] {create [[no-verify]|[push-pem]] [force]" "|start [force]|stop [force]|pause [force]|resume [force]|config|status [detail]|delete} [options...]", cli_cmd_volume_gsync_set_cbk, "Geo-sync operations", -- cgit