diff --git a/nailgun/nailgun/extensions/manager.py b/nailgun/nailgun/extensions/manager.py index 1a4ae05267..56f6b07442 100644 --- a/nailgun/nailgun/extensions/manager.py +++ b/nailgun/nailgun/extensions/manager.py @@ -20,10 +20,16 @@ from stevedore.extension import ExtensionManager from nailgun import errors from nailgun.extensions import consts +from nailgun.logger import logger _EXTENSION_MANAGER = None +def on_load_failure(manager, endpoint, exc): + logger.exception("Failed to load %s extension", endpoint.name) + raise + + def get_all_extensions(): """Retrieves all available extensions for Nailgun @@ -36,6 +42,7 @@ def get_all_extensions(): if _EXTENSION_MANAGER is None: _EXTENSION_MANAGER = ExtensionManager( + on_load_failure_callback=on_load_failure, namespace=consts.EXTENSIONS_NAMESPACE) return (ext.plugin for ext in _EXTENSION_MANAGER.extensions)