From 9db825247452d54152f1c866b6b90f897be32f15 Mon Sep 17 00:00:00 2001 From: "Bryn M. Reeves" Date: Wed, 12 Dec 2018 15:41:42 +0000 Subject: [PATCH] [Plugin] clean up Plugin.get_option() There's a lot of ancient junk in this method (and associated code strewn around sos.sosreport and tests). Remove the ability to pass a list of options to the method since nothing uses this, and also delete the incomplete implementation of global plugin options via the commons dictionary (this work was already completed some time ago by mapping these options directly to the command line args). Resolves: #1498 Signed-off-by: Bryn M. Reeves --- sos/plugins/__init__.py | 13 +------------ sos/sosreport.py | 5 ----- tests/option_tests.py | 16 ++++------------ 3 files changed, 5 insertions(+), 29 deletions(-) diff --git a/sos/plugins/__init__.py b/sos/plugins/__init__.py index 3abe29db..c87ae19b 100644 --- a/sos/plugins/__init__.py +++ b/sos/plugins/__init__.py @@ -531,23 +531,12 @@ class Plugin(object): if optionname in global_options: return getattr(self.commons['cmdlineopts'], optionname) - def _check(key): - if hasattr(optionname, "__iter__"): - return key in optionname - else: - return key == optionname - for name, parms in zip(self.opt_names, self.opt_parms): - if _check(name): + if name == optionname: val = parms['enabled'] if val is not None: return val - items = six.iteritems(self.commons.get('global_plugin_options', {})) - for key, value in items: - if _check(key): - return value - return default def get_option_as_list(self, optionname, delimiter=",", default=None): diff --git a/sos/sosreport.py b/sos/sosreport.py index 77ae7161..97bee10c 100644 --- a/sos/sosreport.py +++ b/sos/sosreport.py @@ -336,7 +336,6 @@ class SoSReport(object): self.skipped_plugins = [] self.all_options = [] self.xml_report = XmlReport() - self.global_plugin_options = {} self.archive = None self.tempfile_util = None self._args = args @@ -432,7 +431,6 @@ class SoSReport(object): 'xmlreport': self.xml_report, 'cmdlineopts': self.opts, 'config': self.config, - 'global_plugin_options': self.global_plugin_options, } def get_temp_file(self): @@ -1426,9 +1424,6 @@ class SoSReport(object): return False return True - def set_global_plugin_option(self, key, value): - self.global_plugin_options[key] = value - def _cleanup(self): # archive and tempfile cleanup may fail due to a fatal # OSError exception (ENOSPC, EROFS etc.). diff --git a/tests/option_tests.py b/tests/option_tests.py index a4267e2e..a99be4b0 100644 --- a/tests/option_tests.py +++ b/tests/option_tests.py @@ -12,27 +12,19 @@ class GlobalOptionTest(unittest.TestCase): self.commons = { 'sysroot': '/', 'policy': LinuxPolicy(), - 'global_plugin_options': { - 'test_option': 'foobar', - 'baz': None, - 'empty_global': True - }, } self.plugin = Plugin(self.commons) - self.plugin.opt_names = ['baz', 'empty'] - self.plugin.opt_parms = [{'enabled': False}, {'enabled': None}] + self.plugin.opt_names = ['baz', 'empty', 'test_option'] + self.plugin.opt_parms = [ + {'enabled': False}, {'enabled': None}, {'enabled': 'foobar'} + ] def test_simple_lookup(self): self.assertEquals(self.plugin.get_option('test_option'), 'foobar') - def test_multi_lookup(self): - self.assertEquals(self.plugin.get_option(('not_there', 'test_option')), 'foobar') - def test_cascade(self): self.assertEquals(self.plugin.get_option(('baz')), False) - def test_none_should_cascade(self): - self.assertEquals(self.plugin.get_option(('empty', 'empty_global')), True) if __name__ == "__main__": unittest.main() -- 2.17.2