]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
qa/tasks/ceph_manager: remove race from all_active_or_peered() 29498/head
authorSage Weil <sage@redhat.com>
Mon, 5 Aug 2019 19:00:52 +0000 (14:00 -0500)
committerSage Weil <sage@redhat.com>
Mon, 5 Aug 2019 19:01:02 +0000 (14:01 -0500)
Signed-off-by: Sage Weil <sage@redhat.com>
qa/tasks/ceph_manager.py

index 4d9ac33a9022818afe414f9d2c1b8f92b8f27c34..09ebf8f9a93353dda2282d1603b273c8a5b9aa16 100644 (file)
@@ -2190,6 +2190,9 @@ class CephManager:
         Find the number of active pgs.
         """
         pgs = self.get_pg_stats()
+        return self._get_num_active(pgs)
+
+    def _get_num_active(self, pgs):
         num = 0
         for pg in pgs:
             if pg['state'].count('active') and not pg['state'].count('stale'):
@@ -2234,9 +2237,12 @@ class CephManager:
         Find the number of PGs that are peered
         """
         pgs = self.get_pg_stats()
+        return self._get_num_peered(pgs)
+
+    def _get_num_peered(self, pgs):
         num = 0
         for pg in pgs:
-            if (pg['state'].count('peered')):
+            if pg['state'].count('peered') and not pg['state'].count('stale'):
                  num += 1
         return num
 
@@ -2449,7 +2455,8 @@ class CephManager:
         """
         Wrapper to check if all PGs are active or peered
         """
-        return (self.get_num_active() + self.get_num_peered()) == self.get_num_pgs()
+        pgs = self.get_pg_stats()
+        return self._get_num_active(pgs) + self._get_num_peered(pgs) == len(pgs)
 
     def wait_till_active(self, timeout=None):
         """