diff --git a/app/funct.py b/app/funct.py index 36e4779c..2f96850d 100644 --- a/app/funct.py +++ b/app/funct.py @@ -1441,7 +1441,7 @@ def show_backends(server_ip, **kwargs): else: ret = "" for line in output: - if "#" in line or "stats" in line or "MASTER" in line: + if any(s in line for s in ('#', 'stats', 'MASTER', '<')): continue if len(line) > 1: back = json.dumps(line).split("\"") @@ -2061,14 +2061,6 @@ def is_docker() -> bool: def send_email(email_to: str, subject: str, message: str) -> None: import sql - - mail_ssl = sql.get_setting('mail_ssl') - mail_from = sql.get_setting('mail_from') - mail_smtp_host = sql.get_setting('mail_smtp_host') - mail_smtp_port = sql.get_setting('mail_smtp_port') - mail_smtp_user = sql.get_setting('mail_smtp_user') - mail_smtp_password = sql.get_setting('mail_smtp_password') - from smtplib import SMTP try: @@ -2076,7 +2068,12 @@ def send_email(email_to: str, subject: str, message: str) -> None: except Exception: from email.mime.text import MIMEText - from email.message import EmailMessage + mail_ssl = sql.get_setting('mail_ssl') + mail_from = sql.get_setting('mail_from') + mail_smtp_host = sql.get_setting('mail_smtp_host') + mail_smtp_port = sql.get_setting('mail_smtp_port') + mail_smtp_user = sql.get_setting('mail_smtp_user') + mail_smtp_password = sql.get_setting('mail_smtp_password') msg = MIMEText(message) msg['Subject'] = 'Roxy-WI: ' + subject @@ -2089,7 +2086,7 @@ def send_email(email_to: str, subject: str, message: str) -> None: smtpObj.starttls() smtpObj.login(mail_smtp_user, mail_smtp_password) smtpObj.send_message(msg) - logging('localhost', 'An email has been sent to ' + email_to , haproxywi=1) + logging('localhost', 'An email has been sent to ' + email_to, haproxywi=1) except Exception as e: logging('localhost', 'error: unable to send email: ' + str(e), haproxywi=1) diff --git a/app/login.py b/app/login.py index 6317a685..c8845796 100644 --- a/app/login.py +++ b/app/login.py @@ -101,8 +101,8 @@ def send_cookie(login): sql.update_user_name(user_name) else: sql.insert_user_name(user_name) - except Exception: - funct.logging('Cannot update sbscription ', str(e), haproxywi=1) + except Exception as e: + funct.logging('Cannot update subscription: ', str(e), haproxywi=1) sys.exit() diff --git a/app/options.py b/app/options.py index d74934d9..e1a614fa 100644 --- a/app/options.py +++ b/app/options.py @@ -1830,14 +1830,23 @@ if form.getvalue('metrics_hapwi_ram'): rams = '' if ip == '1': - cmd = "free -m |grep Mem |awk '{print $2,$3,$4,$5,$6,$7}'" - metric, error = funct.subprocess_execute(cmd) + # cmd = "free -m |grep Mem |awk '{print $2,$3,$4,$5,$6,$7}'" + # metric, error = funct.subprocess_execute(cmd) + import psutil + + rams_list = psutil.virtual_memory() + rams += str(round(rams_list.total/1048576, 2)) + ' ' + rams += str(round(rams_list.used/1048576, 2)) + ' ' + rams += str(round(rams_list.free/1048576, 2)) + ' ' + rams += str(round(rams_list.shared/1048576, 2)) + ' ' + rams += str(round(rams_list.cached/1048576, 2)) + ' ' + rams += str(round(rams_list.available/1048576, 2)) + ' ' else: commands = ["free -m |grep Mem |awk '{print $2,$3,$4,$5,$6,$7}'"] metric, error = funct.subprocess_execute(commands[0]) - for i in metric: - rams = i + for i in metric: + rams = i metrics['chartData']['rams'] = rams @@ -1851,15 +1860,26 @@ if form.getvalue('metrics_hapwi_cpu'): cpus = '' if ip == '1': - cmd = "top -b -n 1 |grep Cpu |awk -F':' '{print $2}'|awk -F' ' 'BEGIN{ORS=\" \";} { for (i=1;i<=NF;i+=2) print $i}'" - metric, error = funct.subprocess_execute(cmd) + # cmd = "top -b -n 1 |grep Cpu |awk -F':' '{print $2}'|awk -F' ' 'BEGIN{ORS=\" \";} { for (i=1;i<=NF;i+=2) print $i}'" + # metric, error = funct.subprocess_execute(cmd) + import psutil + + cpus_list = psutil.cpu_times_percent(interval=1, percpu=False) + cpus += str(cpus_list.user) + ' ' + cpus += str(cpus_list.system) + ' ' + cpus += str(cpus_list.nice) + ' ' + cpus += str(cpus_list.idle) + ' ' + cpus += str(cpus_list.iowait) + ' ' + cpus += str(cpus_list.irq) + ' ' + cpus += str(cpus_list.softirq) + ' ' + cpus += str(cpus_list.steal) + ' ' else: commands = [ "top -b -n 1 |grep Cpu |awk -F':' '{print $2}'|awk -F' ' 'BEGIN{ORS=\" \";} { for (i=1;i<=NF;i+=2) print $i}'"] metric, error = funct.subprocess_execute(commands[0]) - for i in metric: - cpus = i + for i in metric: + cpus = i metrics['chartData']['cpus'] = cpus @@ -2292,7 +2312,7 @@ if form.getvalue('newserver') is not None: sql.update_firewall(ip) except Exception as e: funct.logging('Cannot scan a new server ' + hostname, str(e), haproxywi=1) - + try: sql.insert_new_checker_setting_for_server(ip) except Exception as e: @@ -4447,8 +4467,7 @@ if form.getvalue('updateHaproxyCheckerSettings'): slack_id = form.getvalue('slack_id') if sql.update_haproxy_checker_settings(email, telegram_id, slack_id, service_alert, backend_alert, - maxconn_alert, setting_id - ): + maxconn_alert, setting_id): print('ok') else: print('error: Cannot update Checker settings')