]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mon/PGMap: use TextTable for dump_pg_stats_plain()
authorxie xingguo <xie.xingguo@zte.com.cn>
Wed, 11 May 2016 06:20:22 +0000 (14:20 +0800)
committerxie xingguo <xie.xingguo@zte.com.cn>
Wed, 11 May 2016 06:20:22 +0000 (14:20 +0800)
Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
src/mon/PGMap.cc

index 4407814c8cbf6feb32f5faca12defbef4b6302e5..114a1dce3f0f5e74e9e4a495023fa3076855068c 100644 (file)
@@ -780,46 +780,81 @@ void PGMap::dump_pg_stats_plain(ostream& ss,
                                 const ceph::unordered_map<pg_t, pg_stat_t>& pg_stats,
                                 bool brief) const
 {
-  if (brief)
-    ss << "pg_stat\tstate\tup\tup_primary\tacting\tacting_primary" << std::endl;
-  else
-    ss << "pg_stat\tobjects\tmip\tdegr\tmisp\tunf\tbytes\tlog\tdisklog\tstate\t"
-          "state_stamp\tv\treported\tup\tup_primary\tacting\tacting_primary\t"
-          "last_scrub\tscrub_stamp\tlast_deep_scrub\tdeep_scrub_stamp" << std::endl;
+  TextTable tab;
+
+  if (brief){
+    tab.define_column("PG_STAT", TextTable::LEFT, TextTable::RIGHT);
+    tab.define_column("STATE", TextTable::LEFT, TextTable::RIGHT);
+    tab.define_column("UP", TextTable::LEFT, TextTable::RIGHT);
+    tab.define_column("UP_PRIMARY", TextTable::LEFT, TextTable::RIGHT);
+    tab.define_column("ACTING", TextTable::LEFT, TextTable::RIGHT);
+    tab.define_column("ACTING_PRIMARY", TextTable::LEFT, TextTable::RIGHT);
+  }
+  else {
+    tab.define_column("PG_STAT", TextTable::LEFT, TextTable::RIGHT);
+    tab.define_column("OBJECTS", TextTable::LEFT, TextTable::RIGHT);
+    tab.define_column("MISSING_ON_PRIMARY", TextTable::LEFT, TextTable::RIGHT);
+    tab.define_column("DEGRADED", TextTable::LEFT, TextTable::RIGHT);
+    tab.define_column("MISPLACED", TextTable::LEFT, TextTable::RIGHT);
+    tab.define_column("UNFOUND", TextTable::LEFT, TextTable::RIGHT);
+    tab.define_column("BYTES", TextTable::LEFT, TextTable::RIGHT);
+    tab.define_column("LOG", TextTable::LEFT, TextTable::RIGHT);
+    tab.define_column("DISK_LOG", TextTable::LEFT, TextTable::RIGHT);
+    tab.define_column("STATE", TextTable::LEFT, TextTable::RIGHT);
+    tab.define_column("STATE_STAMP", TextTable::LEFT, TextTable::RIGHT);
+    tab.define_column("VERSION", TextTable::LEFT, TextTable::RIGHT);
+    tab.define_column("REPORTED", TextTable::LEFT, TextTable::RIGHT);
+    tab.define_column("UP", TextTable::LEFT, TextTable::RIGHT);
+    tab.define_column("UP_PRIMARY", TextTable::LEFT, TextTable::RIGHT);
+    tab.define_column("ACTING", TextTable::LEFT, TextTable::RIGHT);
+    tab.define_column("ACTING_PRIMARY", TextTable::LEFT, TextTable::RIGHT);
+    tab.define_column("LAST_SCRUB", TextTable::LEFT, TextTable::RIGHT);
+    tab.define_column("SCRUB_STAMP", TextTable::LEFT, TextTable::RIGHT);
+    tab.define_column("LAST_DEEP_SCRUB", TextTable::LEFT, TextTable::RIGHT);
+    tab.define_column("DEEP_SCRUB_STAMP", TextTable::LEFT, TextTable::RIGHT);
+  }
+
   for (ceph::unordered_map<pg_t, pg_stat_t>::const_iterator i = pg_stats.begin();
        i != pg_stats.end(); ++i) {
     const pg_stat_t &st(i->second);
     if (brief) {
-      ss << i->first
-         << "\t" << pg_state_string(st.state)
-         << "\t" << st.up
-         << "\t" << st.up_primary
-         << "\t" << st.acting
-         << "\t" << st.acting_primary
-         << std::endl;
+      tab << i->first
+          << pg_state_string(st.state)
+          << st.up
+          << st.up_primary
+          << st.acting
+          << st.acting_primary
+          << TextTable::endrow;
     } else {
-      ss << i->first
-         << "\t" << st.stats.sum.num_objects
-         << "\t" << st.stats.sum.num_objects_missing_on_primary
-         << "\t" << st.stats.sum.num_objects_degraded
-         << "\t" << st.stats.sum.num_objects_misplaced
-         << "\t" << st.stats.sum.num_objects_unfound
-         << "\t" << st.stats.sum.num_bytes
-         << "\t" << st.log_size
-         << "\t" << st.ondisk_log_size
-         << "\t" << pg_state_string(st.state)
-         << "\t" << st.last_change
-         << "\t" << st.version
-         << "\t" << st.reported_epoch << ":" << st.reported_seq
-         << "\t" << pg_vector_string(st.up)
-         << "\t" << st.up_primary
-         << "\t" << pg_vector_string(st.acting)
-         << "\t" << st.acting_primary
-         << "\t" << st.last_scrub << "\t" << st.last_scrub_stamp
-         << "\t" << st.last_deep_scrub << "\t" << st.last_deep_scrub_stamp
-         << std::endl;
+      ostringstream reported;
+      reported << st.reported_epoch << ":" << st.reported_seq;
+
+      tab << i->first
+          << st.stats.sum.num_objects
+          << st.stats.sum.num_objects_missing_on_primary
+          << st.stats.sum.num_objects_degraded
+          << st.stats.sum.num_objects_misplaced
+          << st.stats.sum.num_objects_unfound
+          << st.stats.sum.num_bytes
+          << st.log_size
+          << st.ondisk_log_size
+          << pg_state_string(st.state)
+          << st.last_change
+          << st.version
+          << reported.str()
+          << pg_vector_string(st.up)
+          << st.up_primary
+          << pg_vector_string(st.acting)
+          << st.acting_primary
+          << st.last_scrub
+          << st.last_scrub_stamp
+          << st.last_deep_scrub
+          << st.last_deep_scrub_stamp
+          << TextTable::endrow;
     }
   }
+
+  ss << tab;
 }
 
 void PGMap::dump(ostream& ss) const