Merge "use stevedore to load util plugins"
This commit is contained in:
commit
20cfe02dc1
|
@ -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):
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue