From 851852d31f24ee92dd4dd89b90ac7f0e832321a3 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Tue, 28 Apr 2009 16:29:15 -0700 Subject: [PATCH] mon: optionally dump specific osdmap epoch --- src/mon/OSDMonitor.cc | 27 ++++++++++++++++++++++----- 1 file changed, 22 insertions(+), 5 deletions(-) diff --git a/src/mon/OSDMonitor.cc b/src/mon/OSDMonitor.cc index d0bfb4556efd6..a3661b2021d5f 100644 --- a/src/mon/OSDMonitor.cc +++ b/src/mon/OSDMonitor.cc @@ -899,11 +899,28 @@ bool OSDMonitor::preprocess_command(MMonCommand *m) r = 0; } else if (m->cmd[1] == "dump") { - ss << "ok"; - r = 0; - stringstream ds; - osdmap.print(ds); - rdata.append(ds); + OSDMap *p = &osdmap; + if (m->cmd.size() > 2) { + epoch_t e = atoi(m->cmd[2].c_str()); + bufferlist b; + mon->store->get_bl_sn(b,"osdmap_full", e); + if (!b.length()) { + p = 0; + r = -ENOENT; + } else { + p = new OSDMap; + p->decode(b); + } + } + if (p) { + stringstream ds; + p->print(ds); + rdata.append(ds); + ss << "dumped osdmap epoch " << p->get_epoch(); + if (p != &osdmap) + delete p; + r = 0; + } } else if (m->cmd[1] == "getmap") { osdmap.encode(rdata); -- 2.39.5