diff options
| author | Zuul <zuul@review.opendev.org> | 2020-08-05 09:16:42 +0000 |
|---|---|---|
| committer | Gerrit Code Review <review@openstack.org> | 2020-08-05 09:16:42 +0000 |
| commit | 20cfe02dc12f8269b16634bf51066a234ffd4863 (patch) | |
| tree | cd6389a8803a9e567f4237bd4cdb56e8e80fd3c7 | |
| parent | 578744aca38d176434f7862f9add6920ab9f1f63 (diff) | |
| parent | 37f6a3079434186a534864b8a3e919232f56ff27 (diff) | |
| download | python-cinderclient-20cfe02dc12f8269b16634bf51066a234ffd4863.tar.gz | |
Merge "use stevedore to load util plugins"
| -rw-r--r-- | cinderclient/utils.py | 17 | ||||
| -rw-r--r-- | requirements.txt | 1 |
2 files changed, 12 insertions, 6 deletions
diff --git a/cinderclient/utils.py b/cinderclient/utils.py index 48d3939..3b00967 100644 --- a/cinderclient/utils.py +++ b/cinderclient/utils.py @@ -15,13 +15,13 @@ import collections import os -import pkg_resources import sys import uuid import prettytable import six from six.moves.urllib import parse +import stevedore from cinderclient import exceptions from oslo_utils import encodeutils @@ -330,11 +330,16 @@ def safe_issubclass(*args): def _load_entry_point(ep_name, name=None): """Try to load the entry point ep_name that matches name.""" - for ep in pkg_resources.iter_entry_points(ep_name, name=name): - try: - return ep.load() - except (ImportError, pkg_resources.UnknownExtra, AttributeError): - continue + mgr = stevedore.NamedExtensionManager( + namespace=ep_name, + names=[name], + # Ignore errors on load + on_load_failure_callback=lambda mgr, entry_point, error: None, + ) + try: + return mgr[name].plugin + except KeyError: + pass def get_function_name(func): diff --git a/requirements.txt b/requirements.txt index fef5e1e..f6567f4 100644 --- a/requirements.txt +++ b/requirements.txt @@ -9,3 +9,4 @@ six>=1.10.0 # MIT oslo.i18n>=3.15.3 # Apache-2.0 oslo.utils>=3.33.0 # Apache-2.0 requests!=2.20.0,>=2.14.2 # Apache-2.0 +stevedore>=1.20.0 # Apache-2.0 |
