diff --git a/glances/core/glances_client.py b/glances/core/glances_client.py index fafdb4ab1fcd82a0e7f6ff7513e81fe0bbc51041..9c065902ae0203c780aec23657a5117baca41984 100644 --- a/glances/core/glances_client.py +++ b/glances/core/glances_client.py @@ -98,7 +98,7 @@ class GlancesClient(object): """ return self.mode - def login(self): + def login(self, return_to_browser=False): """Logon to the server.""" ret = True @@ -120,7 +120,10 @@ class GlancesClient(object): logger.error("Connection to server failed (Bad password)") else: logger.error("Connection to server failed ({0})").format(err) - sys.exit(2) + if not return_to_browser: + sys.exit(2) + else: + return False if self.get_mode() == 'glances' and version[:3] == client_version[:3]: # Init stats @@ -143,7 +146,10 @@ class GlancesClient(object): if not self.stats.check_snmp(): logger.error("Connection to SNMP server failed") - sys.exit(2) + if not return_to_browser: + sys.exit(2) + else: + return False if ret: # Load limits from the configuration file diff --git a/glances/core/glances_client_browser.py b/glances/core/glances_client_browser.py index 7b70b6cf3f392079d79dd9e3764a7c154750c5ad..e5915685d9e5f077858af99ee2c3b0dd03e113df 100644 --- a/glances/core/glances_client_browser.py +++ b/glances/core/glances_client_browser.py @@ -91,10 +91,10 @@ class GlancesClientBrowser(object): v['hr_name'] = json.loads(s.getSystem())['hr_name'] except (socket.error, Fault, KeyError) as e: logger.warning( - "Can not grab stats form {0}: {1}".format(uri, e)) + "Error while grabbing stats form {0}: {1}".format(uri, e)) except ProtocolError as e: logger.debug( - "Password protected server. Can not grab stats from {0}: {1}".format(uri, e)) + "Can not grab stats from {0}: {1}".format(uri, e)) # List can change size during iteration... except RuntimeError: logger.debug( @@ -121,15 +121,15 @@ class GlancesClientBrowser(object): args=args_server) # Test if client and server are in the same major version - if not client.login(): + if not client.login(return_to_browser=True): logger.error( - "The server version is not compatible with the client") + "Can not connect to the server (incompatible version or password protection)") + else: + # Start the client loop + client.serve_forever(return_to_browser=True) - # Start the client loop - client.serve_forever(return_to_browser=True) - - logger.debug("Disconnect Glances client from the %s server" % - self.get_servers_list()[self.screen.get_active()]['key']) + logger.debug("Disconnect Glances client from the %s server" % + self.get_servers_list()[self.screen.get_active()]['key']) self.screen.set_active(None) def end(self):