]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
osd/OSDMap: show "destroyed" status in tree view
authorxie xingguo <xie.xingguo@zte.com.cn>
Fri, 21 Jul 2017 05:47:03 +0000 (13:47 +0800)
committerxie xingguo <xie.xingguo@zte.com.cn>
Wed, 26 Jul 2017 07:13:32 +0000 (15:13 +0800)
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 <xie.xingguo@zte.com.cn>
src/osd/OSDMap.cc
src/test/cli/osdmaptool/tree.t

index 525e3c37a2721fdb81b925c3310851699681e2c2..d3cc2774a03a5c6e3be34f64aa92fe9d06fe833d 100644 (file)
@@ -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));
     }
index d2ba473a72e537bf3725be818fb9e8a64a0721aa..b0f06d7f6c2e5e873d6fcc304149df692b1bd938 100644 (file)
@@ -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'