Skip to content

Commit

Permalink
tools: use TextTable for "rados df" plain output
Browse files Browse the repository at this point in the history
Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
  • Loading branch information
xiexingguo committed May 28, 2016
1 parent c6deb14 commit b015066
Showing 1 changed file with 48 additions and 21 deletions.
69 changes: 48 additions & 21 deletions src/tools/rados/rados.cc
Expand Up @@ -27,6 +27,7 @@ using namespace libradosstriper;
#include "common/errno.h"
#include "common/Formatter.h"
#include "common/obj_bencher.h"
#include "common/TextTable.h"
#include "include/stringify.h"
#include "mds/inode_backtrace.h"
#include "auth/Crypto.h"
Expand Down Expand Up @@ -1861,13 +1862,21 @@ static int rados_tool_common(const std::map < std::string, std::string > &opts,
goto out;
}

TextTable tab;

if (!formatter) {
printf("%-15s "
"%12s %12s %12s %12s "
"%12s %12s %12s %12s %12s\n",
"pool name",
"KB", "objects", "clones", "degraded",
"unfound", "rd", "rd KB", "wr", "wr KB");
tab.define_column("POOL_NAME", TextTable::LEFT, TextTable::LEFT);
tab.define_column("USED", TextTable::LEFT, TextTable::LEFT);
tab.define_column("OBJECTS", TextTable::LEFT, TextTable::LEFT);
tab.define_column("CLONES", TextTable::LEFT, TextTable::LEFT);
tab.define_column("COPIES", TextTable::LEFT, TextTable::LEFT);
tab.define_column("MISSING_ON_PRIMARY", TextTable::LEFT, TextTable::LEFT);
tab.define_column("UNFOUND", TextTable::LEFT, TextTable::LEFT);
tab.define_column("DEGRAED", TextTable::LEFT, TextTable::LEFT);
tab.define_column("RD", TextTable::LEFT, TextTable::LEFT);
tab.define_column("RD_OPS", TextTable::LEFT, TextTable::LEFT);
tab.define_column("WR", TextTable::LEFT, TextTable::LEFT);
tab.define_column("WR_OPS", TextTable::LEFT, TextTable::LEFT);
} else {
formatter->open_object_section("stats");
formatter->open_array_section("pools");
Expand All @@ -1878,17 +1887,19 @@ static int rados_tool_common(const std::map < std::string, std::string > &opts,
const char *pool_name = i->first.c_str();
librados::pool_stat_t& s = i->second;
if (!formatter) {
printf("%-15s "
"%12lld %12lld %12lld %12lld "
"%12lld %12lld %12lld %12lld %12lld\n",
pool_name,
(long long)s.num_kb,
(long long)s.num_objects,
(long long)s.num_object_clones,
(long long)s.num_objects_degraded,
(long long)s.num_objects_unfound,
(long long)s.num_rd, (long long)s.num_rd_kb,
(long long)s.num_wr, (long long)s.num_wr_kb);
tab << pool_name
<< prettybyte_t(s.num_bytes)
<< s.num_objects
<< s.num_object_clones
<< s.num_object_copies
<< s.num_objects_missing_on_primary
<< s.num_objects_unfound
<< s.num_objects_degraded
<< prettybyte_t(s.num_rd_kb << 10)
<< s.num_rd
<< prettybyte_t(s.num_wr_kb << 10)
<< s.num_wr
<< TextTable::endrow;
} else {
formatter->open_object_section("pool");
int64_t pool_id = rados.pool_lookup(pool_name);
Expand All @@ -1913,6 +1924,10 @@ static int rados_tool_common(const std::map < std::string, std::string > &opts,
}
}

if (!formatter) {
cout << tab;
}

// total
cluster_stat_t tstats;
ret = rados.cluster_stat(tstats);
Expand All @@ -1921,10 +1936,22 @@ static int rados_tool_common(const std::map < std::string, std::string > &opts,
goto out;
}
if (!formatter) {
printf(" total used %12lld %12lld\n", (long long unsigned)tstats.kb_used,
(long long unsigned)tstats.num_objects);
printf(" total avail %12lld\n", (long long unsigned)tstats.kb_avail);
printf(" total space %12lld\n", (long long unsigned)tstats.kb);
cout << "==============================================================="
<< std::endl;
cout << "Total Cluster Usage"
<< std::endl;
cout << "==============================================================="
<< std::endl;
cout << " total_objects " << tstats.num_objects
<< std::endl;
cout << " total_used " << prettybyte_t(tstats.kb_used << 10)
<< std::endl;
cout << " total_avail " << prettybyte_t(tstats.kb_avail << 10)
<< std::endl;
cout << " total_space " << prettybyte_t(tstats.kb << 10)
<< std::endl;
cout << "==============================================================="
<< std::endl;
} else {
formatter->close_section();
formatter->dump_format("total_objects", "%lld", (long long unsigned)tstats.num_objects);
Expand Down

0 comments on commit b015066

Please sign in to comment.