From 6d90796fc967794da8b9a6e167d14fc1f29da9d0 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Thu, 18 Aug 2011 10:07:12 -0700 Subject: [PATCH] compatset: dump json Signed-off-by: Sage Weil --- src/include/CompatSet.h | 24 ++++++++++++++++++++++++ src/mds/MDSMap.cc | 4 +++- 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/src/include/CompatSet.h b/src/include/CompatSet.h index a7cb8f6f2dbf3..014d231d8eddd 100644 --- a/src/include/CompatSet.h +++ b/src/include/CompatSet.h @@ -17,6 +17,8 @@ #include "include/buffer.h" #include +#include "common/Formatter.h" + #define END_FEATURE CompatSet::Feature(0, "") struct CompatSet { @@ -58,6 +60,16 @@ struct CompatSet { ::decode(mask, bl); ::decode(names, bl); } + + void dump(Formatter *f) const { + for (map::const_iterator p = names.begin(); + p != names.end(); + ++p) { + char s[10]; + snprintf(s, sizeof(s), "%lld", (unsigned long long)p->first); + f->dump_string(s, p->second); + } + } }; FeatureSet compat, ro_compat, incompat; @@ -154,6 +166,18 @@ struct CompatSet { ro_compat.decode(bl); incompat.decode(bl); } + + void dump(Formatter *f) const { + f->open_object_section("compat"); + compat.dump(f); + f->close_section(); + f->open_object_section("ro_compat"); + ro_compat.dump(f); + f->close_section(); + f->open_object_section("incompat"); + incompat.dump(f); + f->close_section(); + } }; WRITE_CLASS_ENCODER(CompatSet) diff --git a/src/mds/MDSMap.cc b/src/mds/MDSMap.cc index e3a948a41d5cf..81e18a0da0236 100644 --- a/src/mds/MDSMap.cc +++ b/src/mds/MDSMap.cc @@ -90,7 +90,9 @@ void MDSMap::dump(Formatter *f) const f->dump_int("session_autoclose", session_autoclose); f->dump_int("last_failure", last_failure); f->dump_int("last_failure_osd_epoch", last_failure_osd_epoch); - f->dump_stream("compat") << compat; + f->open_object_section("compat"); + compat.dump(f); + f->close_section(); f->dump_int("max_mds", max_mds); f->open_array_section("in"); for (set::const_iterator p = in.begin(); p != in.end(); ++p) -- 2.39.5