mirror of https://github.com/Aidaho12/haproxy-wi
parent
5a40d50368
commit
f5651d62c0
|
@ -247,9 +247,9 @@ def master_slave_upload_and_restart(server_ip, cfg, just_save, **kwargs):
|
||||||
login = ''
|
login = ''
|
||||||
|
|
||||||
is_master = [masters[0] for masters in sql.is_master(server_ip)]
|
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(
|
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
|
apache=kwargs.get('apache'), config_file_name=kwargs.get('config_file_name'), slave=1
|
||||||
)
|
)
|
||||||
slave_output += f'<br>slave_server:\n{slv_output}'
|
slave_output += f'<br>slave_server:\n{slv_output}'
|
||||||
|
@ -425,7 +425,7 @@ def upload_ssl_cert(server_ip: str) -> None:
|
||||||
ssl_cert.write(form.getvalue('ssl_cert'))
|
ssl_cert.write(form.getvalue('ssl_cert'))
|
||||||
except IOError as e:
|
except IOError as e:
|
||||||
print(f'error: Cannot save the SSL key file: {e.args[0]}')
|
print(f'error: Cannot save the SSL key file: {e.args[0]}')
|
||||||
sys.exit()
|
return
|
||||||
|
|
||||||
masters = sql.is_master(server_ip)
|
masters = sql.is_master(server_ip)
|
||||||
for master in masters:
|
for master in masters:
|
||||||
|
|
|
@ -251,7 +251,7 @@ def list_of_lists() -> None:
|
||||||
def show_lists() -> None:
|
def show_lists() -> None:
|
||||||
from jinja2 import Environment, FileSystemLoader
|
from jinja2 import Environment, FileSystemLoader
|
||||||
env = Environment(loader=FileSystemLoader('templates/'), autoescape=True,
|
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')
|
template = env.get_template('ajax/list.html')
|
||||||
list_id = common.checkAjaxInput(form.getvalue('list_select_id'))
|
list_id = common.checkAjaxInput(form.getvalue('list_select_id'))
|
||||||
list_name = common.checkAjaxInput(form.getvalue('list_select_name'))
|
list_name = common.checkAjaxInput(form.getvalue('list_select_name'))
|
||||||
|
@ -293,8 +293,7 @@ def delete_ip_from_list() -> None:
|
||||||
if stderr != '':
|
if stderr != '':
|
||||||
print(f'error: {stderr[0]}')
|
print(f'error: {stderr[0]}')
|
||||||
|
|
||||||
roxywi_common.logging(serv, f'{ip_id} has been delete from list {list_id}', login=1, keep_history=1,
|
roxywi_common.logging(serv, f'{ip_id} has been delete from list {list_id}', login=1, keep_history=1, service='haproxy')
|
||||||
service='haproxy')
|
|
||||||
|
|
||||||
|
|
||||||
def add_ip_to_list() -> None:
|
def add_ip_to_list() -> None:
|
||||||
|
@ -322,14 +321,13 @@ def add_ip_to_list() -> None:
|
||||||
if stderr:
|
if stderr:
|
||||||
print(f'error: {stderr}')
|
print(f'error: {stderr}')
|
||||||
|
|
||||||
roxywi_common.logging(serv, f'{ip} has been added to list {list_id}', login=1, keep_history=1,
|
roxywi_common.logging(serv, f'{ip} has been added to list {list_id}', login=1, keep_history=1, service='haproxy')
|
||||||
service='haproxy')
|
|
||||||
|
|
||||||
|
|
||||||
def select_session() -> None:
|
def select_session() -> None:
|
||||||
from jinja2 import Environment, FileSystemLoader
|
from jinja2 import Environment, FileSystemLoader
|
||||||
env = Environment(loader=FileSystemLoader('templates'), autoescape=True,
|
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'))
|
serv = common.checkAjaxInput(form.getvalue('sessions_select'))
|
||||||
|
|
||||||
haproxy_sock_port = sql.get_setting('haproxy_sock_port')
|
haproxy_sock_port = sql.get_setting('haproxy_sock_port')
|
||||||
|
|
|
@ -4,7 +4,6 @@ import re
|
||||||
import distro
|
import distro
|
||||||
|
|
||||||
import modules.db.sql as sql
|
import modules.db.sql as sql
|
||||||
import modules.common.common as common
|
|
||||||
import modules.server.server as server_mod
|
import modules.server.server as server_mod
|
||||||
import modules.roxywi.common as roxywi_common
|
import modules.roxywi.common as roxywi_common
|
||||||
|
|
||||||
|
@ -196,7 +195,7 @@ def action_service(action: str, service: str) -> None:
|
||||||
print(
|
print(
|
||||||
'warning: The service is disabled because you are not subscribed. Read <a href="https://roxy-wi.org/pricing" '
|
'warning: The service is disabled because you are not subscribed. Read <a href="https://roxy-wi.org/pricing" '
|
||||||
'title="Roxy-WI pricing" target="_blank">here</a> about subscriptions')
|
'title="Roxy-WI pricing" target="_blank">here</a> about subscriptions')
|
||||||
sys.exit()
|
return
|
||||||
if is_in_docker:
|
if is_in_docker:
|
||||||
cmd = f"sudo supervisorctl {action} {service}"
|
cmd = f"sudo supervisorctl {action} {service}"
|
||||||
os.system(cmd)
|
os.system(cmd)
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
import modules.db.sql as sql
|
import modules.db.sql as sql
|
||||||
|
import modules.common.common as common
|
||||||
import modules.server.server as server_mod
|
import modules.server.server as server_mod
|
||||||
import modules.roxywi.common as roxywi_common
|
import modules.roxywi.common as roxywi_common
|
||||||
import modules.service.common as service_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_new_state = 'on' if action == 'start' else 'off'
|
||||||
waf_old_state = 'off' if action == 'start' else 'on'
|
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')
|
service='nginx')
|
||||||
commands = [f"sudo sed -i 's/modsecurity {waf_old_state}/modsecurity {waf_new_state}/g' {config_dir}nginx.conf"
|
commands = [f"sudo sed -i 's/modsecurity {waf_old_state}/modsecurity {waf_new_state}/g' {config_dir}nginx.conf"
|
||||||
f" && sudo systemctl reload nginx"]
|
f" && sudo systemctl reload nginx"]
|
||||||
server_mod.ssh_command(server_ip, commands)
|
server_mod.ssh_command(server_ip, commands)
|
||||||
|
|
|
@ -12,7 +12,6 @@ from jinja2 import Environment, FileSystemLoader
|
||||||
import modules.db.sql as sql
|
import modules.db.sql as sql
|
||||||
import modules.common.common as common
|
import modules.common.common as common
|
||||||
import modules.config.config as config_mod
|
import modules.config.config as config_mod
|
||||||
import modules.roxywi.auth as roxywi_auth
|
|
||||||
import modules.roxywi.common as roxywi_common
|
import modules.roxywi.common as roxywi_common
|
||||||
import modules.roxy_wi_tools as roxy_wi_tools
|
import modules.roxy_wi_tools as roxy_wi_tools
|
||||||
import modules.server.server as server_mod
|
import modules.server.server as server_mod
|
||||||
|
@ -355,7 +354,7 @@ if act == "overview":
|
||||||
try:
|
try:
|
||||||
keepalived_process = server_mod.ssh_command(serv2, command)
|
keepalived_process = server_mod.ssh_command(serv2, command)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print(f'{e} for server {serv2}')
|
print(f'error: {e} for server {serv2}')
|
||||||
sys.exit()
|
sys.exit()
|
||||||
|
|
||||||
if waf_len >= 1:
|
if waf_len >= 1:
|
||||||
|
@ -363,7 +362,7 @@ if act == "overview":
|
||||||
try:
|
try:
|
||||||
waf_process = server_mod.ssh_command(serv2, command)
|
waf_process = server_mod.ssh_command(serv2, command)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print(f'{e} for server {serv2}')
|
print(f'error: {e} for server {serv2}')
|
||||||
sys.exit()
|
sys.exit()
|
||||||
|
|
||||||
server_status = (serv1,
|
server_status = (serv1,
|
||||||
|
@ -1212,9 +1211,9 @@ if form.getvalue('haproxyaddserv'):
|
||||||
if form.getvalue('installwaf'):
|
if form.getvalue('installwaf'):
|
||||||
service = form.getvalue('service')
|
service = form.getvalue('service')
|
||||||
if service == 'haproxy':
|
if service == 'haproxy':
|
||||||
service_mod.waf_install(form.getvalue('installwaf'))
|
service_mod.waf_install(common.checkAjaxInput(form.getvalue('installwaf')))
|
||||||
else:
|
else:
|
||||||
service_mod.waf_nginx_install(form.getvalue('installwaf'))
|
service_mod.waf_nginx_install(common.checkAjaxInput(form.getvalue('installwaf')))
|
||||||
|
|
||||||
if form.getvalue('geoip_install'):
|
if form.getvalue('geoip_install'):
|
||||||
service_mod.geoip_installation()
|
service_mod.geoip_installation()
|
||||||
|
@ -1342,7 +1341,7 @@ if form.getvalue('new_metrics'):
|
||||||
if form.getvalue('new_http_metrics'):
|
if form.getvalue('new_http_metrics'):
|
||||||
serv = form.getvalue('server')
|
serv = form.getvalue('server')
|
||||||
hostname = sql.get_hostname_by_server_ip(serv)
|
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)
|
metric = sql.select_metrics(serv, 'http_metrics', time_range=time_range)
|
||||||
metrics = {'chartData': {}}
|
metrics = {'chartData': {}}
|
||||||
metrics['chartData']['labels'] = {}
|
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'))):
|
if any((form.getvalue('new_nginx_metrics'), form.getvalue('new_apache_metrics'), form.getvalue('new_waf_metrics'))):
|
||||||
serv = form.getvalue('server')
|
serv = form.getvalue('server')
|
||||||
hostname = sql.get_hostname_by_server_ip(serv)
|
hostname = sql.get_hostname_by_server_ip(serv)
|
||||||
time_range = form.getvalue('time_range')
|
time_range = common.checkAjaxInput(form.getvalue('time_range'))
|
||||||
service = ''
|
service = ''
|
||||||
|
|
||||||
if form.getvalue('new_nginx_metrics'):
|
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))
|
print(json.dumps(metrics))
|
||||||
|
|
||||||
if form.getvalue('get_hap_v'):
|
if form.getvalue('get_hap_v'):
|
||||||
import modules.service.common as service_common
|
print(service_common.check_haproxy_version(serv))
|
||||||
|
|
||||||
output = service_common.check_haproxy_version(serv)
|
|
||||||
print(output)
|
|
||||||
|
|
||||||
if form.getvalue('get_nginx_v'):
|
if form.getvalue('get_nginx_v'):
|
||||||
server_id = sql.select_server_id_by_ip(serv)
|
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}"])
|
server_mod.ssh_command(serv, [f"sudo systemctl reload {haproxy_service_name}"])
|
||||||
|
|
||||||
if form.getvalue('bwlists_delete'):
|
if form.getvalue('bwlists_delete'):
|
||||||
color = form.getvalue('color')
|
color = common.checkAjaxInput(form.getvalue('color'))
|
||||||
bwlists_delete = form.getvalue('bwlists_delete')
|
bwlists_delete = common.checkAjaxInput(form.getvalue('bwlists_delete'))
|
||||||
lib_path = get_config.get_config_var('main', 'lib_path')
|
lib_path = get_config.get_config_var('main', 'lib_path')
|
||||||
list_path = lib_path + "/" + sql.get_setting('lists_path') + "/" + form.getvalue(
|
group = common.checkAjaxInput( form.getvalue('group'))
|
||||||
'group') + "/" + color + "/" + bwlists_delete
|
list_path = f"{lib_path}/{sql.get_setting('lists_path')}/{group}/{color}/{bwlists_delete}"
|
||||||
try:
|
try:
|
||||||
os.remove(list_path)
|
os.remove(list_path)
|
||||||
except IOError as e:
|
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
|
path = sql.get_setting('haproxy_dir') + "/" + color
|
||||||
servers = []
|
servers = []
|
||||||
|
@ -1538,14 +1534,14 @@ if form.getvalue('bwlists_delete'):
|
||||||
servers.append(s[2])
|
servers.append(s[2])
|
||||||
|
|
||||||
for serv in servers:
|
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:
|
if error:
|
||||||
print('error: Deleting fail: %s , ' % error)
|
print(f'error: Deleting fail: {error} , ')
|
||||||
else:
|
else:
|
||||||
print('success: the ' + color + ' list has been deleted on ' + serv + ' , ')
|
print(f'success: the {color} list has been deleted on {serv} , ')
|
||||||
try:
|
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:
|
except Exception:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
@ -1791,7 +1787,7 @@ if form.getvalue('newgroup') is not None:
|
||||||
|
|
||||||
output_from_parsed_template = template.render(groups=sql.select_groups(group=newgroup))
|
output_from_parsed_template = template.render(groups=sql.select_groups(group=newgroup))
|
||||||
print(output_from_parsed_template)
|
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:
|
if form.getvalue('groupdel') is not None:
|
||||||
groupdel = form.getvalue('groupdel')
|
groupdel = form.getvalue('groupdel')
|
||||||
|
@ -1800,7 +1796,7 @@ if form.getvalue('groupdel') is not None:
|
||||||
groupname = g.name
|
groupname = g.name
|
||||||
if sql.delete_group(groupdel):
|
if sql.delete_group(groupdel):
|
||||||
print("Ok")
|
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:
|
if form.getvalue('updategroup') is not None:
|
||||||
name = form.getvalue('updategroup')
|
name = form.getvalue('updategroup')
|
||||||
|
@ -1811,7 +1807,7 @@ if form.getvalue('updategroup') is not None:
|
||||||
else:
|
else:
|
||||||
try:
|
try:
|
||||||
sql.update_group(name, descript, group_id)
|
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:
|
except Exception as e:
|
||||||
print('error: ' + str(e))
|
print('error: ' + str(e))
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue