Merge "switch to stevedore for entry points"

This commit is contained in:
Zuul 2020-07-07 06:23:55 +00:00 committed by Gerrit Code Review
commit 42692264f7
4 changed files with 18 additions and 9 deletions

View File

@ -123,7 +123,7 @@ six==1.10.0
smmap==0.9.0
statsd==3.2.1
stestr==1.0.0
stevedore==1.20.0
stevedore==2.0.1
sushy==0.1.0
tempest==17.1.0
tenacity==3.2.1

View File

@ -15,12 +15,13 @@
"""Manage access to the clients, including authenticating when needed."""
import importlib
import logging
import sys
from osc_lib import clientmanager
from osc_lib import shell
import pkg_resources
import stevedore
LOG = logging.getLogger(__name__)
@ -143,17 +144,25 @@ class ClientManager(clientmanager.ClientManager):
def get_plugin_modules(group):
"""Find plugin entry points"""
mod_list = []
for ep in pkg_resources.iter_entry_points(group):
mgr = stevedore.ExtensionManager(group)
for ep in mgr:
LOG.debug('Found plugin %s', ep.name)
# Different versions of stevedore use different
# implementations of EntryPoint from other libraries, which
# are not API-compatible.
try:
__import__(ep.module_name)
except Exception:
module_name = ep.entry_point.module_name
except AttributeError:
module_name = ep.entry_point.module
try:
module = importlib.import_module(module_name)
except Exception as err:
sys.stderr.write(
"WARNING: Failed to import plugin %s.\n" % ep.name)
"WARNING: Failed to import plugin %s: %s.\n" % (ep.name, err))
continue
module = sys.modules[ep.module_name]
mod_list.append(module)
init_func = getattr(module, 'Initialize', None)
if init_func:
@ -164,7 +173,7 @@ def get_plugin_modules(group):
clientmanager.ClientManager,
module.API_NAME,
clientmanager.ClientCache(
getattr(sys.modules[ep.module_name], 'make_client', None)
getattr(sys.modules[module_name], 'make_client', None)
),
)
return mod_list

View File

@ -12,3 +12,4 @@ oslo.utils>=3.33.0 # Apache-2.0
python-keystoneclient>=3.22.0 # Apache-2.0
python-novaclient>=15.1.0 # Apache-2.0
python-cinderclient>=3.3.0 # Apache-2.0
stevedore>=2.0.1 # Apache-2.0

View File

@ -8,7 +8,6 @@ flake8-import-order>=0.13 # LGPLv3
oslotest>=3.2.0 # Apache-2.0
requests>=2.14.2 # Apache-2.0
requests-mock>=1.2.0 # Apache-2.0
stevedore>=1.20.0 # Apache-2.0
stestr>=1.0.0 # Apache-2.0
testtools>=2.2.0 # MIT
tempest>=17.1.0 # Apache-2.0