From 069182f91f912f90b956faa9b985a43cb1910bd4 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Fri, 14 Apr 2017 14:17:29 -0400 Subject: [PATCH] qa/tasks/ceph_manager: use 'pg map' for get_pg_{primary,replica} Pulling this out of the 'pg dump' heap is inefficient. Also, pg dump data comes from the mgr and may be stale. Signed-off-by: Sage Weil --- qa/tasks/ceph_manager.py | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/qa/tasks/ceph_manager.py b/qa/tasks/ceph_manager.py index 8ff2556a7a0..5b78b7f23e8 100644 --- a/qa/tasks/ceph_manager.py +++ b/qa/tasks/ceph_manager.py @@ -1297,24 +1297,20 @@ class CephManager: """ get replica for pool, pgnum (e.g. (data, 0)->0 """ - output = self.raw_cluster_cmd("pg", "dump", '--format=json') - j = json.loads('\n'.join(output.split('\n')[1:])) pg_str = self.get_pgid(pool, pgnum) - for pg in j['pg_stats']: - if pg['pgid'] == pg_str: - return int(pg['acting'][-1]) + output = self.raw_cluster_cmd("pg", "map", pg_str, '--format=json') + j = json.loads('\n'.join(output.split('\n')[1:])) + return int(j['acting'][-1]) assert False def get_pg_primary(self, pool, pgnum): """ get primary for pool, pgnum (e.g. (data, 0)->0 """ - output = self.raw_cluster_cmd("pg", "dump", '--format=json') - j = json.loads('\n'.join(output.split('\n')[1:])) pg_str = self.get_pgid(pool, pgnum) - for pg in j['pg_stats']: - if pg['pgid'] == pg_str: - return int(pg['acting'][0]) + output = self.raw_cluster_cmd("pg", "map", pg_str, '--format=json') + j = json.loads('\n'.join(output.split('\n')[1:])) + return int(j['acting'][0]) assert False def get_pool_num(self, pool): -- 2.39.5