]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
crush: display item name in CrushWrapper::dump_rule()
authorLoic Dachary <loic@dachary.org>
Sun, 9 Feb 2014 20:40:08 +0000 (21:40 +0100)
committerLoic Dachary <loic@dachary.org>
Thu, 13 Feb 2014 11:14:05 +0000 (12:14 +0100)
When an item name is available used it instead of displaying the number.

Signed-off-by: Loic Dachary <loic@dachary.org>
src/crush/CrushWrapper.cc
src/test/crush/TestCrushWrapper.cc

index 3df0147e10caaa5412a07dca0d3127f9c60f825e..1c5d54a83ffe6f43984fed3526866e714466cda6 100644 (file)
@@ -1200,7 +1200,14 @@ void CrushWrapper::dump_rule(int ruleset, Formatter *f) const
       break;
     case CRUSH_RULE_TAKE:
       f->dump_string("op", "take");
-      f->dump_int("item", get_rule_arg1(ruleset, j));
+      {
+        int item = get_rule_arg1(ruleset, j);
+        const char *name = get_item_name(item);
+        if (name == NULL)
+          f->dump_int("item", item);
+        else
+          f->dump_string("item", name);
+      }
       break;
     case CRUSH_RULE_EMIT:
       f->dump_string("op", "emit");
index 55c7e86831f0d8c62028baf66b42f0fd7160b7c4..74509dcd26546ad96f42640cdc6a5f30859478fa 100644 (file)
@@ -533,6 +533,8 @@ TEST(CrushWrapper, dump_rules) {
     f->flush(ss);
     delete f;
     EXPECT_EQ(0, ss.str().find("<rule><rule_id>0</rule_id><rule_name>NAME</rule_name>"));
+    EXPECT_NE(string::npos,
+             ss.str().find("<step><op>take</op><item>default</item></step>"));
   }
 
   delete c;