From 3296043180991bed87f5d72975508e2ce24fb13a Mon Sep 17 00:00:00 2001 From: Tomas Kopecek Date: Jun 07 2017 12:26:42 +0000 Subject: [PATCH 1/2] log failed plugin Related: https://pagure.io/koji/issue/433 --- diff --git a/koji/plugin.py b/koji/plugin.py index e4fe19d..3bf243e 100644 --- a/koji/plugin.py +++ b/koji/plugin.py @@ -76,6 +76,10 @@ class PluginTracker(object): file, pathname, description = imp.find_module(name, self.pathlist(path)) try: plugin = imp.load_module(mod_name, file, pathname, description) + except Exception: + msg = 'Loading plugin %s failed' % name + logging.getLogger('koji.plugin').error(msg) + raise finally: file.close() self.plugins[name] = plugin From b91ecbeb2c34a1eb51e6adf745cba280ea737c9e Mon Sep 17 00:00:00 2001 From: Mike McLean Date: Jun 07 2017 12:26:42 +0000 Subject: [PATCH 2/2] avoid secondary traceback when hub plugin fails to load --- diff --git a/hub/kojixmlrpc.py b/hub/kojixmlrpc.py index 53cd229..6f848d8 100644 --- a/hub/kojixmlrpc.py +++ b/hub/kojixmlrpc.py @@ -572,7 +572,10 @@ def get_policy(opts, plugins): alltests = [koji.policy.findSimpleTests([vars(kojihub), vars(koji.policy)])] # we delay merging these to allow a test to be overridden for a specific policy for plugin_name in opts.get('Plugins', '').split(): - alltests.append(koji.policy.findSimpleTests(vars(plugins.get(plugin_name)))) + plugin = plugins.get(plugin_name) + if not plugin: + continue + alltests.append(koji.policy.findSimpleTests(vars(plugin))) policy = {} for pname, text in opts['policy'].iteritems(): #filter/merge tests @@ -813,5 +816,8 @@ def get_registry(opts, plugins): registry.register_function(koji.auth.exclusiveSession) registry.register_function(koji.auth.sharedSession) for name in opts.get('Plugins', '').split(): - registry.register_plugin(plugins.get(name)) + plugin = plugins.get(name) + if not plugin: + continue + registry.register_plugin(plugin) return registry