]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
qa/suites/rados/basic/tasks/rgw_snaps: wait for pools to be be created 16509/head
authorSage Weil <sage@redhat.com>
Sat, 22 Jul 2017 22:54:18 +0000 (18:54 -0400)
committerSage Weil <sage@redhat.com>
Sat, 22 Jul 2017 22:54:46 +0000 (18:54 -0400)
Signed-off-by: Sage Weil <sage@redhat.com>
qa/suites/rados/basic/tasks/rgw_snaps.yaml
qa/tasks/ceph_manager.py

index 1a81d10d922c37d5b1c8c9c1fd55809eba24872b..ec864916de6bff5be37c8b2659a1b5342f7d5395 100644 (file)
@@ -9,6 +9,14 @@ overrides:
 tasks:
 - rgw:
     client.0:
+- ceph_manager.wait_for_pools:
+    kwargs:
+      pools:
+        - .rgw.buckets
+        - .rgw.root
+        - default.rgw.control
+        - default.rgw.meta
+        - default.rgw.log
 - thrash_pool_snaps:
     pools:
     - .rgw.buckets
index 5ed300dd7e6ef8134126a5c08ca6d84981b6b1a3..ce5b0e17d869e3781064e465175724105fccec40 100644 (file)
@@ -2091,6 +2091,27 @@ class CephManager:
             time.sleep(3)
         self.log("all up!")
 
+    def pool_exists(self, pool):
+        if pool in self.list_pools():
+            return True
+        return False
+
+    def wait_for_pool(self, pool, timeout=300):
+        """
+        Wait for a pool to exist
+        """
+        self.log('waiting for pool %s to exist' % pool)
+        start = time.time()
+        while not self.pool_exists(pool):
+            if timeout is not None:
+                assert time.time() - start < timeout, \
+                    'timeout expired in wait_for_pool'
+            time.sleep(3)
+
+    def wait_for_pools(self, pools):
+        for pool in pools:
+            self.wait_for_pool(pool)
+
     def wait_for_recovery(self, timeout=None):
         """
         Check peering. When this exists, we have recovered.
@@ -2450,3 +2471,5 @@ remove_pool = utility_task("remove_pool")
 wait_for_clean = utility_task("wait_for_clean")
 set_pool_property = utility_task("set_pool_property")
 do_pg_scrub = utility_task("do_pg_scrub")
+wait_for_pool = utility_task("wait_for_pool")
+wait_for_pools = utility_task("wait_for_pools")