diff options
Diffstat (limited to 'glances/plugins/plugin/model.py')
-rw-r--r-- | glances/plugins/plugin/model.py | 52 |
1 files changed, 25 insertions, 27 deletions
diff --git a/glances/plugins/plugin/model.py b/glances/plugins/plugin/model.py index d6b84e09..8857fd11 100644 --- a/glances/plugins/plugin/model.py +++ b/glances/plugins/plugin/model.py @@ -2,7 +2,7 @@ # # This file is part of Glances. # -# SPDX-FileCopyrightText: 2022 Nicolas Hennion <nicolas@nicolargo.com> +# SPDX-FileCopyrightText: 2024 Nicolas Hennion <nicolas@nicolargo.com> # # SPDX-License-Identifier: LGPL-3.0-only # @@ -276,7 +276,7 @@ class GlancesPluginModel(object): if raw_history is None or len(raw_history) < nb: return None last_nb = [v[1] for v in raw_history] - return mean(last_nb[nb // 2:]) - mean(last_nb[:nb // 2]) + return mean(last_nb[nb // 2 :]) - mean(last_nb[: nb // 2]) @property def input_method(self): @@ -350,8 +350,8 @@ class GlancesPluginModel(object): ret = {} if bulk: # Bulk request - snmp_result = snmp_client.getbulk_by_oid(0, 10, itervalues(*snmp_oid)) - + snmp_result = snmp_client.getbulk_by_oid(0, 10, *list(itervalues(snmp_oid))) + logger.info(snmp_result) if len(snmp_oid) == 1: # Bulk command for only one OID # Note: key is the item indexed but the OID result @@ -379,7 +379,7 @@ class GlancesPluginModel(object): index += 1 else: # Simple get request - snmp_result = snmp_client.get_by_oid(itervalues(*snmp_oid)) + snmp_result = snmp_client.get_by_oid(*list(itervalues(snmp_oid))) # Build the internal dict with the SNMP result for key in iterkeys(snmp_oid): @@ -400,7 +400,7 @@ class GlancesPluginModel(object): def get_stats(self): """Return the stats object in JSON format.""" - return json_dumps(self.stats) + return json_dumps(self.get_raw()) def get_json(self): """Return the stats object in JSON format.""" @@ -411,14 +411,14 @@ class GlancesPluginModel(object): Stats should be a list of dict (processlist, network...) """ - return dictlist(self.stats, item) + return dictlist(self.get_raw(), item) def get_stats_item(self, item): """Return the stats object for a specific item in JSON format. Stats should be a list of dict (processlist, network...) """ - return json_dumps_dictlist(self.stats, item) + return json_dumps_dictlist(self.get_raw(), item) def get_raw_stats_value(self, item, value): """Return the stats object for a specific item=value. @@ -426,13 +426,13 @@ class GlancesPluginModel(object): Return None if the item=value does not exist Return None if the item is not a list of dict """ - if not isinstance(self.stats, list): + if not isinstance(self.get_raw(), list): return None else: if (not isinstance(value, int) and not isinstance(value, float)) and value.isdigit(): value = int(value) try: - return {value: [i for i in self.stats if i[item] == value]} + return {value: [i for i in self.get_raw() if i[item] == value]} except (KeyError, ValueError) as e: logger.error("Cannot get item({})=value({}) ({})".format(item, value, e)) return None @@ -521,11 +521,13 @@ class GlancesPluginModel(object): 'additional': False, 'splittable': False, 'hidden': False, - '_zero': self.views[i[self.get_key()]][key]['_zero'] - if i[self.get_key()] in self.views - and key in self.views[i[self.get_key()]] - and 'zero' in self.views[i[self.get_key()]][key] - else True, + '_zero': ( + self.views[i[self.get_key()]][key]['_zero'] + if i[self.get_key()] in self.views + and key in self.views[i[self.get_key()]] + and 'zero' in self.views[i[self.get_key()]][key] + else True + ), } ret[i[self.get_key()]][key] = value elif isinstance(self.get_raw(), dict) and self.get_raw() is not None: @@ -623,7 +625,7 @@ class GlancesPluginModel(object): """Return the plugin refresh time""" ret = self.get_limits(item='refresh') if ret is None: - ret = self.args.time + ret = self.args.time if hasattr(self.args, 'time') else 2 return ret def get_refresh_time(self): @@ -908,7 +910,7 @@ class GlancesPluginModel(object): def read_alias(self): if self.plugin_name + '_' + 'alias' in self._limits: - return {i.split(':')[0]: i.split(':')[1] for i in self._limits[self.plugin_name + '_' + 'alias'][0].split(',')} + return {i.split(':')[0].lower(): i.split(':')[1] for i in self._limits[self.plugin_name + '_' + 'alias']} else: return dict() @@ -1037,9 +1039,9 @@ class GlancesPluginModel(object): # Is it a rate ? Yes, get the pre-computed rate value if ( - key in self.fields_description and - 'rate' in self.fields_description[key] and - self.fields_description[key]['rate'] is True + key in self.fields_description + and 'rate' in self.fields_description[key] + and self.fields_description[key]['rate'] is True ): value = self.stats.get(key + '_rate_per_sec', None) else: @@ -1062,12 +1064,8 @@ class GlancesPluginModel(object): elif unit_type == 'float': msg_value = msg_template_float.format(value, unit_short) elif 'min_symbol' in self.fields_description[key]: - msg_value = ( - msg_template.format( - self.auto_unit(int(value), - min_symbol=self.fields_description[key]['min_symbol']), - unit_short - ) + msg_value = msg_template.format( + self.auto_unit(int(value), min_symbol=self.fields_description[key]['min_symbol']), unit_short ) else: msg_value = msg_template.format(int(value), unit_short) @@ -1117,7 +1115,7 @@ class GlancesPluginModel(object): return none_symbol symbols = ('K', 'M', 'G', 'T', 'P', 'E', 'Z', 'Y') if min_symbol in symbols: - symbols = symbols[symbols.index(min_symbol):] + symbols = symbols[symbols.index(min_symbol) :] prefix = { 'Y': 1208925819614629174706176, 'Z': 1180591620717411303424, |