diff options
Diffstat (limited to 'glances/plugins/ip/__init__.py')
-rw-r--r-- | glances/plugins/ip/__init__.py | 28 |
1 files changed, 15 insertions, 13 deletions
diff --git a/glances/plugins/ip/__init__.py b/glances/plugins/ip/__init__.py index 449f01d4..fe79480e 100644 --- a/glances/plugins/ip/__init__.py +++ b/glances/plugins/ip/__init__.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 # @@ -12,7 +12,7 @@ import threading from ujson import loads -from glances.globals import urlopen, queue, urlopen_auth +from glances.globals import queue, urlopen_auth from glances.logger import logger from glances.timer import Timer from glances.timer import getTimeSinceLastUpdate @@ -66,10 +66,7 @@ class PluginModel(GlancesPluginModel): def __init__(self, args=None, config=None): """Init the plugin.""" - super(PluginModel, self).__init__( - args=args, config=config, - fields_description=fields_description - ) + super(PluginModel, self).__init__(args=args, config=config, fields_description=fields_description) # We want to display the stat in the curse interface self.display_curse = True @@ -83,8 +80,9 @@ class PluginModel(GlancesPluginModel): self.public_field = self.get_conf_value("public_field", default=[None]) self.public_template = self.get_conf_value("public_template", default=[None])[0] self.public_disabled = ( - self.get_conf_value('public_disabled', default='False')[0].lower() != 'false' or - self.public_api is None or self.public_field is None + self.get_conf_value('public_disabled', default='False')[0].lower() != 'false' + or self.public_api is None + or self.public_field is None ) self.public_address_refresh_interval = self.get_conf_value( "public_refresh_interval", default=self._default_public_refresh_interval @@ -128,14 +126,14 @@ class PluginModel(GlancesPluginModel): if not self.public_disabled and ( self.public_address == "" or time_since_update > self.public_address_refresh_interval ): - self.public_info = PublicIpInfo( - self.public_api, self.public_username, self.public_password - ).get() + self.public_info = PublicIpInfo(self.public_api, self.public_username, self.public_password).get() self.public_address = self.public_info['ip'] - except (KeyError, AttributeError) as e: + except (KeyError, AttributeError, TypeError) as e: logger.debug("Cannot grab public IP information ({})".format(e)) else: - stats['public_address'] = self.public_address + stats['public_address'] = ( + self.public_address if not self.args.hide_public_info else self.__hide_ip(self.public_address) + ) stats['public_info_human'] = self.public_info_for_human(self.public_info) elif self.input_method == 'snmp': @@ -147,6 +145,10 @@ class PluginModel(GlancesPluginModel): return self.stats + def __hide_ip(self, ip): + """Hide last to digit of the given IP address""" + return '.'.join(ip.split('.')[0:2]) + '.*.*' + def msg_curse(self, args=None, max_width=None): """Return the dict to display in the curse interface.""" # Init the return message |