diff options
| author | Sakshi <sabansal@redhat.com> | 2015-05-28 11:23:55 +0530 | 
|---|---|---|
| committer | Raghavendra G <rgowdapp@redhat.com> | 2016-07-04 21:29:08 -0700 | 
| commit | 755b8c7e108a66211b876cf87a6f7fa244360b94 (patch) | |
| tree | 57677524a9d40cfc34e516c29ae70d81d200eca5 | |
| parent | 31de95d5f3b71b4bfd0042e2612fc2ee15f9834c (diff) | |
cli: different status output for rebalance fix-layout
Backport of http://review.gluster.org/10956
> Change-Id: I6ded40a1b1cff5c72e5b61fd353db3d8c688efd8
> BUG: 1225718
> Signed-off-by: Sakshi <sabansal@redhat.com>
> Reviewed-on: http://review.gluster.org/10956
> Smoke: Gluster Build System <jenkins@build.gluster.org>
> NetBSD-regression: NetBSD Build System <jenkins@build.gluster.org>
> CentOS-regression: Gluster Build System <jenkins@build.gluster.org>
> Reviewed-by: Raghavendra G <rgowdapp@redhat.com>
Change-Id: I6ded40a1b1cff5c72e5b61fd353db3d8c688efd8
BUG: 1352393
Signed-off-by: Sakshi <sabansal@redhat.com>
Reviewed-on: http://review.gluster.org/14851
Smoke: Gluster Build System <jenkins@build.gluster.org>
NetBSD-regression: NetBSD Build System <jenkins@build.gluster.org>
CentOS-regression: Gluster Build System <jenkins@build.gluster.org>
Reviewed-by: Raghavendra G <rgowdapp@redhat.com>
| -rw-r--r-- | cli/src/cli-rpc-ops.c | 56 | ||||
| -rwxr-xr-x | tests/bugs/distribute/bug-853258.t | 4 | ||||
| -rw-r--r-- | tests/bugs/distribute/bug-860663.t | 2 | ||||
| -rw-r--r-- | tests/bugs/glusterd/bug-1004744.t | 2 | ||||
| -rw-r--r-- | tests/volume.rc | 8 | 
5 files changed, 51 insertions, 21 deletions
diff --git a/cli/src/cli-rpc-ops.c b/cli/src/cli-rpc-ops.c index b768b0ef668..23ec4fbf898 100644 --- a/cli/src/cli-rpc-ops.c +++ b/cli/src/cli-rpc-ops.c @@ -1559,13 +1559,32 @@ gf_cli_print_rebalance_status (dict_t *dict, enum gf_task_types task_type,                  goto out;          } +        memset (key, 0, 256); +        snprintf (key, 256, "status-1"); + +        ret = dict_get_int32 (dict, key, (int32_t *)&status_rcd); +        if (ret) { +                gf_log ("cli", GF_LOG_TRACE, "count %d %d", count, 1); +                gf_log ("cli", GF_LOG_TRACE, "failed to get status"); +                goto out; +        } + +        if (status_rcd >= GF_DEFRAG_STATUS_LAYOUT_FIX_STARTED) { +                cli_out ("%10s %40s %18s", "Node", "status", +                         "run time in h:m:s"); +                cli_out ("%10s %40s %18s", "---------", "-----------", +                         "------------"); +        } else { +                cli_out ("%40s %16s %13s %13s %13s %13s %20s %18s", +                         "Node", "Rebalanced-files", "size", "scanned", +                         "failures", "skipped", "status", "run time in" +                         " h:m:s"); +                cli_out ("%40s %16s %13s %13s %13s %13s %20s %18s", +                         "---------", "-----------", "-----------", +                         "-----------", "-----------", "-----------", +                         "------------", "--------------"); +        } -        cli_out ("%40s %16s %13s %13s %13s %13s %20s %18s", "Node", -                 "Rebalanced-files", "size", "scanned", "failures", "skipped", -                 "status", "run time in h:m:s"); -        cli_out ("%40s %16s %13s %13s %13s %13s %20s %18s", "---------", -                 "-----------", "-----------", "-----------", "-----------", -                 "-----------", "------------", "--------------");          for (i = 1; i <= count; i++) {                  /* Reset the variables to prevent carryover of values */                  node_name = NULL; @@ -1662,16 +1681,23 @@ gf_cli_print_rebalance_status (dict_t *dict, enum gf_task_types task_type,                  min = ((int) elapsed % 3600) / 60;                  sec = ((int) elapsed % 3600) % 60; -                if (size_str) { -                        cli_out ("%40s %16"PRIu64 " %13s" " %13"PRIu64 " %13" -                                 PRIu64" %13"PRIu64 " %20s %8d:%d:%d", -                                 node_name, files, size_str, lookup, failures, -                                 skipped, status_str, hrs, min, sec); +                if (status_rcd >= GF_DEFRAG_STATUS_LAYOUT_FIX_STARTED) { +                        cli_out ("%10s %40s %8d:%d:%d", node_name, status_str, +                                 hrs, min, sec);                  } else { -                        cli_out ("%40s %16"PRIu64 " %13"PRIu64 " %13"PRIu64 -                                 " %13"PRIu64" %13"PRIu64 " %20s %8d:%d:%d", -                                 node_name, files, size, lookup, failures, -                                 skipped, status_str, hrs, min, sec); +                        if (size_str) { +                                cli_out ("%40s %16"PRIu64 " %13s" " %13"PRIu64 +                                          " %13" PRIu64" %13"PRIu64 " %20s " +                                         "%8d:%d:%d", node_name, files, +                                         size_str, lookup, failures, skipped, +                                         status_str, hrs, min, sec); +                        } else { +                                cli_out ("%40s %16"PRIu64 " %13"PRIu64 " %13" +                                         PRIu64 " %13"PRIu64" %13"PRIu64 " %20s" +                                         " %8d:%d:%d", node_name, files, size, +                                         lookup, failures, skipped, status_str, +                                         hrs, min, sec); +                        }                  }                  GF_FREE(size_str);          } diff --git a/tests/bugs/distribute/bug-853258.t b/tests/bugs/distribute/bug-853258.t index b2d7f2b771a..2f0e1b8b9b7 100755 --- a/tests/bugs/distribute/bug-853258.t +++ b/tests/bugs/distribute/bug-853258.t @@ -20,7 +20,7 @@ EXPECT_WITHIN $PROCESS_UP_TIMEOUT 'Started' volinfo_field $V0 'Status';  # Force assignment of initial ranges.  TEST $CLI volume rebalance $V0 fix-layout start -EXPECT_WITHIN $REBALANCE_TIMEOUT "fix-layout completed" rebalance_status_field $V0 +EXPECT_WITHIN $REBALANCE_TIMEOUT "fix-layout completed" fix-layout_status_field $V0  # Get the original values.  xattrs="" @@ -32,7 +32,7 @@ done  TEST $CLI volume add-brick $V0 $H0:$B0/${V0}3  # Force assignment of initial ranges.  TEST $CLI volume rebalance $V0 fix-layout start -EXPECT_WITHIN $REBALANCE_TIMEOUT "fix-layout completed" rebalance_status_field $V0 +EXPECT_WITHIN $REBALANCE_TIMEOUT "fix-layout completed" fix-layout_status_field $V0  for i in $(seq 0 3); do  	xattrs="$xattrs $(dht_get_layout $B0/${V0}$i)" diff --git a/tests/bugs/distribute/bug-860663.t b/tests/bugs/distribute/bug-860663.t index a4946718398..12b3e21a9be 100644 --- a/tests/bugs/distribute/bug-860663.t +++ b/tests/bugs/distribute/bug-860663.t @@ -44,7 +44,7 @@ EXPECT_WITHIN $PROCESS_UP_TIMEOUT "1" brick_up_status $V0 $H0 $B0/${V0}1  TEST $CLI volume rebalance $V0 fix-layout start -EXPECT_WITHIN $REBALANCE_TIMEOUT "fix-layout completed" rebalance_status_field $V0; +EXPECT_WITHIN $REBALANCE_TIMEOUT "fix-layout completed" fix-layout_status_field $V0;  # Unmount and remount to make sure we're doing fresh lookups.  TEST umount $M0 diff --git a/tests/bugs/glusterd/bug-1004744.t b/tests/bugs/glusterd/bug-1004744.t index b48ed97fb52..66a827daa74 100644 --- a/tests/bugs/glusterd/bug-1004744.t +++ b/tests/bugs/glusterd/bug-1004744.t @@ -36,7 +36,7 @@ TEST $CLI volume add-brick $V0 $H0:$B0/${V0}{3,4};  #perform rebalance fix-layout  TEST $CLI volume rebalance $V0 fix-layout start -EXPECT_WITHIN $REBALANCE_TIMEOUT "fix-layout completed" rebalance_status_field $V0; +EXPECT_WITHIN $REBALANCE_TIMEOUT "fix-layout completed" fix-layout_status_field $V0;  EXPECT_WITHIN $UMOUNT_TIMEOUT "Y" force_umount $M0  TEST $CLI volume stop $V0 diff --git a/tests/volume.rc b/tests/volume.rc index f3dbaf4a7f2..6c72dbd05b9 100644 --- a/tests/volume.rc +++ b/tests/volume.rc @@ -41,12 +41,16 @@ function volume_option()  }  function rebalance_status_field { -        #The rebalance status can be upto 3 words, (ex:'fix-layout in progress'), hence the awk-print $7 thru $9. +        $CLI volume rebalance $1 status | awk '{print $7}' | sed -n 3p +} + +function fix-layout_status_field { +        #The fix-layout status can be upto 3 words, (ex:'fix-layout in progress'), hence the awk-print $2 thru $4.          #But if the status is less than 3 words, it also prints the next field i.e the run_time_in_secs.(ex:'completed 3.00').          #So we trim the numbers out with  `tr`. Finally remove the trailing white spaces with sed. What we get is one of the          #strings in the 'cli_vol_task_status_str' char array of cli-rpc-ops.c -        $CLI volume rebalance $1 status | awk '{print $7,$8,$9}' |sed -n 3p |tr -d '[^0-9+\.]'|sed 's/ *$//g' +        $CLI volume rebalance $1 status | awk '{print $2,$3,$4}' |sed -n 3p |tr -d '[^0-9+\.]'|sed 's/ *$//g'  }  function detach_tier_status_field {  | 
