提交 06f35826 编写于 作者: N Nicolargo

Do not crash if password is protected by a password

上级 fafcd176
......@@ -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
......
......@@ -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):
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册