From e310461aecc667cf26806bc5a3bbabb05696bdfc Mon Sep 17 00:00:00 2001 From: Kefu Chai Date: Mon, 11 May 2015 17:02:41 +0800 Subject: [PATCH 1/3] mon: s/recovery/recoverying/ in "pg ls*" commands' spec * also translate "repair" if specified as "states" * update test_mon_pg in cephtool-test-mon.sh Fixes: #11569 Signed-off-by: Kefu Chai (cherry picked from commit 89f89ca3477eddcae11a05fbd58a8f3658eb1fc1) --- qa/workunits/cephtool/test.sh | 2 +- src/mon/MonCommands.h | 8 ++++---- src/osd/osd_types.cc | 4 +++- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/qa/workunits/cephtool/test.sh b/qa/workunits/cephtool/test.sh index 081d13b97d2246..e395c0ff47e1df 100755 --- a/qa/workunits/cephtool/test.sh +++ b/qa/workunits/cephtool/test.sh @@ -1104,7 +1104,7 @@ function test_mon_pg() ceph pg ls ceph pg ls 0 ceph pg ls stale - ceph pg ls active stale + ceph pg ls active stale repair recovering ceph pg ls 0 active ceph pg ls 0 active stale ceph pg ls-by-primary osd.0 diff --git a/src/mon/MonCommands.h b/src/mon/MonCommands.h index a72aa4b02d4a3b..5ad5db6b635fd1 100644 --- a/src/mon/MonCommands.h +++ b/src/mon/MonCommands.h @@ -133,21 +133,21 @@ COMMAND("pg dump_stuck " \ "pg", "r", "cli,rest") COMMAND("pg ls-by-pool " \ "name=poolstr,type=CephString " \ - "name=states,type=CephChoices,strings=active|clean|down|replay|splitting|scrubbing|scrubq|degraded|inconsistent|peering|repair|recovery|backfill_wait|incomplete|stale|remapped|deep_scrub|backfill|backfill_toofull|recovery_wait|undersized,n=N,req=false ", \ + "name=states,type=CephChoices,strings=active|clean|down|replay|splitting|scrubbing|scrubq|degraded|inconsistent|peering|repair|recovering|backfill_wait|incomplete|stale|remapped|deep_scrub|backfill|backfill_toofull|recovery_wait|undersized,n=N,req=false ", \ "list pg with pool = [poolname | poolid]", "pg", "r", "cli,rest") COMMAND("pg ls-by-primary " \ "name=osd,type=CephOsdName " \ "name=pool,type=CephInt,req=false " \ - "name=states,type=CephChoices,strings=active|clean|down|replay|splitting|scrubbing|scrubq|degraded|inconsistent|peering|repair|recovery|backfill_wait|incomplete|stale|remapped|deep_scrub|backfill|backfill_toofull|recovery_wait|undersized,n=N,req=false ", \ + "name=states,type=CephChoices,strings=active|clean|down|replay|splitting|scrubbing|scrubq|degraded|inconsistent|peering|repair|recovering|backfill_wait|incomplete|stale|remapped|deep_scrub|backfill|backfill_toofull|recovery_wait|undersized,n=N,req=false ", \ "list pg with primary = [osd]", "pg", "r", "cli,rest") COMMAND("pg ls-by-osd " \ "name=osd,type=CephOsdName " \ "name=pool,type=CephInt,req=false " \ - "name=states,type=CephChoices,strings=active|clean|down|replay|splitting|scrubbing|scrubq|degraded|inconsistent|peering|repair|recovery|backfill_wait|incomplete|stale|remapped|deep_scrub|backfill|backfill_toofull|recovery_wait|undersized,n=N,req=false ", \ + "name=states,type=CephChoices,strings=active|clean|down|replay|splitting|scrubbing|scrubq|degraded|inconsistent|peering|repair|recovering|backfill_wait|incomplete|stale|remapped|deep_scrub|backfill|backfill_toofull|recovery_wait|undersized,n=N,req=false ", \ "list pg on osd [osd]", "pg", "r", "cli,rest") COMMAND("pg ls " \ "name=pool,type=CephInt,req=false " \ - "name=states,type=CephChoices,strings=active|clean|down|replay|splitting|scrubbing|scrubq|degraded|inconsistent|peering|repair|recovery|backfill_wait|incomplete|stale|remapped|deep_scrub|backfill|backfill_toofull|recovery_wait|undersized,n=N,req=false ", \ + "name=states,type=CephChoices,strings=active|clean|down|replay|splitting|scrubbing|scrubq|degraded|inconsistent|peering|repair|recovering|backfill_wait|incomplete|stale|remapped|deep_scrub|backfill|backfill_toofull|recovery_wait|undersized,n=N,req=false ", \ "list pg with specific pool, osd, state", "pg", "r", "cli,rest") COMMAND("pg map name=pgid,type=CephPgid", "show mapping of pg to osds", \ "pg", "r", "cli,rest") diff --git a/src/osd/osd_types.cc b/src/osd/osd_types.cc index e5954c06d4e0ab..a881597c41462d 100644 --- a/src/osd/osd_types.cc +++ b/src/osd/osd_types.cc @@ -793,7 +793,9 @@ int pg_string_state(std::string state) type = PG_STATE_INCONSISTENT; else if (state == "peering") type = PG_STATE_PEERING; - else if (state == "recoverying") + else if (state == "repair") + type = PG_STATE_REPAIR; + else if (state == "recovering") type = PG_STATE_RECOVERING; else if (state == "backfill_wait") type = PG_STATE_BACKFILL_WAIT; From 84ebc3d320bdf871ccf85e555951cea421b56021 Mon Sep 17 00:00:00 2001 From: Kefu Chai Date: Mon, 11 May 2015 19:29:13 +0800 Subject: [PATCH 2/3] mon/PGMap: sort pg states by the states in "pg ls" spec Signed-off-by: Kefu Chai (cherry picked from commit 990dfb6cd45438bc8293ac37882daa413860a2f8) --- src/osd/osd_types.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/osd/osd_types.cc b/src/osd/osd_types.cc index a881597c41462d..b593374b1b4dc2 100644 --- a/src/osd/osd_types.cc +++ b/src/osd/osd_types.cc @@ -801,10 +801,10 @@ int pg_string_state(std::string state) type = PG_STATE_BACKFILL_WAIT; else if (state == "incomplete") type = PG_STATE_INCOMPLETE; - else if (state == "remapped") - type = PG_STATE_REMAPPED; else if (state == "stale") type = PG_STATE_STALE; + else if (state == "remapped") + type = PG_STATE_REMAPPED; else if (state == "deep_scrub") type = PG_STATE_DEEP_SCRUB; else if (state == "backfill") From 1a32379dd6cb56ed69b8f448d3612506c8131fbe Mon Sep 17 00:00:00 2001 From: Kefu Chai Date: Mon, 11 May 2015 19:30:30 +0800 Subject: [PATCH 3/3] mon/PGMap: add more constness Signed-off-by: Kefu Chai (cherry picked from commit e1f1c56ce88ef3ad05e881d650fac637931ce3fe) --- src/mon/PGMap.cc | 2 +- src/mon/PGMap.h | 2 +- src/osd/osd_types.cc | 2 +- src/osd/osd_types.h | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/mon/PGMap.cc b/src/mon/PGMap.cc index 4c90d9a401f01a..e60ed6ae29d3e4 100644 --- a/src/mon/PGMap.cc +++ b/src/mon/PGMap.cc @@ -1426,7 +1426,7 @@ void PGMap::generate_test_instances(list& o) } } -void PGMap::get_filtered_pg_stats(string& state, int64_t poolid, int64_t osdid, +void PGMap::get_filtered_pg_stats(const string& state, int64_t poolid, int64_t osdid, bool primary, set& pgs) { int type = 0; diff --git a/src/mon/PGMap.h b/src/mon/PGMap.h index f151bf6e0a8c61..1cdff4a12d4e42 100644 --- a/src/mon/PGMap.h +++ b/src/mon/PGMap.h @@ -290,7 +290,7 @@ class PGMap { void dump_osd_blocked_by_stats(Formatter *f) const; void print_osd_blocked_by_stats(std::ostream *ss) const; - void get_filtered_pg_stats(string& state, int64_t poolid, int64_t osdid, + void get_filtered_pg_stats(const string& state, int64_t poolid, int64_t osdid, bool primary, set& pgs); void recovery_summary(Formatter *f, list *psl, const pool_stat_t& delta_sum) const; diff --git a/src/osd/osd_types.cc b/src/osd/osd_types.cc index b593374b1b4dc2..6995a1774e67dc 100644 --- a/src/osd/osd_types.cc +++ b/src/osd/osd_types.cc @@ -770,7 +770,7 @@ std::string pg_state_string(int state) return ret; } -int pg_string_state(std::string state) +int pg_string_state(const std::string& state) { int type; if (state == "active") diff --git a/src/osd/osd_types.h b/src/osd/osd_types.h index 531f1638c4393e..1eaa7a4c34bc76 100644 --- a/src/osd/osd_types.h +++ b/src/osd/osd_types.h @@ -772,7 +772,7 @@ inline ostream& operator<<(ostream& out, const osd_stat_t& s) { std::string pg_state_string(int state); std::string pg_vector_string(const vector &a); -int pg_string_state(std::string state); +int pg_string_state(const std::string& state); /*