From 3b6bbc416d1a6c5e5ae72423b2fd8f98ea5a165d Mon Sep 17 00:00:00 2001 From: xie xingguo Date: Fri, 21 Jul 2017 13:47:03 +0800 Subject: [PATCH] osd/OSDMap: show "destroyed" status in tree view It would be a pain if we destroyed an osd and there is no obvious way to find it out. Signed-off-by: xie xingguo --- src/osd/OSDMap.cc | 22 +++++++++++++++++++--- src/test/cli/osdmaptool/tree.t | 14 +++++++------- 2 files changed, 26 insertions(+), 10 deletions(-) diff --git a/src/osd/OSDMap.cc b/src/osd/OSDMap.cc index 525e3c37a27..d3cc2774a03 100644 --- a/src/osd/OSDMap.cc +++ b/src/osd/OSDMap.cc @@ -3074,7 +3074,7 @@ public: tbl->define_column("CLASS", TextTable::LEFT, TextTable::RIGHT); tbl->define_column("WEIGHT", TextTable::LEFT, TextTable::RIGHT); tbl->define_column("TYPE NAME", TextTable::LEFT, TextTable::LEFT); - tbl->define_column("UP/DOWN", TextTable::LEFT, TextTable::RIGHT); + tbl->define_column("STATUS", TextTable::LEFT, TextTable::RIGHT); tbl->define_column("REWEIGHT", TextTable::LEFT, TextTable::RIGHT); tbl->define_column("PRI-AFF", TextTable::LEFT, TextTable::RIGHT); @@ -3112,7 +3112,15 @@ protected: *tbl << "DNE" << 0; } else { - *tbl << (osdmap->is_up(qi.id) ? "up" : "down") + string s; + if (osdmap->is_up(qi.id)) { + s = "up"; + } else if (osdmap->is_destroyed(qi.id)) { + s = "destroyed"; + } else { + s = "down"; + } + *tbl << s << weightf_t(osdmap->get_weightf(qi.id)) << weightf_t(osdmap->get_primary_affinityf(qi.id)); } @@ -3164,8 +3172,16 @@ protected: Parent::dump_item_fields(qi, f); if (!qi.is_bucket()) { + string s; + if (osdmap->is_up(qi.id)) { + s = "up"; + } else if (osdmap->is_destroyed(qi.id)) { + s = "destroyed"; + } else { + s = "down"; + } f->dump_unsigned("exists", (int)osdmap->exists(qi.id)); - f->dump_string("status", osdmap->is_up(qi.id) ? "up" : "down"); + f->dump_string("status", s); f->dump_float("reweight", osdmap->get_weightf(qi.id)); f->dump_float("primary_affinity", osdmap->get_primary_affinityf(qi.id)); } diff --git a/src/test/cli/osdmaptool/tree.t b/src/test/cli/osdmaptool/tree.t index d2ba473a72e..b0f06d7f6c2 100644 --- a/src/test/cli/osdmaptool/tree.t +++ b/src/test/cli/osdmaptool/tree.t @@ -4,13 +4,13 @@ $ osdmaptool --tree=plain om osdmaptool: osdmap file 'om' - ID CLASS WEIGHT TYPE NAME UP/DOWN REWEIGHT PRI-AFF - -1 3.00000 root default - -3 3.00000 rack localrack - -2 3.00000 host localhost - 0 1.00000 osd.0 DNE 0 - 1 1.00000 osd.1 DNE 0 - 2 1.00000 osd.2 DNE 0 + ID CLASS WEIGHT TYPE NAME STATUS REWEIGHT PRI-AFF + -1 3.00000 root default + -3 3.00000 rack localrack + -2 3.00000 host localhost + 0 1.00000 osd.0 DNE 0 + 1 1.00000 osd.1 DNE 0 + 2 1.00000 osd.2 DNE 0 $ osdmaptool --tree=json-pretty om osdmaptool: osdmap file 'om' -- 2.39.5