From: Sage Weil Date: Fri, 1 Dec 2017 15:24:27 +0000 (-0600) Subject: osd/OSDMap: improve osdmap flag dumping in json X-Git-Tag: v13.0.2~844^2~29 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=81d63f2994db1d6cf9b48dc8e4f6b473e83ca520;p=ceph.git osd/OSDMap: improve osdmap flag dumping in json Signed-off-by: Sage Weil --- diff --git a/src/osd/OSDMap.cc b/src/osd/OSDMap.cc index e06dafca4ec..4588a34ab44 100644 --- a/src/osd/OSDMap.cc +++ b/src/osd/OSDMap.cc @@ -1224,6 +1224,15 @@ void OSDMap::get_out_osds(set& ls) const } } +void OSDMap::get_flag_set(set *flagset) const +{ + for (unsigned i = 0; i < sizeof(flags) * 8; ++i) { + if (flags & (1<insert(get_flag_string(flags & (1<& st) { unsigned t = state; @@ -2752,6 +2761,14 @@ void OSDMap::dump(Formatter *f) const f->dump_stream("created") << get_created(); f->dump_stream("modified") << get_modified(); f->dump_string("flags", get_flag_string()); + f->dump_unsigned("flags_num", flags); + f->open_array_section("flags_set"); + set flagset; + get_flag_set(&flagset); + for (auto p : flagset) { + f->dump_string("flag", p); + } + f->close_section(); f->dump_unsigned("crush_version", get_crush_version()); f->dump_float("full_ratio", full_ratio); f->dump_float("backfillfull_ratio", backfillfull_ratio); diff --git a/src/osd/OSDMap.h b/src/osd/OSDMap.h index 948d0132af1..0deaae4d7c0 100644 --- a/src/osd/OSDMap.h +++ b/src/osd/OSDMap.h @@ -667,6 +667,8 @@ public: void set_flag(int f) { flags |= f; } void clear_flag(int f) { flags &= ~f; } + void get_flag_set(set *flagset) const; + static void calc_state_set(int state, set& st); int get_state(int o) const {