diff --git a/app/funct.py b/app/funct.py index 56e64b20..bffc7405 100644 --- a/app/funct.py +++ b/app/funct.py @@ -1336,35 +1336,35 @@ def ssh_command(server_ip, commands, **kwargs): stdin, stdout, stderr = ssh.exec_command(command, get_pty=True) except Exception as e: logging('localhost', ' ' + str(e), haproxywi=1) + ssh.close() return str(e) - if kwargs.get("ip") == "1": - show_ip(stdout) - elif kwargs.get("show_log") == "1": - return show_log(stdout, grep=kwargs.get("grep")) - elif kwargs.get("server_status") == "1": - server_status(stdout) - elif kwargs.get('print_out'): - print(stdout.read().decode(encoding='UTF-8')) - return stdout.read().decode(encoding='UTF-8') - elif kwargs.get('return_err') == 1: - return stderr.read().decode(encoding='UTF-8') - elif kwargs.get('raw'): - return stdout - else: - return stdout.read().decode(encoding='UTF-8') + try: + if kwargs.get("ip") == "1": + show_ip(stdout) + elif kwargs.get("show_log") == "1": + return show_log(stdout, grep=kwargs.get("grep")) + elif kwargs.get("server_status") == "1": + server_status(stdout) + elif kwargs.get('print_out'): + print(stdout.read().decode(encoding='UTF-8')) + return stdout.read().decode(encoding='UTF-8') + elif kwargs.get('return_err') == 1: + return stderr.read().decode(encoding='UTF-8') + elif kwargs.get('raw'): + return stdout + else: + return stdout.read().decode(encoding='UTF-8') + except Exception as e: + logging('localhost', str(e), haproxywi=1) + finally: + ssh.close() for line in stderr.read().decode(encoding='UTF-8'): if line: print("