diff options
author | Sage Weil <sage@inktank.com> | 2013-07-11 18:43:24 -0700 |
---|---|---|
committer | Sage Weil <sage@inktank.com> | 2013-07-13 21:09:31 -0700 |
commit | 06c65988bb0b1d1ec626fe31e9d806a1c4e24b28 (patch) | |
tree | 512e4940c5c737b78f706dae56e3ce35ba2398fc | |
parent | 658240710baaf9c661b8fbf856322907a0d394ee (diff) | |
download | ceph-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.cc | 9 |
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); |