mirror of https://github.com/nicolargo/glances.git
Code refactoring - Rename plugin class to <Plugin name>Plugin instead of PluginModel #3169
This commit is contained in:
parent
1e92365c5e
commit
03f23a582d
|
|
@ -6,7 +6,7 @@ This is the Glances plugins folder.
|
|||
|
||||
A Glances plugin is a Python module hosted in a folder.
|
||||
|
||||
It should implement a Class named PluginModel (inherited from GlancesPluginModel).
|
||||
It should implement a Class named <plugin name>Plugin inherited from GlancesPluginModel (example for foo plugin: FooPlugin).
|
||||
|
||||
This class should be based on the MVC model.
|
||||
- model: where the stats are updated (update method)
|
||||
|
|
|
|||
|
|
@ -93,7 +93,7 @@ fields_description = {
|
|||
}
|
||||
|
||||
|
||||
class PluginModel(GlancesPluginModel):
|
||||
class AlertPlugin(GlancesPluginModel):
|
||||
"""Glances alert plugin.
|
||||
|
||||
Only for display.
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@ fields_description = {
|
|||
}
|
||||
|
||||
|
||||
class PluginModel(GlancesPluginModel):
|
||||
class AmpsPlugin(GlancesPluginModel):
|
||||
"""Glances AMPs plugin."""
|
||||
|
||||
def __init__(self, args=None, config=None):
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ else:
|
|||
import_error_tag = False
|
||||
|
||||
|
||||
class PluginModel(GlancesPluginModel):
|
||||
class CloudPlugin(GlancesPluginModel):
|
||||
"""Glances' cloud plugin.
|
||||
|
||||
The goal of this plugin is to retrieve additional information
|
||||
|
|
|
|||
|
|
@ -68,7 +68,7 @@ fields_description = {
|
|||
# 'y_unit': 'bit/s'}]
|
||||
|
||||
|
||||
class PluginModel(GlancesPluginModel):
|
||||
class ConnectionsPlugin(GlancesPluginModel):
|
||||
"""Glances connections plugin.
|
||||
|
||||
stats is a dict
|
||||
|
|
|
|||
|
|
@ -121,7 +121,7 @@ sort_for_human = {
|
|||
}
|
||||
|
||||
|
||||
class PluginModel(GlancesPluginModel):
|
||||
class ContainersPlugin(GlancesPluginModel):
|
||||
"""Glances Docker plugin.
|
||||
|
||||
stats is a dict: {'version': {...}, 'containers': [{}, {}]}
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@ physical cores multiplied by the number of threads that can run on each core.',
|
|||
}
|
||||
|
||||
|
||||
class PluginModel(GlancesPluginModel):
|
||||
class CorePlugin(GlancesPluginModel):
|
||||
"""Glances CPU core plugin.
|
||||
|
||||
Get stats about CPU core number.
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ import psutil
|
|||
|
||||
from glances.cpu_percent import cpu_percent
|
||||
from glances.globals import LINUX, SUNOS, WINDOWS, iterkeys
|
||||
from glances.plugins.core import PluginModel as CorePluginModel
|
||||
from glances.plugins.core import CorePlugin
|
||||
from glances.plugins.plugin.model import GlancesPluginModel
|
||||
|
||||
# Fields description
|
||||
|
|
@ -134,7 +134,7 @@ items_history_list = [
|
|||
]
|
||||
|
||||
|
||||
class PluginModel(GlancesPluginModel):
|
||||
class CpuPlugin(GlancesPluginModel):
|
||||
"""Glances CPU plugin.
|
||||
|
||||
'stats' is a dictionary that contains the system-wide CPU utilization as a
|
||||
|
|
@ -150,9 +150,9 @@ class PluginModel(GlancesPluginModel):
|
|||
# We want to display the stat in the curse interface
|
||||
self.display_curse = True
|
||||
|
||||
# Call CorePluginModel in order to display the core number
|
||||
# Call CorePlugin in order to display the core number
|
||||
try:
|
||||
self.nb_log_core = CorePluginModel(args=self.args).update()["log"]
|
||||
self.nb_log_core = CorePlugin(args=self.args).update()["log"]
|
||||
except Exception:
|
||||
self.nb_log_core = 1
|
||||
|
||||
|
|
|
|||
|
|
@ -51,7 +51,7 @@ items_history_list = [
|
|||
]
|
||||
|
||||
|
||||
class PluginModel(GlancesPluginModel):
|
||||
class DiskioPlugin(GlancesPluginModel):
|
||||
"""Glances disks I/O plugin.
|
||||
|
||||
stats is a list
|
||||
|
|
|
|||
|
|
@ -48,7 +48,7 @@ fields_description = {
|
|||
}
|
||||
|
||||
|
||||
class PluginModel(GlancesPluginModel):
|
||||
class FoldersPlugin(GlancesPluginModel):
|
||||
"""Glances folder plugin."""
|
||||
|
||||
def __init__(self, args=None, config=None):
|
||||
|
|
|
|||
|
|
@ -88,7 +88,7 @@ snmp_oid['esxi'] = snmp_oid['windows']
|
|||
items_history_list = [{'name': 'percent', 'description': 'File system usage in percent', 'y_unit': '%'}]
|
||||
|
||||
|
||||
class PluginModel(GlancesPluginModel):
|
||||
class FsPlugin(GlancesPluginModel):
|
||||
"""Glances file system plugin.
|
||||
|
||||
stats is a list
|
||||
|
|
|
|||
|
|
@ -58,7 +58,7 @@ items_history_list = [
|
|||
]
|
||||
|
||||
|
||||
class PluginModel(GlancesPluginModel):
|
||||
class GpuPlugin(GlancesPluginModel):
|
||||
"""Glances GPU plugin.
|
||||
|
||||
stats is a list of dictionaries with one entry per GPU
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ from glances.globals import iteritems
|
|||
from glances.plugins.plugin.model import GlancesPluginModel
|
||||
|
||||
|
||||
class PluginModel(GlancesPluginModel):
|
||||
class HelpPlugin(GlancesPluginModel):
|
||||
"""Glances help plugin."""
|
||||
|
||||
def __init__(self, args=None, config=None):
|
||||
|
|
|
|||
|
|
@ -62,7 +62,7 @@ fields_description = {
|
|||
}
|
||||
|
||||
|
||||
class PluginModel(GlancesPluginModel):
|
||||
class IpPlugin(GlancesPluginModel):
|
||||
"""Glances IP Plugin.
|
||||
|
||||
stats is a dict
|
||||
|
|
|
|||
|
|
@ -33,7 +33,7 @@ fields_description = {
|
|||
}
|
||||
|
||||
|
||||
class PluginModel(GlancesPluginModel):
|
||||
class IrqPlugin(GlancesPluginModel):
|
||||
"""Glances IRQ plugin.
|
||||
|
||||
stats is a list
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ import psutil
|
|||
|
||||
from glances.globals import iteritems
|
||||
from glances.logger import logger
|
||||
from glances.plugins.core import PluginModel as CorePluginModel
|
||||
from glances.plugins.core import CorePlugin
|
||||
from glances.plugins.plugin.model import GlancesPluginModel
|
||||
|
||||
# Fields description
|
||||
|
|
@ -63,7 +63,7 @@ items_history_list = [
|
|||
nb_log_core = 1
|
||||
nb_phys_core = 1
|
||||
try:
|
||||
core = CorePluginModel().update()
|
||||
core = CorePlugin().update()
|
||||
except Exception as e:
|
||||
logger.warning(f'Error: Can not retrieve the CPU core number (set it to 1) ({e})')
|
||||
else:
|
||||
|
|
@ -73,7 +73,7 @@ else:
|
|||
nb_phys_core = core['phys']
|
||||
|
||||
|
||||
class PluginModel(GlancesPluginModel):
|
||||
class LoadPlugin(GlancesPluginModel):
|
||||
"""Glances load plugin.
|
||||
|
||||
stats is a dict
|
||||
|
|
|
|||
|
|
@ -104,7 +104,7 @@ snmp_oid = {
|
|||
items_history_list = [{'name': 'percent', 'description': 'RAM memory usage', 'y_unit': '%'}]
|
||||
|
||||
|
||||
class PluginModel(GlancesPluginModel):
|
||||
class MemPlugin(GlancesPluginModel):
|
||||
"""Glances' memory plugin.
|
||||
|
||||
stats is a dict
|
||||
|
|
|
|||
|
|
@ -51,7 +51,7 @@ snmp_oid = {
|
|||
items_history_list = [{'name': 'percent', 'description': 'Swap memory usage', 'y_unit': '%'}]
|
||||
|
||||
|
||||
class PluginModel(GlancesPluginModel):
|
||||
class MemswapPlugin(GlancesPluginModel):
|
||||
"""Glances swap memory plugin.
|
||||
|
||||
stats is a dict
|
||||
|
|
|
|||
|
|
@ -62,7 +62,7 @@ items_history_list = [
|
|||
]
|
||||
|
||||
|
||||
class PluginModel(GlancesPluginModel):
|
||||
class NetworkPlugin(GlancesPluginModel):
|
||||
"""Glances network plugin.
|
||||
|
||||
stats is a list
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@ fields_description = {
|
|||
}
|
||||
|
||||
|
||||
class PluginModel(GlancesPluginModel):
|
||||
class NowPlugin(GlancesPluginModel):
|
||||
"""Plugin to get the current date/time.
|
||||
|
||||
stats is a dict:
|
||||
|
|
|
|||
|
|
@ -94,7 +94,7 @@ items_history_list = [
|
|||
]
|
||||
|
||||
|
||||
class PluginModel(GlancesPluginModel):
|
||||
class PercpuPlugin(GlancesPluginModel):
|
||||
"""Glances per-CPU plugin.
|
||||
|
||||
'stats' is a list of dictionaries that contain the utilization percentages
|
||||
|
|
|
|||
|
|
@ -67,7 +67,7 @@ fields_description = {
|
|||
}
|
||||
|
||||
|
||||
class PluginModel(GlancesPluginModel):
|
||||
class PortsPlugin(GlancesPluginModel):
|
||||
"""Glances ports scanner plugin."""
|
||||
|
||||
def __init__(self, args=None, config=None):
|
||||
|
|
|
|||
|
|
@ -49,7 +49,7 @@ items_history_list = [
|
|||
]
|
||||
|
||||
|
||||
class PluginModel(GlancesPluginModel):
|
||||
class ProcesscountPlugin(GlancesPluginModel):
|
||||
"""Glances process count plugin.
|
||||
|
||||
stats is a list
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ import os
|
|||
from glances.globals import WINDOWS, key_exist_value_not_none_not_v, replace_special_chars
|
||||
from glances.logger import logger
|
||||
from glances.outputs.glances_unicode import unicode_message
|
||||
from glances.plugins.core import PluginModel as CorePluginModel
|
||||
from glances.plugins.core import CorePlugin
|
||||
from glances.plugins.plugin.model import GlancesPluginModel
|
||||
from glances.processes import glances_processes, sort_stats
|
||||
|
||||
|
|
@ -111,7 +111,7 @@ def split_cmdline(bare_process_name, cmdline):
|
|||
return path, cmd, arguments
|
||||
|
||||
|
||||
class PluginModel(GlancesPluginModel):
|
||||
class ProcesslistPlugin(GlancesPluginModel):
|
||||
"""Glances' processes plugin.
|
||||
|
||||
stats is a list
|
||||
|
|
@ -179,9 +179,9 @@ class PluginModel(GlancesPluginModel):
|
|||
# Trying to display proc time
|
||||
self.tag_proc_time = True
|
||||
|
||||
# Call CorePluginModel to get the core number (needed when not in IRIX mode / Solaris mode)
|
||||
# Call CorePlugin to get the core number (needed when not in IRIX mode / Solaris mode)
|
||||
try:
|
||||
self.nb_log_core = CorePluginModel(args=self.args).update()["log"]
|
||||
self.nb_log_core = CorePlugin(args=self.args).update()["log"]
|
||||
except Exception:
|
||||
self.nb_log_core = 0
|
||||
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@
|
|||
|
||||
import copy
|
||||
|
||||
from glances.plugins.processlist import PluginModel as GlancesProcessListPluginModel
|
||||
from glances.plugins.processlist import ProcesslistPlugin
|
||||
from glances.processes import glances_processes
|
||||
|
||||
# Fields description
|
||||
|
|
@ -75,7 +75,7 @@ fields_description = {
|
|||
}
|
||||
|
||||
|
||||
class PluginModel(GlancesProcessListPluginModel):
|
||||
class ProgramlistPlugin(ProcesslistPlugin):
|
||||
"""Glances' processes plugin.
|
||||
|
||||
stats is a list
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ from glances import psutil_version_info
|
|||
from glances.plugins.plugin.model import GlancesPluginModel
|
||||
|
||||
|
||||
class PluginModel(GlancesPluginModel):
|
||||
class PsutilversionPlugin(GlancesPluginModel):
|
||||
"""Get the Psutil version.
|
||||
|
||||
stats is a string
|
||||
|
|
|
|||
|
|
@ -72,7 +72,7 @@ items_history_list = [
|
|||
]
|
||||
|
||||
|
||||
class PluginModel(GlancesPluginModel):
|
||||
class QuicklookPlugin(GlancesPluginModel):
|
||||
"""Glances quicklook plugin.
|
||||
|
||||
'stats' is a dictionary.
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@ else:
|
|||
import_error_tag = False
|
||||
|
||||
|
||||
class PluginModel(GlancesPluginModel):
|
||||
class RaidPlugin(GlancesPluginModel):
|
||||
"""Glances RAID plugin.
|
||||
|
||||
stats is a dict (see pymdstat documentation)
|
||||
|
|
|
|||
|
|
@ -18,8 +18,8 @@ from glances.globals import natural_keys, to_fahrenheit
|
|||
from glances.logger import logger
|
||||
from glances.outputs.glances_unicode import unicode_message
|
||||
from glances.plugins.plugin.model import GlancesPluginModel
|
||||
from glances.plugins.sensors.sensor.glances_batpercent import PluginModel as BatPercentPluginModel
|
||||
from glances.plugins.sensors.sensor.glances_hddtemp import PluginModel as HddTempPluginModel
|
||||
from glances.plugins.sensors.sensor.glances_batpercent import BatpercentPlugin
|
||||
from glances.plugins.sensors.sensor.glances_hddtemp import HddtempPlugin
|
||||
from glances.timer import Counter
|
||||
|
||||
# Define all kind of sensors available in Glances
|
||||
|
|
@ -66,7 +66,7 @@ fields_description = {
|
|||
}
|
||||
|
||||
|
||||
class PluginModel(GlancesPluginModel):
|
||||
class SensorsPlugin(GlancesPluginModel):
|
||||
"""Glances sensors plugin.
|
||||
|
||||
The stats list includes both sensors and hard disks stats, if any.
|
||||
|
|
@ -90,12 +90,12 @@ class PluginModel(GlancesPluginModel):
|
|||
|
||||
# Instance for the HDDTemp Plugin in order to display the hard disks temperatures
|
||||
start_duration.reset()
|
||||
hddtemp_plugin = HddTempPluginModel(args=args, config=config)
|
||||
hddtemp_plugin = HddtempPlugin(args=args, config=config)
|
||||
logger.debug(f"HDDTemp sensor plugin init duration: {start_duration.get()} seconds")
|
||||
|
||||
# Instance for the BatPercent in order to display the batteries capacities
|
||||
start_duration.reset()
|
||||
batpercent_plugin = BatPercentPluginModel(args=args, config=config)
|
||||
batpercent_plugin = BatpercentPlugin(args=args, config=config)
|
||||
logger.debug(f"Battery sensor plugin init duration: {start_duration.get()} seconds")
|
||||
|
||||
self.sensors_grab_map = {}
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@ except Exception as e:
|
|||
psutil_tag = False
|
||||
|
||||
|
||||
class PluginModel(GlancesPluginModel):
|
||||
class BatpercentPlugin(GlancesPluginModel):
|
||||
"""Glances battery capacity plugin.
|
||||
|
||||
stats is a list
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ from glances.logger import logger
|
|||
from glances.plugins.plugin.model import GlancesPluginModel
|
||||
|
||||
|
||||
class PluginModel(GlancesPluginModel):
|
||||
class HddtempPlugin(GlancesPluginModel):
|
||||
"""Glances HDD temperature sensors plugin.
|
||||
|
||||
stats is a list
|
||||
|
|
|
|||
|
|
@ -118,7 +118,7 @@ def get_smart_data():
|
|||
return stats
|
||||
|
||||
|
||||
class PluginModel(GlancesPluginModel):
|
||||
class SmartPlugin(GlancesPluginModel):
|
||||
"""Glances' HDD SMART plugin."""
|
||||
|
||||
def __init__(self, args=None, config=None, stats_init_value=[]):
|
||||
|
|
|
|||
|
|
@ -108,7 +108,7 @@ def _linux_os_release():
|
|||
return pretty_name
|
||||
|
||||
|
||||
class PluginModel(GlancesPluginModel):
|
||||
class SystemPlugin(GlancesPluginModel):
|
||||
"""Glances' host/system plugin.
|
||||
|
||||
stats is a dict
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ from glances.plugins.plugin.model import GlancesPluginModel
|
|||
snmp_oid = {'_uptime': '1.3.6.1.2.1.1.3.0'}
|
||||
|
||||
|
||||
class PluginModel(GlancesPluginModel):
|
||||
class UptimePlugin(GlancesPluginModel):
|
||||
"""Glances uptime plugin.
|
||||
|
||||
stats is date (string)
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ from glances import __version__ as glances_version
|
|||
from glances.plugins.plugin.model import GlancesPluginModel
|
||||
|
||||
|
||||
class PluginModel(GlancesPluginModel):
|
||||
class VersionPlugin(GlancesPluginModel):
|
||||
"""Get the Glances versions.
|
||||
|
||||
stats is a string
|
||||
|
|
|
|||
|
|
@ -92,7 +92,7 @@ sort_for_human = {
|
|||
}
|
||||
|
||||
|
||||
class PluginModel(GlancesPluginModel):
|
||||
class VmsPlugin(GlancesPluginModel):
|
||||
"""Glances Vm plugin.
|
||||
|
||||
stats is a dict: {'version': '', 'vms': [{}, {}]}
|
||||
|
|
|
|||
|
|
@ -49,7 +49,7 @@ fields_description = {
|
|||
}
|
||||
|
||||
|
||||
class PluginModel(GlancesPluginModel):
|
||||
class WifiPlugin(GlancesPluginModel):
|
||||
"""Glances Wifi plugin.
|
||||
|
||||
Get stats of the current Wifi hotspots.
|
||||
|
|
|
|||
|
|
@ -99,7 +99,19 @@ class GlancesStats:
|
|||
# Import the plugin
|
||||
plugin = import_module('glances.plugins.' + plugin_path)
|
||||
# Init and add the plugin to the dictionary
|
||||
self._plugins[plugin_path] = plugin.PluginModel(args=args, config=config)
|
||||
if hasattr(plugin, 'PluginModel'):
|
||||
# Old fashion way to load the plugin (before Glances 5.0)
|
||||
# Should be removed in Glances 5.0 - see #3170
|
||||
self._plugins[plugin_path] = getattr(plugin, 'PluginModel')(args=args, config=config)
|
||||
logger.warning(
|
||||
f'The {plugin_path} plugin class name is "PluginModel" and it is deprecated, \
|
||||
please rename it to "{plugin_path.capitalize()}Plugin"'
|
||||
)
|
||||
elif hasattr(plugin, plugin_path.capitalize() + 'Plugin'):
|
||||
# New fashion way to load the plugin (after Glances 5.0)
|
||||
self._plugins[plugin_path] = getattr(plugin, plugin_path.capitalize() + 'Plugin')(
|
||||
args=args, config=config
|
||||
)
|
||||
except Exception as e:
|
||||
# If a plugin can not be loaded, display a critical message
|
||||
# on the console but do not crash
|
||||
|
|
@ -145,7 +157,8 @@ class GlancesStats:
|
|||
for fil in pathlib.Path(path).glob('*.py'):
|
||||
if fil.is_file():
|
||||
with open(fil) as fd:
|
||||
if 'PluginModel' in fd.read():
|
||||
# The first test should be removed in Glances 5.x - see #3170
|
||||
if 'PluginModel' in fd.read() or plugin.capitalize() + 'Plugin' in fd.read():
|
||||
_plugin_list.append(plugin)
|
||||
break
|
||||
|
||||
|
|
|
|||
|
|
@ -45,7 +45,14 @@ class GlancesStatsClient(GlancesStats):
|
|||
# for example, the file glances_xxx.py
|
||||
# generate self._plugins_list["xxx"] = ...
|
||||
logger.debug(f"Server uses {item} plugin")
|
||||
self._plugins[item] = plugin.PluginModel(args=self.args)
|
||||
if hasattr(plugin, 'PluginModel'):
|
||||
# Old fashion way to load the plugin (before Glances 5.0)
|
||||
# Should be removed in Glances 5.0 - see #3170
|
||||
self._plugins[item] = getattr(plugin, 'PluginModel')(args=self.args)
|
||||
elif hasattr(plugin, item.capitalize() + 'Plugin'):
|
||||
# New fashion way to load the plugin (after Glances 5.0)
|
||||
self._plugins[item] = getattr(plugin, item.capitalize() + 'Plugin')(args=self.args)
|
||||
|
||||
# Restoring system path
|
||||
sys.path = sys_path
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue