From 93d481a5d2ff53b67dc6d3205723fb637577fdc1 Mon Sep 17 00:00:00 2001 From: Greg Farnum Date: Fri, 13 Dec 2013 16:28:05 -0800 Subject: [PATCH] mon, osdmaptool: switch to primary-specifying pg_to_up_acting_osds Signed-off-by: Greg Farnum --- src/mon/OSDMonitor.cc | 8 ++++++-- src/test/cli/osdmaptool/create-racks.t | 2 +- src/tools/osdmaptool.cc | 12 ++++++++---- 3 files changed, 15 insertions(+), 7 deletions(-) diff --git a/src/mon/OSDMonitor.cc b/src/mon/OSDMonitor.cc index e93cd69cec559..7e40d8ae5a4d0 100644 --- a/src/mon/OSDMonitor.cc +++ b/src/mon/OSDMonitor.cc @@ -2239,7 +2239,8 @@ bool OSDMonitor::preprocess_command(MMonCommand *m) pg_t pgid = osdmap.object_locator_to_pg(oid, oloc); pg_t mpgid = osdmap.raw_pg_to_pg(pgid); vector up, acting; - osdmap.pg_to_up_acting_osds(mpgid, up, acting); + int up_p, acting_p; + osdmap.pg_to_up_acting_osds(mpgid, &up, &up_p, &acting, &acting_p); string fullobjname; if (!namespacestr.empty()) @@ -2255,7 +2256,9 @@ bool OSDMonitor::preprocess_command(MMonCommand *m) f->dump_stream("raw_pgid") << pgid; f->dump_stream("pgid") << mpgid; f->dump_stream("up") << up; + f->dump_int("up_primary", up_p); f->dump_stream("acting") << acting; + f->dump_int("acting_primary", acting_p); f->close_section(); // osd_map f->flush(rdata); } else { @@ -2263,7 +2266,8 @@ bool OSDMonitor::preprocess_command(MMonCommand *m) << " pool '" << poolstr << "' (" << pool << ")" << " object '" << fullobjname << "' ->" << " pg " << pgid << " (" << mpgid << ")" - << " -> up " << up << " acting " << acting; + << " -> up (" << up << ", p" << up_p << ") acting (" + << acting << ", p" << acting_p << ")"; rdata.append(ds); } } else if ((prefix == "osd scrub" || diff --git a/src/test/cli/osdmaptool/create-racks.t b/src/test/cli/osdmaptool/create-racks.t index 426cb869ff6a9..c8675db82763e 100644 --- a/src/test/cli/osdmaptool/create-racks.t +++ b/src/test/cli/osdmaptool/create-racks.t @@ -789,7 +789,7 @@ $ osdmaptool --test-map-pg 0.0 om osdmaptool: osdmap file 'om' parsed '0.0' -> 0.0 - 0.0 raw [] up [] acting [] + 0.0 raw ([], p-1) up ([], p-1) acting ([], p-1) $ osdmaptool --print om osdmaptool: osdmap file 'om' epoch 1 diff --git a/src/tools/osdmaptool.cc b/src/tools/osdmaptool.cc index 08db164dd276d..c2f4ba1564be2 100644 --- a/src/tools/osdmaptool.cc +++ b/src/tools/osdmaptool.cc @@ -266,10 +266,14 @@ int main(int argc, const char **argv) cout << " parsed '" << test_map_pg << "' -> " << pgid << std::endl; vector raw, up, acting; - int primary; - osdmap.pg_to_osds(pgid, &raw, &primary); - osdmap.pg_to_up_acting_osds(pgid, up, acting); - cout << pgid << " raw (" << raw << ", p" << primary << ") up " << up << " acting " << acting << std::endl; + int calced_primary, up_primary, acting_primary; + osdmap.pg_to_osds(pgid, &raw, &calced_primary); + osdmap.pg_to_up_acting_osds(pgid, &up, &up_primary, + &acting, &acting_primary); + cout << pgid << " raw (" << raw << ", p" << calced_primary + << ") up (" << up << ", p" << up_primary + << ") acting (" << acting << ", p" << acting_primary << ")" + << std::endl; } if (test_crush) { int pass = 0; -- 2.39.5