diff --git a/app/modules/config/config.py b/app/modules/config/config.py index 571b24eb..0676914c 100644 --- a/app/modules/config/config.py +++ b/app/modules/config/config.py @@ -247,9 +247,9 @@ def master_slave_upload_and_restart(server_ip, cfg, just_save, **kwargs): login = '' is_master = [masters[0] for masters in sql.is_master(server_ip)] - if is_master[0] is not None: + for master in is_master: slv_output = upload_and_restart( - is_master[0], cfg, just_save=just_save, nginx=kwargs.get('nginx'), waf=kwargs.get('waf'), + master, cfg, just_save=just_save, nginx=kwargs.get('nginx'), waf=kwargs.get('waf'), apache=kwargs.get('apache'), config_file_name=kwargs.get('config_file_name'), slave=1 ) slave_output += f'
slave_server:\n{slv_output}' @@ -425,7 +425,7 @@ def upload_ssl_cert(server_ip: str) -> None: ssl_cert.write(form.getvalue('ssl_cert')) except IOError as e: print(f'error: Cannot save the SSL key file: {e.args[0]}') - sys.exit() + return masters = sql.is_master(server_ip) for master in masters: diff --git a/app/modules/config/runtime.py b/app/modules/config/runtime.py index 522895cd..f3d70002 100644 --- a/app/modules/config/runtime.py +++ b/app/modules/config/runtime.py @@ -251,7 +251,7 @@ def list_of_lists() -> None: def show_lists() -> None: from jinja2 import Environment, FileSystemLoader env = Environment(loader=FileSystemLoader('templates/'), autoescape=True, - extensions=['jinja2.ext.loopcontrols', 'jinja2.ext.do'], trim_blocks=True, lstrip_blocks=True) + extensions=['jinja2.ext.loopcontrols', 'jinja2.ext.do'], trim_blocks=True, lstrip_blocks=True) template = env.get_template('ajax/list.html') list_id = common.checkAjaxInput(form.getvalue('list_select_id')) list_name = common.checkAjaxInput(form.getvalue('list_select_name')) @@ -293,8 +293,7 @@ def delete_ip_from_list() -> None: if stderr != '': print(f'error: {stderr[0]}') - roxywi_common.logging(serv, f'{ip_id} has been delete from list {list_id}', login=1, keep_history=1, - service='haproxy') + roxywi_common.logging(serv, f'{ip_id} has been delete from list {list_id}', login=1, keep_history=1, service='haproxy') def add_ip_to_list() -> None: @@ -322,14 +321,13 @@ def add_ip_to_list() -> None: if stderr: print(f'error: {stderr}') - roxywi_common.logging(serv, f'{ip} has been added to list {list_id}', login=1, keep_history=1, - service='haproxy') + roxywi_common.logging(serv, f'{ip} has been added to list {list_id}', login=1, keep_history=1, service='haproxy') def select_session() -> None: from jinja2 import Environment, FileSystemLoader env = Environment(loader=FileSystemLoader('templates'), autoescape=True, - extensions=['jinja2.ext.loopcontrols', 'jinja2.ext.do'], trim_blocks=True, lstrip_blocks=True) + extensions=['jinja2.ext.loopcontrols', 'jinja2.ext.do'], trim_blocks=True, lstrip_blocks=True) serv = common.checkAjaxInput(form.getvalue('sessions_select')) haproxy_sock_port = sql.get_setting('haproxy_sock_port') diff --git a/app/modules/roxywi/roxy.py b/app/modules/roxywi/roxy.py index 56017c83..50d9cdcb 100644 --- a/app/modules/roxywi/roxy.py +++ b/app/modules/roxywi/roxy.py @@ -4,7 +4,6 @@ import re import distro import modules.db.sql as sql -import modules.common.common as common import modules.server.server as server_mod import modules.roxywi.common as roxywi_common @@ -196,7 +195,7 @@ def action_service(action: str, service: str) -> None: print( 'warning: The service is disabled because you are not subscribed. Read here about subscriptions') - sys.exit() + return if is_in_docker: cmd = f"sudo supervisorctl {action} {service}" os.system(cmd) diff --git a/app/modules/service/action.py b/app/modules/service/action.py index 5fd03121..9cca5d51 100644 --- a/app/modules/service/action.py +++ b/app/modules/service/action.py @@ -1,4 +1,5 @@ import modules.db.sql as sql +import modules.common.common as common import modules.server.server as server_mod import modules.roxywi.common as roxywi_common import modules.service.common as service_common @@ -127,8 +128,8 @@ def action_nginx_waf(server_ip: str, action: str) -> None: waf_new_state = 'on' if action == 'start' else 'off' waf_old_state = 'off' if action == 'start' else 'on' - roxywi_common.logging(serv, f'NGINX WAF service has been {action}ed', roxywi=1, login=1, keep_history=1, + roxywi_common.logging(server_ip, f'NGINX WAF service has been {action}ed', roxywi=1, login=1, keep_history=1, service='nginx') commands = [f"sudo sed -i 's/modsecurity {waf_old_state}/modsecurity {waf_new_state}/g' {config_dir}nginx.conf" f" && sudo systemctl reload nginx"] - server_mod.ssh_command(server_ip, commands) \ No newline at end of file + server_mod.ssh_command(server_ip, commands) diff --git a/app/options.py b/app/options.py index d735ea4b..0f04fcc1 100644 --- a/app/options.py +++ b/app/options.py @@ -12,7 +12,6 @@ from jinja2 import Environment, FileSystemLoader import modules.db.sql as sql import modules.common.common as common import modules.config.config as config_mod -import modules.roxywi.auth as roxywi_auth import modules.roxywi.common as roxywi_common import modules.roxy_wi_tools as roxy_wi_tools import modules.server.server as server_mod @@ -355,7 +354,7 @@ if act == "overview": try: keepalived_process = server_mod.ssh_command(serv2, command) except Exception as e: - print(f'{e} for server {serv2}') + print(f'error: {e} for server {serv2}') sys.exit() if waf_len >= 1: @@ -363,7 +362,7 @@ if act == "overview": try: waf_process = server_mod.ssh_command(serv2, command) except Exception as e: - print(f'{e} for server {serv2}') + print(f'error: {e} for server {serv2}') sys.exit() server_status = (serv1, @@ -1212,9 +1211,9 @@ if form.getvalue('haproxyaddserv'): if form.getvalue('installwaf'): service = form.getvalue('service') if service == 'haproxy': - service_mod.waf_install(form.getvalue('installwaf')) + service_mod.waf_install(common.checkAjaxInput(form.getvalue('installwaf'))) else: - service_mod.waf_nginx_install(form.getvalue('installwaf')) + service_mod.waf_nginx_install(common.checkAjaxInput(form.getvalue('installwaf'))) if form.getvalue('geoip_install'): service_mod.geoip_installation() @@ -1342,7 +1341,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') + time_range = common.checkAjaxInput(form.getvalue('time_range')) metric = sql.select_metrics(serv, 'http_metrics', time_range=time_range) metrics = {'chartData': {}} metrics['chartData']['labels'] = {} @@ -1375,7 +1374,7 @@ if form.getvalue('new_http_metrics'): if any((form.getvalue('new_nginx_metrics'), form.getvalue('new_apache_metrics'), form.getvalue('new_waf_metrics'))): serv = form.getvalue('server') hostname = sql.get_hostname_by_server_ip(serv) - time_range = form.getvalue('time_range') + time_range = common.checkAjaxInput(form.getvalue('time_range')) service = '' if form.getvalue('new_nginx_metrics'): @@ -1405,10 +1404,7 @@ if any((form.getvalue('new_nginx_metrics'), form.getvalue('new_apache_metrics'), print(json.dumps(metrics)) if form.getvalue('get_hap_v'): - import modules.service.common as service_common - - output = service_common.check_haproxy_version(serv) - print(output) + print(service_common.check_haproxy_version(serv)) if form.getvalue('get_nginx_v'): server_id = sql.select_server_id_by_ip(serv) @@ -1512,15 +1508,15 @@ if form.getvalue('bwlists_save'): server_mod.ssh_command(serv, [f"sudo systemctl reload {haproxy_service_name}"]) if form.getvalue('bwlists_delete'): - color = form.getvalue('color') - bwlists_delete = form.getvalue('bwlists_delete') + color = common.checkAjaxInput(form.getvalue('color')) + bwlists_delete = common.checkAjaxInput(form.getvalue('bwlists_delete')) lib_path = get_config.get_config_var('main', 'lib_path') - list_path = lib_path + "/" + sql.get_setting('lists_path') + "/" + form.getvalue( - 'group') + "/" + color + "/" + bwlists_delete + group = common.checkAjaxInput( form.getvalue('group')) + list_path = f"{lib_path}/{sql.get_setting('lists_path')}/{group}/{color}/{bwlists_delete}" try: os.remove(list_path) except IOError as e: - print('error: Cannot delete ' + color + ' list. %s , ' % e) + print(f'error: Cannot delete {color} list. {e} , ') path = sql.get_setting('haproxy_dir') + "/" + color servers = [] @@ -1538,14 +1534,14 @@ if form.getvalue('bwlists_delete'): servers.append(s[2]) for serv in servers: - error = server_mod.ssh_command(serv, ["sudo rm " + path + "/" + bwlists_delete], return_err=1) + error = server_mod.ssh_command(serv, [f"sudo rm {path}/{bwlists_delete}"], return_err=1) if error: - print('error: Deleting fail: %s , ' % error) + print(f'error: Deleting fail: {error} , ') else: - print('success: the ' + color + ' list has been deleted on ' + serv + ' , ') + print(f'success: the {color} list has been deleted on {serv} , ') try: - roxywi_common.logging(serv, 'has been deleted the ' + color + ' list ' + bwlists_delete, roxywi=1, login=1) + roxywi_common.logging(serv, f'has been deleted the {color} list {bwlists_delete}', roxywi=1, login=1) except Exception: pass @@ -1791,7 +1787,7 @@ if form.getvalue('newgroup') is not None: output_from_parsed_template = template.render(groups=sql.select_groups(group=newgroup)) print(output_from_parsed_template) - roxywi_common.logging('Roxy-WI server', 'A new group ' + newgroup + ' has been created', roxywi=1, login=1) + roxywi_common.logging('Roxy-WI server', f'A new group {newgroup} has been created', roxywi=1, login=1) if form.getvalue('groupdel') is not None: groupdel = form.getvalue('groupdel') @@ -1800,7 +1796,7 @@ if form.getvalue('groupdel') is not None: groupname = g.name if sql.delete_group(groupdel): print("Ok") - roxywi_common.logging('Roxy-WI server', 'The ' + groupname + ' has been deleted', roxywi=1, login=1) + roxywi_common.logging('Roxy-WI server', f'The {groupname} has been deleted', roxywi=1, login=1) if form.getvalue('updategroup') is not None: name = form.getvalue('updategroup') @@ -1811,7 +1807,7 @@ if form.getvalue('updategroup') is not None: else: try: sql.update_group(name, descript, group_id) - roxywi_common.logging('Roxy-WI server', 'The ' + name + ' has been updated', roxywi=1, login=1) + roxywi_common.logging(f'Roxy-WI server', f'The {name} has been updated', roxywi=1, login=1) except Exception as e: print('error: ' + str(e))