From: Sage Weil Date: Sat, 22 Jul 2017 22:54:18 +0000 (-0400) Subject: qa/suites/rados/basic/tasks/rgw_snaps: wait for pools to be be created X-Git-Tag: v12.1.2~138^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=ecd1193ab98d437516d00a010c18c7b2a03a2386;p=ceph.git qa/suites/rados/basic/tasks/rgw_snaps: wait for pools to be be created Signed-off-by: Sage Weil --- diff --git a/qa/suites/rados/basic/tasks/rgw_snaps.yaml b/qa/suites/rados/basic/tasks/rgw_snaps.yaml index 1a81d10d922c3..ec864916de6bf 100644 --- a/qa/suites/rados/basic/tasks/rgw_snaps.yaml +++ b/qa/suites/rados/basic/tasks/rgw_snaps.yaml @@ -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 diff --git a/qa/tasks/ceph_manager.py b/qa/tasks/ceph_manager.py index 5ed300dd7e6ef..ce5b0e17d869e 100644 --- a/qa/tasks/ceph_manager.py +++ b/qa/tasks/ceph_manager.py @@ -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")