diff options
author | Csaba Henk <csaba@gluster.com> | 2010-09-15 08:11:20 +0000 |
---|---|---|
committer | Vijay Bellur <vijay@dev.gluster.com> | 2010-09-16 23:07:52 -0700 |
commit | afa6e19f6a9e1dde0f00d72c21c760a5dca341b0 (patch) | |
tree | c71fc5945a3ae8774dae9fae63ca738567710629 /cli/src/cli-cmd-system.c | |
parent | e690af8375f55bf8d8e56a0334cc9bd88867326e (diff) |
cli: added system:: portmap brick2port
Signed-off-by: Csaba Henk <csaba@gluster.com>
Signed-off-by: Vijay Bellur <vijay@dev.gluster.com>
BUG: 1570 (geosync related changes)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=1570
Diffstat (limited to 'cli/src/cli-cmd-system.c')
-rw-r--r-- | cli/src/cli-cmd-system.c | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/cli/src/cli-cmd-system.c b/cli/src/cli-cmd-system.c index 86e2c167b..08fc44a37 100644 --- a/cli/src/cli-cmd-system.c +++ b/cli/src/cli-cmd-system.c @@ -34,6 +34,7 @@ #include "protocol-common.h" #define GETSPEC_SYNTAX "system:: getspec <VOLID>" +#define BRICKTOPORT_SYNTAX "system:: portmap brick2port <BRICK>" extern struct rpc_clnt *global_rpc; @@ -85,11 +86,58 @@ out: return ret; } +int +cli_cmd_pmap_b2p_cbk (struct cli_state *state, struct cli_cmd_word *word, + const char **words, int wordcount) +{ + int ret = -1; + rpc_clnt_procedure_t *proc = NULL; + call_frame_t *frame = NULL; + dict_t *dict = NULL; + + frame = create_frame (THIS, THIS->ctx->pool); + if (!frame) + goto out; + + dict = dict_new (); + if (!dict) + goto out; + + if (wordcount != 4) { + cli_out ("Usage: " BRICKTOPORT_SYNTAX); + goto out; + } + + ret = dict_set_str (dict, "brick", (char *)words[3]); + if (ret) + goto out; + + proc = &cli_rpc_prog->proctable[GF1_CLI_PMAP_PORTBYBRICK]; + if (proc->fn) { + ret = proc->fn (frame, THIS, dict); + } + +out: + if (!proc && ret) { + if (dict) + dict_destroy (dict); + if (wordcount > 1) + cli_out ("Fetching spec for volume %s failed", + (char *)words[3]); + } + + return ret; +} + struct cli_cmd cli_system_cmds[] = { { GETSPEC_SYNTAX, cli_cmd_getspec_cbk, "fetch spec for volume <VOLID>"}, + { BRICKTOPORT_SYNTAX, + cli_cmd_pmap_b2p_cbk, + "query which port <BRICK> listens on"}, + { "system:: help", cli_cmd_system_help_cbk, "display help for system commands"}, |