From 458816e57f8f463eefa4876a0801950da114ab5f Mon Sep 17 00:00:00 2001 From: Johannes Findeisen Date: Wed, 23 Aug 2023 22:54:46 +0200 Subject: [PATCH] Fixed loading of plugins if the selected plugin does not exist. (0.25.9) --- bin/linspector | 2 +- linspector/linspector.py | 18 +++++++++++------- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/bin/linspector b/bin/linspector index c86ec6a..16ed842 100755 --- a/bin/linspector +++ b/bin/linspector @@ -20,7 +20,7 @@ from linspector.environment import Environment from linspector.linspector import Linspector from linspector.monitors import Monitors -__version__ = '0.25.8' +__version__ = '0.25.9' __author__ = 'Johannes Findeisen ' diff --git a/linspector/linspector.py b/linspector/linspector.py index 10b00fa..4f1863e 100644 --- a/linspector/linspector.py +++ b/linspector/linspector.py @@ -41,13 +41,17 @@ class Linspector: log.info('loading plugins: ' + configuration.get_option('linspector', 'plugins')) plugin_list = configuration.get_option('linspector', 'plugins') self._plugin_list = plugin_list.split(',') - for plugin_option in self._plugin_list: - if plugin_option not in plugins: - log.info('loading plugin: ' + plugin_option) - plugin_package = 'linspector.plugins.' + plugin_option.lower() - plugin_module = importlib.import_module(plugin_package) - plugin = plugin_module.create(configuration, environment, log, self) - plugins[plugin_option.lower()] = plugin + for plugin_name in self._plugin_list: + if plugin_name not in plugins: + log.info('loading plugin: ' + plugin_name) + plugin_package = 'linspector.plugins.' + plugin_name.lower() + if importlib.util.find_spec(plugin_package) is not None: + plugin_module = importlib.import_module(plugin_package) + plugin = plugin_module.create(configuration, environment, log, self) + plugins[plugin_name.lower()] = plugin + else: + log.warning('initialization of plugin: {0} failed! seems it does not ' + 'exist.'.format(plugin_name)) jobstores = { 'memory': MemoryJobStore()