From: Sage Weil Date: Fri, 14 Apr 2017 18:17:29 +0000 (-0400) Subject: qa/tasks/ceph_manager: use 'pg map' for get_pg_{primary,replica} X-Git-Tag: v12.0.3~291^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=069182f91f912f90b956faa9b985a43cb1910bd4;p=ceph.git 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 --- diff --git a/qa/tasks/ceph_manager.py b/qa/tasks/ceph_manager.py index 8ff2556a7a0e..5b78b7f23e85 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):