From b1d41bcf41002f656eaa877b756273c348d88542 Mon Sep 17 00:00:00 2001 From: nicolargo Date: Thu, 6 Oct 2016 21:43:21 +0200 Subject: [PATCH] Workarround for the issue931. Not solve the issue but implement correctly the --disable- option for all plugins --- glances/plugins/glances_amps.py | 1 + glances/plugins/glances_batpercent.py | 1 + glances/plugins/glances_cpu.py | 1 + glances/plugins/glances_diskio.py | 1 + glances/plugins/glances_docker.py | 4 ++++ glances/plugins/glances_folders.py | 2 ++ glances/plugins/glances_fs.py | 1 + glances/plugins/glances_hddtemp.py | 2 ++ glances/plugins/glances_ip.py | 1 + glances/plugins/glances_irq.py | 1 + glances/plugins/glances_load.py | 1 + glances/plugins/glances_mem.py | 1 + glances/plugins/glances_memswap.py | 1 + glances/plugins/glances_network.py | 1 + glances/plugins/glances_percpu.py | 2 ++ glances/plugins/glances_plugin.py | 20 ++++++++++++++++++++ glances/plugins/glances_psutilversion.py | 2 ++ glances/plugins/glances_quicklook.py | 1 + glances/plugins/glances_raid.py | 1 + glances/plugins/glances_sensors.py | 1 + glances/plugins/glances_system.py | 2 ++ glances/plugins/glances_uptime.py | 2 ++ 22 files changed, 50 insertions(+) diff --git a/glances/plugins/glances_amps.py b/glances/plugins/glances_amps.py index 4d8748eb..5a8583d5 100644 --- a/glances/plugins/glances_amps.py +++ b/glances/plugins/glances_amps.py @@ -48,6 +48,7 @@ class Plugin(GlancesPlugin): """Reset/init the stats.""" self.stats = [] + @GlancesPlugin._check_decorator @GlancesPlugin._log_result_decorator def update(self): """Update the AMP list.""" diff --git a/glances/plugins/glances_batpercent.py b/glances/plugins/glances_batpercent.py index 0d33a30c..3083d99d 100644 --- a/glances/plugins/glances_batpercent.py +++ b/glances/plugins/glances_batpercent.py @@ -54,6 +54,7 @@ class Plugin(GlancesPlugin): """Reset/init the stats.""" self.stats = [] + @GlancesPlugin._check_decorator @GlancesPlugin._log_result_decorator def update(self): """Update battery capacity stats using the input method.""" diff --git a/glances/plugins/glances_cpu.py b/glances/plugins/glances_cpu.py index 8986caea..c25e4416 100644 --- a/glances/plugins/glances_cpu.py +++ b/glances/plugins/glances_cpu.py @@ -84,6 +84,7 @@ class Plugin(GlancesPlugin): """Reset/init the stats.""" self.stats = {} + @GlancesPlugin._check_decorator @GlancesPlugin._log_result_decorator def update(self): """Update CPU stats using the input method.""" diff --git a/glances/plugins/glances_diskio.py b/glances/plugins/glances_diskio.py index 4947c3ac..8e3376eb 100644 --- a/glances/plugins/glances_diskio.py +++ b/glances/plugins/glances_diskio.py @@ -65,6 +65,7 @@ class Plugin(GlancesPlugin): """Reset/init the stats.""" self.stats = [] + @GlancesPlugin._check_decorator @GlancesPlugin._log_result_decorator def update(self): """Update disk I/O stats using the input method.""" diff --git a/glances/plugins/glances_docker.py b/glances/plugins/glances_docker.py index d0df6689..7df04414 100644 --- a/glances/plugins/glances_docker.py +++ b/glances/plugins/glances_docker.py @@ -66,6 +66,9 @@ class Plugin(GlancesPlugin): # value: instance of ThreadDockerGrabber self.thread_list = {} + # Init the stats + self.reset() + def exit(self): """Overwrite the exit method to close threads""" for t in itervalues(self.thread_list): @@ -141,6 +144,7 @@ class Plugin(GlancesPlugin): """Reset/init the stats.""" self.stats = {} + @GlancesPlugin._check_decorator @GlancesPlugin._log_result_decorator def update(self): """Update Docker stats using the input method.""" diff --git a/glances/plugins/glances_folders.py b/glances/plugins/glances_folders.py index 8e8f947d..d19f232a 100644 --- a/glances/plugins/glances_folders.py +++ b/glances/plugins/glances_folders.py @@ -52,6 +52,8 @@ class Plugin(GlancesPlugin): """Load the foldered list from the config file, if it exists.""" self.glances_folders = glancesFolderList(config) + @GlancesPlugin._check_decorator + @GlancesPlugin._log_result_decorator def update(self): """Update the foldered list.""" # Reset the list diff --git a/glances/plugins/glances_fs.py b/glances/plugins/glances_fs.py index e5128555..593ecab9 100644 --- a/glances/plugins/glances_fs.py +++ b/glances/plugins/glances_fs.py @@ -89,6 +89,7 @@ class Plugin(GlancesPlugin): """Reset/init the stats.""" self.stats = [] + @GlancesPlugin._check_decorator @GlancesPlugin._log_result_decorator def update(self): """Update the FS stats using the input method.""" diff --git a/glances/plugins/glances_hddtemp.py b/glances/plugins/glances_hddtemp.py index 07813f3f..04409fd1 100644 --- a/glances/plugins/glances_hddtemp.py +++ b/glances/plugins/glances_hddtemp.py @@ -52,6 +52,8 @@ class Plugin(GlancesPlugin): """Reset/init the stats.""" self.stats = [] + @GlancesPlugin._check_decorator + @GlancesPlugin._log_result_decorator def update(self): """Update HDD stats using the input method.""" # Reset stats diff --git a/glances/plugins/glances_ip.py b/glances/plugins/glances_ip.py index bdacf867..c859b8b4 100644 --- a/glances/plugins/glances_ip.py +++ b/glances/plugins/glances_ip.py @@ -75,6 +75,7 @@ class Plugin(GlancesPlugin): """Reset/init the stats.""" self.stats = {} + @GlancesPlugin._check_decorator @GlancesPlugin._log_result_decorator def update(self): """Update IP stats using the input method. diff --git a/glances/plugins/glances_irq.py b/glances/plugins/glances_irq.py index e1c55b8b..ce4fad71 100644 --- a/glances/plugins/glances_irq.py +++ b/glances/plugins/glances_irq.py @@ -52,6 +52,7 @@ class Plugin(GlancesPlugin): """Reset/init the stats.""" self.stats = [] + @GlancesPlugin._check_decorator @GlancesPlugin._log_result_decorator def update(self): """Update the IRQ stats""" diff --git a/glances/plugins/glances_load.py b/glances/plugins/glances_load.py index 9333b30d..374b3326 100644 --- a/glances/plugins/glances_load.py +++ b/glances/plugins/glances_load.py @@ -74,6 +74,7 @@ class Plugin(GlancesPlugin): """Reset/init the stats.""" self.stats = {} + @GlancesPlugin._check_decorator @GlancesPlugin._log_result_decorator def update(self): """Update load stats.""" diff --git a/glances/plugins/glances_mem.py b/glances/plugins/glances_mem.py index acaeffb6..bc2be1eb 100644 --- a/glances/plugins/glances_mem.py +++ b/glances/plugins/glances_mem.py @@ -76,6 +76,7 @@ class Plugin(GlancesPlugin): """Reset/init the stats.""" self.stats = {} + @GlancesPlugin._check_decorator @GlancesPlugin._log_result_decorator def update(self): """Update RAM memory stats using the input method.""" diff --git a/glances/plugins/glances_memswap.py b/glances/plugins/glances_memswap.py index 58ce847f..2ae64fa6 100644 --- a/glances/plugins/glances_memswap.py +++ b/glances/plugins/glances_memswap.py @@ -64,6 +64,7 @@ class Plugin(GlancesPlugin): """Reset/init the stats.""" self.stats = {} + @GlancesPlugin._check_decorator @GlancesPlugin._log_result_decorator def update(self): """Update swap memory stats using the input method.""" diff --git a/glances/plugins/glances_network.py b/glances/plugins/glances_network.py index f2a1ef34..f69ee5bb 100644 --- a/glances/plugins/glances_network.py +++ b/glances/plugins/glances_network.py @@ -72,6 +72,7 @@ class Plugin(GlancesPlugin): """Reset/init the stats.""" self.stats = [] + @GlancesPlugin._check_decorator @GlancesPlugin._log_result_decorator def update(self): """Update network stats using the input method. diff --git a/glances/plugins/glances_percpu.py b/glances/plugins/glances_percpu.py index 3b2dbb3d..64500b22 100644 --- a/glances/plugins/glances_percpu.py +++ b/glances/plugins/glances_percpu.py @@ -49,6 +49,8 @@ class Plugin(GlancesPlugin): """Reset/init the stats.""" self.stats = [] + @GlancesPlugin._check_decorator + @GlancesPlugin._log_result_decorator def update(self): """Update per-CPU stats using the input method.""" # Reset stats diff --git a/glances/plugins/glances_plugin.py b/glances/plugins/glances_plugin.py index 87b6e99f..45b559e9 100644 --- a/glances/plugins/glances_plugin.py +++ b/glances/plugins/glances_plugin.py @@ -86,6 +86,15 @@ class GlancesPlugin(object): """Return the key of the list.""" return None + def is_enable(self): + """Return true if plugin is enable""" + try: + d = getattr(self.args, 'disable_' + self.plugin_name) + except AttributeError: + return True + else: + return d is False + def _json_dumps(self, d): """Return the object 'd' in a JSON format Manage the issue #815 for Windows OS""" @@ -746,6 +755,16 @@ class GlancesPlugin(object): value, decimal=decimal_precision, symbol=symbol) return '{!s}'.format(number) + def _check_decorator(fct): + """Check if the plugin is enabled.""" + def wrapper(self, *args, **kw): + if self.is_enable(): + ret = fct(self, *args, **kw) + else: + ret = self.stats + return ret + return wrapper + def _log_result_decorator(fct): """Log (DEBUG) the result of the function fct.""" def wrapper(*args, **kw): @@ -758,4 +777,5 @@ class GlancesPlugin(object): return wrapper # Mandatory to call the decorator in childs' classes + _check_decorator = staticmethod(_check_decorator) _log_result_decorator = staticmethod(_log_result_decorator) diff --git a/glances/plugins/glances_psutilversion.py b/glances/plugins/glances_psutilversion.py index e660f284..1c6f367f 100644 --- a/glances/plugins/glances_psutilversion.py +++ b/glances/plugins/glances_psutilversion.py @@ -37,6 +37,8 @@ class Plugin(GlancesPlugin): """Reset/init the stats.""" self.stats = None + @GlancesPlugin._check_decorator + @GlancesPlugin._log_result_decorator def update(self): """Update the stats.""" # Reset stats diff --git a/glances/plugins/glances_quicklook.py b/glances/plugins/glances_quicklook.py index 407fd74b..58efc746 100644 --- a/glances/plugins/glances_quicklook.py +++ b/glances/plugins/glances_quicklook.py @@ -58,6 +58,7 @@ class Plugin(GlancesPlugin): """Reset/init the stats.""" self.stats = {} + @GlancesPlugin._check_decorator @GlancesPlugin._log_result_decorator def update(self): """Update quicklook stats using the input method.""" diff --git a/glances/plugins/glances_raid.py b/glances/plugins/glances_raid.py index d69ed08f..a22d8978 100644 --- a/glances/plugins/glances_raid.py +++ b/glances/plugins/glances_raid.py @@ -51,6 +51,7 @@ class Plugin(GlancesPlugin): """Reset/init the stats.""" self.stats = {} + @GlancesPlugin._check_decorator @GlancesPlugin._log_result_decorator def update(self): """Update RAID stats using the input method.""" diff --git a/glances/plugins/glances_sensors.py b/glances/plugins/glances_sensors.py index 27619eab..cc8f993e 100644 --- a/glances/plugins/glances_sensors.py +++ b/glances/plugins/glances_sensors.py @@ -78,6 +78,7 @@ class Plugin(GlancesPlugin): """Reset/init the stats.""" self.stats = [] + @GlancesPlugin._check_decorator @GlancesPlugin._log_result_decorator def update(self): """Update sensors stats using the input method.""" diff --git a/glances/plugins/glances_system.py b/glances/plugins/glances_system.py index b12f9524..684851cb 100644 --- a/glances/plugins/glances_system.py +++ b/glances/plugins/glances_system.py @@ -96,6 +96,8 @@ class Plugin(GlancesPlugin): """Reset/init the stats.""" self.stats = {} + @GlancesPlugin._check_decorator + @GlancesPlugin._log_result_decorator def update(self): """Update the host/system info using the input method. diff --git a/glances/plugins/glances_uptime.py b/glances/plugins/glances_uptime.py index c76dcf6f..25217e87 100644 --- a/glances/plugins/glances_uptime.py +++ b/glances/plugins/glances_uptime.py @@ -53,6 +53,8 @@ class Plugin(GlancesPlugin): """Reset/init the stats.""" self.stats = {} + @GlancesPlugin._check_decorator + @GlancesPlugin._log_result_decorator def update(self): """Update uptime stat using the input method.""" # Reset stats -- GitLab