From: Patrick Donnelly Date: Tue, 30 Jun 2020 15:33:59 +0000 (-0700) Subject: pybind/mgr/volumes: fix volume search for pools X-Git-Tag: v16.1.0~1788^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F35857%2Fhead;p=ceph.git pybind/mgr/volumes: fix volume search for pools 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 --- diff --git a/src/pybind/mgr/volumes/fs/operations/volume.py b/src/pybind/mgr/volumes/fs/operations/volume.py index 946d51f6979..64859a44e27 100644 --- a/src/pybind/mgr/volumes/fs/operations/volume.py +++ b/src/pybind/mgr/volumes/fs/operations/volume.py @@ -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']])