From: Peter Sabaini Date: Wed, 11 Sep 2024 14:56:50 +0000 (+0200) Subject: ceph-volume: fix importlib.metadata compat X-Git-Tag: v20.0.0~391^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=8c78a22d2cf69892570f635735d9735169b64a75;p=ceph.git ceph-volume: fix importlib.metadata compat The importlib.metadata library removed older shims in releases >5.0.0 where EntryPoints objects use .select() instead of dict-like access. Fixes: https://tracker.ceph.com/issues/68032 Signed-off-by: Peter Sabaini --- diff --git a/src/ceph-volume/ceph_volume/main.py b/src/ceph-volume/ceph_volume/main.py index f8eca65ec497..4f27f429e89e 100644 --- a/src/ceph-volume/ceph_volume/main.py +++ b/src/ceph-volume/ceph_volume/main.py @@ -11,8 +11,16 @@ try: from importlib.metadata import entry_points def get_entry_points(group: str): # type: ignore - return entry_points().get(group, []) # type: ignore + eps = entry_points() + if hasattr(eps, 'select'): + # New importlib.metadata uses .select() + return eps.select(group=group) + else: + # Fallback to older EntryPoints that returns dicts + return eps.get(group, []) # type: ignore + except ImportError: + # Fallback to `pkg_resources` for older versions from pkg_resources import iter_entry_points as entry_points # type: ignore def get_entry_points(group: str): # type: ignore