diff options
| author | darshan n <dnarayan@redhat.com> | 2015-03-04 19:18:10 +0530 | 
|---|---|---|
| committer | Krishnan Parthasarathi <kparthas@redhat.com> | 2015-03-12 23:34:24 -0700 | 
| commit | 7c177bda6ccd1c3e7a7c070eb2ab0dc5e6b32a5c (patch) | |
| tree | 259d1ce7ad56aa8a249740ea27e543f717bf8c20 /cli/src/cli-cmd-parser.c | |
| parent | 65c68fb75640be2c5744782081250dda886a7b56 (diff) | |
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 [<VOLNAME>] [<SLAVE-URL>]
       { 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 <dnarayan@redhat.com>
Reviewed-on: http://review.gluster.org/9799
Reviewed-by: Aravinda VK <avishwan@redhat.com>
Reviewed-by: Kotresh HR <khiremat@redhat.com>
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Krishnan Parthasarathi <kparthas@redhat.com>
Tested-by: Krishnan Parthasarathi <kparthas@redhat.com>
Diffstat (limited to 'cli/src/cli-cmd-parser.c')
| -rw-r--r-- | cli/src/cli-cmd-parser.c | 29 | 
1 files changed, 25 insertions, 4 deletions
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;  | 
