From 8deee28320632212a5bb9f4dea1a24d54b81201c Mon Sep 17 00:00:00 2001 From: Goffi Date: Thu, 27 Aug 2015 17:59:15 +0200 Subject: [PATCH] core (plugins): detect import_name conflicts --- src/core/sat_main.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/core/sat_main.py b/src/core/sat_main.py index 956d733d..98d6c298 100644 --- a/src/core/sat_main.py +++ b/src/core/sat_main.py @@ -145,7 +145,7 @@ class SAT(service.Service): import sat.plugins plugins_path = os.path.dirname(sat.plugins.__file__) plug_lst = [os.path.splitext(plugin)[0] for plugin in map(os.path.basename, glob(os.path.join(plugins_path, "plugin*.py")))] - __plugins_to_import = {} # plugins we still have to import + plugins_to_import = {} # plugins we still have to import for plug in plug_lst: plugin_path = 'sat.plugins.' + plug try: @@ -155,10 +155,14 @@ class SAT(service.Service): continue mod = sys.modules[plugin_path] plugin_info = mod.PLUGIN_INFO - __plugins_to_import[plugin_info['import_name']] = (plugin_path, mod, plugin_info) + import_name = plugin_info['import_name'] + if import_name in plugins_to_import: + log.error(_(u"Name conflict for import name [{import_name}], can't import plugin [{name}]").format(**plugin_info)) + continue + plugins_to_import[import_name] = (plugin_path, mod, plugin_info) while True: - self._import_plugins_from_dict(__plugins_to_import) - if not __plugins_to_import: + self._import_plugins_from_dict(plugins_to_import) + if not plugins_to_import: break def _import_plugins_from_dict(self, plugins_to_import, import_name=None, optional=False):