mirror of
https://github.com/nicolargo/glances.git
synced 2024-09-22 10:08:02 +03:00
Display a specific message during the first scan
This commit is contained in:
parent
8a20b5d98c
commit
7044f27935
@ -121,7 +121,7 @@ def main():
|
||||
standalone.serve_forever()
|
||||
|
||||
elif core.is_client():
|
||||
if core.is_client_autodiscover():
|
||||
if core.is_client_browser():
|
||||
logger.info("Start client mode (browser)")
|
||||
|
||||
# Import the Glances client browser module
|
||||
|
@ -20,6 +20,7 @@
|
||||
"""Manage autodiscover Glances server (thk to the ZeroConf protocol)."""
|
||||
|
||||
# Import system libs
|
||||
import sys
|
||||
import socket
|
||||
try:
|
||||
import netifaces
|
||||
@ -136,13 +137,18 @@ class GlancesAutoDiscoverServer(object):
|
||||
def __init__(self, args=None):
|
||||
if zeroconf_tag:
|
||||
logger.info("Init autodiscover mode (Zeroconf protocol)")
|
||||
self.zeroconf = Zeroconf()
|
||||
try:
|
||||
self.zeroconf = Zeroconf()
|
||||
except socker.error as e:
|
||||
logger.critical("Can not start Zeroconf (%s)" % e)
|
||||
sys.exit(2)
|
||||
self.listener = GlancesAutoDiscoverListener()
|
||||
self.browser = ServiceBrowser(
|
||||
self.zeroconf, zeroconf_type, self.listener)
|
||||
else:
|
||||
logger.error(
|
||||
logger.critical(
|
||||
"Can not start autodiscover mode (Zeroconf lib is not installed)")
|
||||
sys.exit(2)
|
||||
|
||||
def get_servers_list(self):
|
||||
"""Return the current server list (dict of dict)"""
|
||||
|
@ -45,16 +45,21 @@ class GlancesClientBrowser(object):
|
||||
self.config = config
|
||||
|
||||
# Start the autodiscover mode (Zeroconf listener)
|
||||
if self.args.autodiscover:
|
||||
if not self.args.disable_autodiscover:
|
||||
self.autodiscover_server = GlancesAutoDiscoverServer()
|
||||
else:
|
||||
self.autodiscover_server = None
|
||||
|
||||
# Init screen
|
||||
self.screen = GlancesCursesBrowser(args=self.args)
|
||||
|
||||
def get_servers_list(self):
|
||||
"""Return the current server list (list of dict)"""
|
||||
if self.args.autodiscover:
|
||||
return self.autodiscover_server.get_servers_list()
|
||||
if self.args.browser:
|
||||
if self.autodiscover_server is not None:
|
||||
return self.autodiscover_server.get_servers_list()
|
||||
else:
|
||||
return {}
|
||||
else:
|
||||
return {}
|
||||
|
||||
|
@ -72,7 +72,8 @@ class Config(object):
|
||||
self.parser.read(config_file)
|
||||
logger.info(_("Read configuration file %s") % config_file)
|
||||
except UnicodeDecodeError as e:
|
||||
logger.error(_("Cannot decode configuration file '{0}': {1}").format(config_file, e))
|
||||
logger.error(
|
||||
_("Cannot decode configuration file '{0}': {1}").format(config_file, e))
|
||||
sys.exit(1)
|
||||
# Save the loaded configuration file path (issue #374)
|
||||
self._loaded_config_file = config_file
|
||||
@ -100,7 +101,8 @@ class Config(object):
|
||||
* {/usr/local,}/etc directory (system-wide settings)
|
||||
"""
|
||||
paths = []
|
||||
conf_path = os.path.realpath(os.path.join(work_path, '..', '..', 'conf'))
|
||||
conf_path = os.path.realpath(
|
||||
os.path.join(work_path, '..', '..', 'conf'))
|
||||
|
||||
if self.location is not None:
|
||||
paths.append(self.location)
|
||||
@ -110,12 +112,15 @@ class Config(object):
|
||||
|
||||
if is_linux or is_bsd:
|
||||
paths.append(os.path.join(
|
||||
os.environ.get('XDG_CONFIG_HOME') or os.path.expanduser('~/.config'),
|
||||
os.environ.get('XDG_CONFIG_HOME') or os.path.expanduser(
|
||||
'~/.config'),
|
||||
appname, self.config_filename))
|
||||
if hasattr(sys, 'real_prefix') or is_bsd:
|
||||
paths.append(os.path.join(sys.prefix, 'etc', appname, self.config_filename))
|
||||
paths.append(
|
||||
os.path.join(sys.prefix, 'etc', appname, self.config_filename))
|
||||
else:
|
||||
paths.append(os.path.join('/etc', appname, self.config_filename))
|
||||
paths.append(
|
||||
os.path.join('/etc', appname, self.config_filename))
|
||||
elif is_mac:
|
||||
paths.append(os.path.join(
|
||||
os.path.expanduser('~/Library/Application Support/'),
|
||||
|
@ -96,10 +96,10 @@ class GlancesMain(object):
|
||||
help=_('connect to a Glances server by IPv4/IPv6 address or hostname'))
|
||||
parser.add_argument('-s', '--server', action='store_true', default=False,
|
||||
dest='server', help=_('run Glances in server mode'))
|
||||
parser.add_argument('--autodiscover', action='store_true', default=False,
|
||||
dest='autodiscover', help=_('autodetect all Glances servers on your local area network'))
|
||||
parser.add_argument('--browser', action='store_true', default=False,
|
||||
dest='browser', help=_('start the client browser (list of servers)'))
|
||||
parser.add_argument('--disable-autodiscover', action='store_true', default=False,
|
||||
dest='disable_autodiscover', help=_('disable server announcement on the local area network'))
|
||||
dest='disable_autodiscover', help=_('disable autodiscover feature'))
|
||||
parser.add_argument('-p', '--port', default=None, type=int, dest='port',
|
||||
help=_('define the client/server TCP port [default: {0}]').format(self.server_port))
|
||||
parser.add_argument('-B', '--bind', default='0.0.0.0', dest='bind_address',
|
||||
@ -164,6 +164,10 @@ class GlancesMain(object):
|
||||
else:
|
||||
args.port = self.server_port
|
||||
|
||||
# Autodiscover
|
||||
if args.disable_autodiscover:
|
||||
logger.info("Auto discover mode is disabled")
|
||||
|
||||
# In web server mode, defaul refresh time: 5 sec
|
||||
if args.webserver:
|
||||
args.time = 5
|
||||
@ -240,15 +244,15 @@ class GlancesMain(object):
|
||||
|
||||
def is_standalone(self):
|
||||
"""Return True if Glances is running in standalone mode."""
|
||||
return not self.args.client and not self.args.autodiscover and not self.args.server and not self.args.webserver
|
||||
return not self.args.client and not self.args.browser and not self.args.server and not self.args.webserver
|
||||
|
||||
def is_client(self):
|
||||
"""Return True if Glances is running in client mode."""
|
||||
return (self.args.client or self.args.autodiscover) and not self.args.server
|
||||
return (self.args.client or self.args.browser) and not self.args.server
|
||||
|
||||
def is_client_autodiscover(self):
|
||||
"""Return True if Glances is running in client mode with autodiscover."""
|
||||
return self.args.autodiscover and not self.args.server
|
||||
def is_client_browser(self):
|
||||
"""Return True if Glances is running in client browser mode."""
|
||||
return self.args.browser and not self.args.server
|
||||
|
||||
def is_server(self):
|
||||
"""Return True if Glances is running in server mode."""
|
||||
|
@ -836,6 +836,10 @@ class GlancesCursesBrowser(_GlancesCurses):
|
||||
# Init the father class
|
||||
_GlancesCurses.__init__(self, args=args)
|
||||
|
||||
# First time scan tag
|
||||
# Used to display a specific message when the browser is started
|
||||
self.first_scan = True
|
||||
|
||||
# Init refresh time
|
||||
self.__refresh_time = args.time
|
||||
|
||||
@ -956,12 +960,17 @@ class GlancesCursesBrowser(_GlancesCurses):
|
||||
|
||||
# Display top header
|
||||
if len(servers_list) == 0:
|
||||
msg = _("No Glances server detected on your network")
|
||||
if self.first_scan:
|
||||
msg = _("Glances is scanning your network (please wait)...")
|
||||
else:
|
||||
msg = _("No Glances server detected on your network")
|
||||
elif len(servers_list) == 1:
|
||||
msg = _("One Glances server detected on your network")
|
||||
else:
|
||||
msg = _("%d Glances servers detected on your network" %
|
||||
len(servers_list))
|
||||
if self.args.disable_autodiscover:
|
||||
msg += ' ' + _("(autodiscover is disabled)")
|
||||
self.term_window.addnstr(y, x,
|
||||
msg,
|
||||
screen_x - x,
|
||||
|
Loading…
Reference in New Issue
Block a user