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 <pdonnell@redhat.com>
This commit is contained in:
Patrick Donnelly 2020-06-30 08:33:59 -07:00
parent faab304e9d
commit be74a81e19
No known key found for this signature in database
GPG Key ID: 3A2A7E25BEA8AADB

View 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']])