diff options
author | Amar Tumballi <amar@gluster.com> | 2010-10-04 06:32:47 +0000 |
---|---|---|
committer | Vijay Bellur <vijay@dev.gluster.com> | 2010-10-04 07:05:33 -0700 |
commit | 408c164d0adf67d0ab636d3f617fc48c896d33a6 (patch) | |
tree | c624ccfa5010b003956fb4d6a4cce81513dbe356 | |
parent | e2438fdde0458b70b0cd201b4950b676188d0824 (diff) |
cli: add more type for volumes
Added 'Distributed-Replicate', 'Distributed-Stripe' as types
Signed-off-by: Amar Tumballi <amar@gluster.com>
Signed-off-by: Vijay Bellur <vijay@dev.gluster.com>
BUG: 971 (dynamic volume management)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=971
-rw-r--r-- | cli/src/cli3_1-cops.c | 31 | ||||
-rw-r--r-- | xlators/mgmt/glusterd/src/glusterd-handler.c | 5 |
2 files changed, 33 insertions, 3 deletions
diff --git a/cli/src/cli3_1-cops.c b/cli/src/cli3_1-cops.c index 0eb1ef77a33..2933edffb01 100644 --- a/cli/src/cli3_1-cops.c +++ b/cli/src/cli3_1-cops.c @@ -42,7 +42,9 @@ extern int cli_op_ret; char *cli_volume_type[] = {"Distribute", "Stripe", - "Replicate" + "Replicate", + "Distributed-Stripe", + "Distributed-Replicate", }; @@ -330,6 +332,8 @@ gf_cli3_1_get_volume_cbk (struct rpc_req *req, struct iovec *iov, int32_t status = 0; int32_t type = 0; int32_t brick_count = 0; + int32_t sub_count = 0; + int32_t vol_type = 0; char *brick = NULL; int32_t j = 1; cli_local_t *local = NULL; @@ -420,15 +424,36 @@ gf_cli3_1_get_volume_cbk (struct rpc_req *req, struct iovec *iov, if (ret) goto out; + snprintf (key, 256, "volume%d.sub_count", i); + ret = dict_get_int32 (dict, key, &sub_count); + if (ret) + goto out; + snprintf (key, 256, "volume%d.transport", i); ret = dict_get_int32 (dict, key, &transport); if (ret) goto out; + vol_type = type; + + // Stripe + if ((type == 1) && (sub_count < brick_count)) + vol_type = 3; + + // Replicate + if ((type == 2) && (sub_count < brick_count)) + vol_type = 4; + cli_out ("Volume Name: %s", volname); - cli_out ("Type: %s", cli_volume_type[type]); + cli_out ("Type: %s", cli_volume_type[vol_type]); cli_out ("Status: %s", cli_volume_status[status], brick_count); - cli_out ("Number of Bricks: %d", brick_count); + if (sub_count > 1) + cli_out ("Number of Bricks: %d x %d = %d", + brick_count / sub_count, sub_count, + brick_count); + else + cli_out ("Number of Bricks: %d", brick_count); + cli_out ("Transport-type: %s", ((transport == 0)? "tcp" : "rdma")); j = 1; diff --git a/xlators/mgmt/glusterd/src/glusterd-handler.c b/xlators/mgmt/glusterd/src/glusterd-handler.c index 5f3e50ce770..c21cd906cd2 100644 --- a/xlators/mgmt/glusterd/src/glusterd-handler.c +++ b/xlators/mgmt/glusterd/src/glusterd-handler.c @@ -320,6 +320,11 @@ glusterd_add_volume_detail_to_dict (glusterd_volinfo_t *volinfo, if (ret) goto out; + snprintf (key, 256, "volume%d.sub_count", count); + ret = dict_set_int32 (volumes, key, volinfo->sub_count); + if (ret) + goto out; + snprintf (key, 256, "volume%d.transport", count); ret = dict_set_int32 (volumes, key, volinfo->transport_type); if (ret) |