summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSage Weil <sage@inktank.com>2013-07-11 18:43:24 -0700
committerSage Weil <sage@inktank.com>2013-07-13 21:09:31 -0700
commit06c65988bb0b1d1ec626fe31e9d806a1c4e24b28 (patch)
tree512e4940c5c737b78f706dae56e3ce35ba2398fc
parent658240710baaf9c661b8fbf856322907a0d394ee (diff)
downloadceph-06c65988bb0b1d1ec626fe31e9d806a1c4e24b28.tar.gz
osd/OSDmap: fix OSDMap::Incremental::dump() for new pool names
The name is always present when pools are created, but not when they are modified. Also, a name may be present with a new_pools entry if the pool is just renamed. Separate it out completely in the dump. Backport: cuttlefish, bobtail Signed-off-by: Sage Weil <sage@inktank.com> (cherry picked from commit 3e4a29111e89588385e63f8d92ce3d67739dd679)
-rw-r--r--src/osd/OSDMap.cc9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/osd/OSDMap.cc b/src/osd/OSDMap.cc
index 8e0474eb781..065dcccce8c 100644
--- a/src/osd/OSDMap.cc
+++ b/src/osd/OSDMap.cc
@@ -453,11 +453,18 @@ void OSDMap::Incremental::dump(Formatter *f) const
for (map<int64_t,pg_pool_t>::const_iterator p = new_pools.begin(); p != new_pools.end(); ++p) {
f->open_object_section("pool");
f->dump_int("pool", p->first);
- f->dump_string("name", new_pool_names.find(p->first)->second);
p->second.dump(f);
f->close_section();
}
f->close_section();
+ f->open_array_section("new_pool_names");
+ for (map<int64_t,string>::const_iterator p = new_pool_names.begin(); p != new_pool_names.end(); ++p) {
+ f->open_object_section("pool_name");
+ f->dump_int("pool", p->first);
+ f->dump_string("name", p->second);
+ f->close_section();
+ }
+ f->close_section();
f->open_array_section("old_pools");
for (set<int64_t>::const_iterator p = old_pools.begin(); p != old_pools.end(); ++p)
f->dump_int("pool", *p);