Hide errors from stevedore in transports

Change-Id: I0c6115cacc322a2c101e6773719193fcc91f8ed6
Closes-bug: #1546436
This commit is contained in:
Jedrzej Nowak 2016-02-17 10:59:17 +01:00
parent f319f97eef
commit 57d60e11fb
1 changed files with 10 additions and 1 deletions

View File

@ -22,8 +22,17 @@ from solar.core.transports.base import SyncTransport
from operator import itemgetter
def suppress_stevedore_errors(manager, entrypoint, exception):
pass
def _find_transports(mode):
mgr = extension.ExtensionManager(namespace='solar.transports.%s' % mode)
# instead of suppressing errors we may consider switching to
# EnabledExtensionManager
mgr = extension.ExtensionManager(
namespace='solar.transports.%s' % mode,
on_load_failure_callback=suppress_stevedore_errors
)
extensions = mgr.extensions
transports = dict(map(lambda x: (x.name, x.plugin), extensions))
orders = map(lambda x: (getattr(x.plugin, '_priority', -1),