From 5553e9c943972b8ac025a67c59829f8440bf4ea4 Mon Sep 17 00:00:00 2001 From: John Spray Date: Wed, 22 Jun 2016 13:01:20 +0100 Subject: [PATCH] tasks/cephfs: use "blacklist clear" ... instead of iterating over all blacklist entries. Fall back to the old way if the new way doesn't work (i.e. on old ceph) Signed-off-by: John Spray --- tasks/cephfs/cephfs_test_case.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/tasks/cephfs/cephfs_test_case.py b/tasks/cephfs/cephfs_test_case.py index 29855d90d5a..73499da7ba9 100644 --- a/tasks/cephfs/cephfs_test_case.py +++ b/tasks/cephfs/cephfs_test_case.py @@ -127,10 +127,15 @@ class CephFSTestCase(unittest.TestCase): # In case anything is in the OSD blacklist list, clear it out. This is to avoid # the OSD map changing in the background (due to blacklist expiry) while tests run. - blacklist = json.loads(self.fs.mon_manager.raw_cluster_cmd("osd", "dump", "--format=json-pretty"))['blacklist'] - log.info("Removing {0} blacklist entries".format(len(blacklist))) - for addr, blacklisted_at in blacklist.items(): - self.fs.mon_manager.raw_cluster_cmd("osd", "blacklist", "rm", addr) + try: + self.fs.mon_manager.raw_cluster_cmd("osd", "blacklist", "clear") + except CommandFailedError: + # Fallback for older Ceph cluster + blacklist = json.loads(self.fs.mon_manager.raw_cluster_cmd("osd", + "dump", "--format=json-pretty"))['blacklist'] + log.info("Removing {0} blacklist entries".format(len(blacklist))) + for addr, blacklisted_at in blacklist.items(): + self.fs.mon_manager.raw_cluster_cmd("osd", "blacklist", "rm", addr) # In case some test messed with auth caps, reset them client_mount_ids = [m.client_id for m in self.mounts] -- 2.39.5