]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
cephfs: get new fsmap after marking clusters down
authorPatrick Donnelly <pdonnell@redhat.com>
Tue, 15 Nov 2016 19:42:08 +0000 (14:42 -0500)
committerPatrick Donnelly <pdonnell@redhat.com>
Tue, 15 Nov 2016 19:42:08 +0000 (14:42 -0500)
Credit to John Spray for identifying the problem/cause.

Fixes: http://tracker.ceph.com/issues/17894
Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
tasks/cephfs/filesystem.py

index 6b73ed4f2f42794822310740599a7c234aae011e..2a5fb7f2aac8ba89a46fbbdd135ac401d687b890 100644 (file)
@@ -270,18 +270,22 @@ class MDSCluster(CephCluster):
         pool_id_name = {}
         for pool in pools:
             pool_id_name[pool['pool']] = pool['pool_name']
+
+        # mark cluster down for each fs to prevent churn during deletion
+        status = self.status()
+        for fs in status.get_filesystems():
+            self.mon_manager.raw_cluster_cmd("fs", "set", fs['mdsmap']['fs_name'], "cluster_down", "true")
+
+        # get a new copy as actives may have since changed
         status = self.status()
         for fs in status.get_filesystems():
             mdsmap = fs['mdsmap']
-            name = mdsmap['fs_name']
             metadata_pool = pool_id_name[mdsmap['metadata_pool']]
 
-            self.mon_manager.raw_cluster_cmd("fs", "set", name, "cluster_down", "true")
-
             for gid in mdsmap['up'].values():
                 self.mon_manager.raw_cluster_cmd('mds', 'fail', gid.__str__())
 
-            self.mon_manager.raw_cluster_cmd('fs', 'rm', name, '--yes-i-really-mean-it')
+            self.mon_manager.raw_cluster_cmd('fs', 'rm', mdsmap['fs_name'], '--yes-i-really-mean-it')
             self.mon_manager.raw_cluster_cmd('osd', 'pool', 'delete',
                                              metadata_pool, metadata_pool,
                                              '--yes-i-really-really-mean-it')