Blob Blame History Raw
From 9db825247452d54152f1c866b6b90f897be32f15 Mon Sep 17 00:00:00 2001
From: "Bryn M. Reeves" <bmr@redhat.com>
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 <bmr@redhat.com>
---
 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