summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZuul <zuul@review.opendev.org>2020-08-05 09:16:42 +0000
committerGerrit Code Review <review@openstack.org>2020-08-05 09:16:42 +0000
commit20cfe02dc12f8269b16634bf51066a234ffd4863 (patch)
treecd6389a8803a9e567f4237bd4cdb56e8e80fd3c7
parent578744aca38d176434f7862f9add6920ab9f1f63 (diff)
parent37f6a3079434186a534864b8a3e919232f56ff27 (diff)
downloadpython-cinderclient-20cfe02dc12f8269b16634bf51066a234ffd4863.tar.gz
Merge "use stevedore to load util plugins"
-rw-r--r--cinderclient/utils.py17
-rw-r--r--requirements.txt1
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