diff --git a/app/create_db.py b/app/create_db.py index 7b895bbd..2950c606 100644 --- a/app/create_db.py +++ b/app/create_db.py @@ -163,7 +163,7 @@ def default_values(): print(str(e)) try: - Groups.insert(name='All', description='All servers are included in this group by default').on_conflict_ignore().execute() + Groups.insert(name='Default', description='All servers are included in this group by default', group_id=1).on_conflict_ignore().execute() except Exception as e: print(str(e)) @@ -179,11 +179,6 @@ def default_values(): except Exception as e: print(str(e)) - try: - Groups.insert(name='All', description='All servers are included in this group by default').on_conflict_ignore().execute() - except Exception as e: - print(str(e)) - data_source = [ {'code': 'RW', 'name': 'Rwanda'}, {'code': 'SO', 'name': 'Somalia'}, @@ -687,6 +682,17 @@ def update_db_v_6_0(**kwargs): print('Updating... DB has been updated to version 6.0.0.0') +def update_db_v_6_0_1(**kwargs): + query = Groups.update(name='Default').where(Groups.group_id == '1') + try: + query.execute() + except Exception as e: + print("An error occurred:", e) + else: + if kwargs.get('silent') != 1: + print("Updating... DB has been updated to version 6.0.0.0-1") + + def update_ver(): query = Version.update(version='6.0.0.0') try: @@ -713,6 +719,7 @@ def update_all(): update_db_v_5_4_3() update_db_v_5_4_3_1() update_db_v_6_0() + update_db_v_6_0_1() update_ver() @@ -734,6 +741,7 @@ def update_all_silent(): update_db_v_5_4_3(silent=1) update_db_v_5_4_3_1(silent=1) update_db_v_6_0(silent=1) + update_db_v_6_0_1(silent=1) update_ver() diff --git a/app/funct.py b/app/funct.py index b1dc2b8d..4b8884af 100644 --- a/app/funct.py +++ b/app/funct.py @@ -716,7 +716,7 @@ def install_haproxy(server_ip, **kwargs): os.system("cp scripts/%s ." % script) if haproxy_ver is None: - haproxy_ver = '2.4.9-1' + haproxy_ver = '2.5.1-1' if proxy is not None and proxy != '' and proxy != 'None': proxy_serv = proxy @@ -1473,7 +1473,7 @@ def get_remote_files(server_ip: str, config_dir: str, file_format: str): if file_format == 'conf': commands = ['sudo ls ' + config_dir + '*/*.' + file_format] else: - commands = ['sudo ls ' + config_dir + '/*.' + file_format] + commands = ['sudo ls ' + config_dir + '|grep ' + file_format + '$'] config_files = ssh_command(server_ip, commands) return config_files diff --git a/app/metrics.py b/app/metrics.py index 6c6cdcb5..8704cd87 100644 --- a/app/metrics.py +++ b/app/metrics.py @@ -22,7 +22,7 @@ try: services = '0' if not stderr: - if service_ver[0] == '* is not installed' or service_ver == '': + if service_ver[0] == ' is not installed' or service_ver == '': servers = '' else: if service == 'nginx': @@ -37,6 +37,12 @@ try: except Exception as e: pass +try: + user_status, user_plan = funct.return_user_status() +except Exception as e: + user_status, user_plan = 0, 0 + funct.logging('localhost', 'Cannot get a user plan: ' + str(e), haproxywi=1) + template = template.render(h2=1, title=title, autorefresh=1, @@ -46,5 +52,7 @@ template = template.render(h2=1, title=title, services=services, user_services=user_services, service=service, + user_status=user_status, + user_plan=user_plan, token=token) print(template) diff --git a/app/options.py b/app/options.py index 2cc0b894..77262238 100644 --- a/app/options.py +++ b/app/options.py @@ -1748,6 +1748,7 @@ if form.getvalue('metrics_hapwi_cpu'): if form.getvalue('new_metrics'): serv = form.getvalue('server') + hostname = sql.get_hostname_by_server_ip(serv) time_range = form.getvalue('time_range') metric = sql.select_metrics(serv, time_range=time_range) metrics = {'chartData': {}} @@ -1771,7 +1772,7 @@ if form.getvalue('new_metrics'): metrics['chartData']['curr_con'] = curr_con metrics['chartData']['curr_ssl_con'] = curr_ssl_con metrics['chartData']['sess_rate'] = sess_rate - metrics['chartData']['server'] = server + metrics['chartData']['server'] = hostname + ' (' + server + ')' import json @@ -1779,6 +1780,7 @@ if form.getvalue('new_metrics'): if form.getvalue('new_http_metrics'): serv = form.getvalue('server') + hostname = sql.get_hostname_by_server_ip(serv) time_range = form.getvalue('time_range') metric = sql.select_metrics_http(serv, time_range=time_range) metrics = {'chartData': {}} @@ -1805,7 +1807,7 @@ if form.getvalue('new_http_metrics'): metrics['chartData']['http_3xx'] = http_3xx metrics['chartData']['http_4xx'] = http_4xx metrics['chartData']['http_5xx'] = http_5xx - metrics['chartData']['server'] = server + metrics['chartData']['server'] = hostname + ' (' + server + ')' import json @@ -1813,6 +1815,7 @@ if form.getvalue('new_http_metrics'): if form.getvalue('new_waf_metrics'): serv = form.getvalue('server') + hostname = sql.get_hostname_by_server_ip(serv) time_range = form.getvalue('time_range') metric = sql.select_waf_metrics(serv, time_range=time_range) metrics = {'chartData': {}} @@ -1828,7 +1831,7 @@ if form.getvalue('new_waf_metrics'): metrics['chartData']['labels'] = labels metrics['chartData']['curr_con'] = curr_con - metrics['chartData']['server'] = serv + metrics['chartData']['server'] = hostname + ' (' + serv + ')' import json @@ -1836,6 +1839,7 @@ if form.getvalue('new_waf_metrics'): if form.getvalue('new_nginx_metrics'): serv = form.getvalue('server') + hostname = sql.get_hostname_by_server_ip(serv) time_range = form.getvalue('time_range') metric = sql.select_nginx_metrics(serv, time_range=time_range) metrics = {'chartData': {}} @@ -1851,7 +1855,7 @@ if form.getvalue('new_nginx_metrics'): metrics['chartData']['labels'] = labels metrics['chartData']['curr_con'] = curr_con - metrics['chartData']['server'] = serv + metrics['chartData']['server'] = hostname + ' (' + serv + ')' import json @@ -3774,18 +3778,29 @@ if form.getvalue('loadchecker'): services = funct.get_services_status() groups = sql.select_groups() page = form.getvalue('page') - if page == 'servers.py': - user_group = funct.get_user_group(id=1) - telegrams = sql.get_user_telegram_by_group(user_group) - slacks = sql.get_user_slack_by_group(user_group) + try: + user_status, user_plan = funct.return_user_status() + except Exception as e: + user_status, user_plan = 0, 0 + funct.logging('localhost', 'Cannot get a user plan: ' + str(e), haproxywi=1) + if user_status: + if page == 'servers.py': + user_group = funct.get_user_group(id=1) + telegrams = sql.get_user_telegram_by_group(user_group) + slacks = sql.get_user_slack_by_group(user_group) + else: + telegrams = sql.select_telegram() + slacks = sql.select_slack() else: - telegrams = sql.select_telegram() - slacks = sql.select_slack() + telegrams = '' + slacks = '' template = template.render(services=services, telegrams=telegrams, groups=groups, slacks=slacks, + user_status=user_status, + user_plan=user_plan, page=page) print(template) diff --git a/app/portscanner.py b/app/portscanner.py index bed0b99e..d9179d08 100644 --- a/app/portscanner.py +++ b/app/portscanner.py @@ -41,6 +41,12 @@ else: cmd = "systemctl is-active roxy-wi-portscanner" port_scanner, port_scanner_stderr = funct.subprocess_execute(cmd) +try: + user_status, user_plan = funct.return_user_status() +except Exception as e: + user_status, user_plan = 0, 0 + funct.logging('localhost', 'Cannot get a user plan: ' + str(e), haproxywi=1) + output_from_parsed_template = template.render(h2=1, autorefresh=0, title=title, @@ -53,5 +59,7 @@ output_from_parsed_template = template.render(h2=1, autorefresh=0, port_scanner=''.join(port_scanner), port_scanner_stderr=port_scanner_stderr, user_services=user_services, + user_status=user_status, + user_plan=user_plan, token=token) print(output_from_parsed_template) diff --git a/app/smon.py b/app/smon.py index 2177f011..ba531d3a 100644 --- a/app/smon.py +++ b/app/smon.py @@ -42,6 +42,11 @@ else: title = "SMON Dashboard" autorefresh = 1 +try: + user_status, user_plan = funct.return_user_status() +except Exception as e: + user_status, user_plan = 0, 0 + funct.logging('localhost', 'Cannot get a user plan: ' + str(e), haproxywi=1) template = template.render(h2=1, title=title, autorefresh=autorefresh, @@ -56,5 +61,7 @@ template = template.render(h2=1, title=title, action=action, sort=sort, user_services=user_services, + user_status=user_status, + user_plan=user_plan, token=token) print(template) diff --git a/app/templates/admin.html b/app/templates/admin.html index 4a9eff8e..a873afcc 100644 --- a/app/templates/admin.html +++ b/app/templates/admin.html @@ -36,7 +36,7 @@
{% for group in groups %}