]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mgr/balancer: simplify pool_info tracking 17983/head
authorSage Weil <sage@redhat.com>
Fri, 27 Oct 2017 17:53:52 +0000 (12:53 -0500)
committerSage Weil <sage@redhat.com>
Wed, 1 Nov 2017 12:28:49 +0000 (07:28 -0500)
Signed-off-by: Sage Weil <sage@redhat.com>
src/pybind/mgr/balancer/module.py

index 2e46eccd6eebee7c5812cfe425fff9d2867fa0f3..b8cc087b9e8b8edaf446e999e82902e934165370 100644 (file)
@@ -377,11 +377,13 @@ class Module(MgrModule):
     def calc_eval(self, ms):
         pe = Eval(ms)
         pool_rule = {}
+        pool_info = {}
         for p in ms.osdmap_dump.get('pools',[]):
             pe.pool_name[p['pool']] = p['pool_name']
             pe.pool_id[p['pool_name']] = p['pool']
             pool_rule[p['pool_name']] = p['crush_rule']
             pe.pool_roots[p['pool_name']] = []
+            pool_info[p['pool_name']] = p
         pools = pe.pool_id.keys()
         if len(pools) == 0:
             return pe
@@ -433,9 +435,7 @@ class Module(MgrModule):
         self.log.debug('target_by_root %s' % pe.target_by_root)
 
         # pool and root actual
-        for pool in pools:
-            pi = [p for p in ms.osdmap_dump.get('pools',[])
-                  if p['pool_name'] == pool][0]
+        for pool, pi in pool_info.iteritems():
             poolid = pi['pool']
             pm = ms.pg_up_by_poolid[poolid]
             pgs = 0