]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
pybind/mgr/volumes: fix volume search for pools 35857/head
authorPatrick Donnelly <pdonnell@redhat.com>
Tue, 30 Jun 2020 15:33:59 +0000 (08:33 -0700)
committerPatrick Donnelly <pdonnell@redhat.com>
Thu, 9 Jul 2020 01:57:56 +0000 (18:57 -0700)
Loop logic would bail out if it first sees any file system that does not
match the volume it's looking for.

Fixes: https://tracker.ceph.com/issues/46277
Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
src/pybind/mgr/volumes/fs/operations/volume.py

index 946d51f6979661b09684e4ccf19063ad671adc15..64859a44e278ac5ebf75f1543b7c83724a48c498 100644 (file)
@@ -2,6 +2,8 @@ import errno
 import logging
 import sys
 
+from typing import List
+
 from contextlib import contextmanager
 
 import orchestrator
@@ -26,12 +28,15 @@ def get_pool_names(mgr, volname):
     return metadata and data pools (list) names of volume as a tuple
     """
     fs_map = mgr.get("fs_map")
+    metadata_pool_id = None
+    data_pool_ids = [] # type: List[int]
     for f in fs_map['filesystems']:
         if volname == f['mdsmap']['fs_name']:
             metadata_pool_id = f['mdsmap']['metadata_pool']
             data_pool_ids = f['mdsmap']['data_pools']
-        else:
-            return None, None
+            break
+    if metadata_pool_id is None:
+        return None, None
 
     osdmap = mgr.get("osd_map")
     pools = dict([(p['pool'], p['pool_name']) for p in osdmap['pools']])