mirror of https://github.com/Aidaho12/haproxy-wi
parent
5b4c513ee2
commit
281008f0d2
36
app/add.py
36
app/add.py
|
@ -45,19 +45,11 @@ if (
|
|||
white_lists = funct.get_files(dir=white_dir, format="lst")
|
||||
black_lists = funct.get_files(dir=black_dir, format="lst")
|
||||
|
||||
template = template.render(title="Add: ",
|
||||
role=role,
|
||||
user=user,
|
||||
selects=servers,
|
||||
add=form.getvalue('add'),
|
||||
conf_add=form.getvalue('conf'),
|
||||
group=user_group,
|
||||
options=sql.select_options(),
|
||||
saved_servers=sql.select_saved_servers(),
|
||||
white_lists=white_lists,
|
||||
black_lists=black_lists,
|
||||
user_services=user_services,
|
||||
token=token)
|
||||
template = template.render(
|
||||
title="Add: ", role=role, user=user, selects=servers, add=form.getvalue('add'), conf_add=form.getvalue('conf'),
|
||||
group=user_group, options=sql.select_options(), saved_servers=sql.select_saved_servers(), white_lists=white_lists,
|
||||
black_lists=black_lists, user_services=user_services, token=token
|
||||
)
|
||||
print(template)
|
||||
|
||||
elif form.getvalue('mode') is not None:
|
||||
|
@ -298,19 +290,13 @@ elif form.getvalue('mode') is not None:
|
|||
except Exception:
|
||||
port_check_val = port
|
||||
|
||||
servers_split += " server {0} {0}:{1}{2} port {6} maxconn {5} {3} {4} \n".format(server,
|
||||
server_port[i],
|
||||
check,
|
||||
send_proxy_param,
|
||||
backup_param,
|
||||
maxconn_val,
|
||||
port_check_val)
|
||||
servers_split += " server {0} {0}:{1}{2} port {6} maxconn {5} {3} {4} \n".format(
|
||||
server, server_port[i], check, send_proxy_param, backup_param, maxconn_val, port_check_val
|
||||
)
|
||||
else:
|
||||
servers_split += " server-template {0} {1} {2}:{3} {4} \n".format(form.getvalue('prefix'),
|
||||
form.getvalue('template-number'),
|
||||
server,
|
||||
server_port[i],
|
||||
check)
|
||||
servers_split += " server-template {0} {1} {2}:{3} {4} \n".format(
|
||||
form.getvalue('prefix'), form.getvalue('template-number'), server, server_port[i], check
|
||||
)
|
||||
i += 1
|
||||
|
||||
compression = form.getvalue("compression")
|
||||
|
|
|
@ -15,7 +15,7 @@ service = form.getvalue('service')
|
|||
is_serv_protected = False
|
||||
try:
|
||||
config_file_name = form.getvalue('config_file_name').replace('92', '/')
|
||||
except:
|
||||
except Exception:
|
||||
config_file_name = ''
|
||||
config_read = ""
|
||||
cfg = ""
|
||||
|
@ -62,7 +62,7 @@ if serv is not None:
|
|||
conf_file_name_short = config_file_name.split('/')[-1]
|
||||
cfg = configs_dir + serv + "-" + conf_file_name_short + "-" + funct.get_data('config') + "." + file_format
|
||||
else:
|
||||
cfg = configs_dir + serv + "-" + funct.get_data('config') + "."+file_format
|
||||
cfg = configs_dir + serv + "-" + funct.get_data('config') + "." + file_format
|
||||
|
||||
if serv is not None and form.getvalue('open') is not None and form.getvalue('new_config') is None:
|
||||
funct.check_is_server_in_group(serv)
|
||||
|
@ -92,7 +92,7 @@ if serv is not None and form.getvalue('open') is not None and form.getvalue('new
|
|||
funct.logging(serv, " HAProxy config has been opened ")
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
|
||||
try:
|
||||
conf = open(cfg, "r")
|
||||
config_read = conf.read()
|
||||
|
@ -141,21 +141,9 @@ if serv is not None and form.getvalue('config') is not None:
|
|||
print('Config is ok <br /> Config has been updated')
|
||||
sys.exit()
|
||||
|
||||
template = template.render(h2=1, title=title,
|
||||
role=role,
|
||||
action=action,
|
||||
user=user,
|
||||
select_id="serv",
|
||||
serv=serv,
|
||||
aftersave=aftersave,
|
||||
config=config_read,
|
||||
cfg=cfg,
|
||||
selects=servers,
|
||||
stderr=stderr,
|
||||
error=error,
|
||||
service=service,
|
||||
user_services=user_services,
|
||||
config_file_name=config_file_name,
|
||||
is_serv_protected=is_serv_protected,
|
||||
token=token)
|
||||
template = template.render(
|
||||
h2=1, title=title, role=role, action=action, user=user, select_id="serv", serv=serv, aftersave=aftersave,
|
||||
config=config_read, cfg=cfg, selects=servers, stderr=stderr, error=error, service=service,
|
||||
user_services=user_services, config_file_name=config_file_name, is_serv_protected=is_serv_protected, token=token
|
||||
)
|
||||
print(template)
|
||||
|
|
|
@ -17,16 +17,18 @@ def default_values():
|
|||
{'param': 'token_ttl', 'value': '5', 'section': 'main', 'desc': 'TTL for a user token (in days)',
|
||||
'group': '1'},
|
||||
{'param': 'tmp_config_path', 'value': '/tmp/', 'section': 'main',
|
||||
'desc': 'Path to the temporary directory. A valid path should be specified as the value of this parameter. The directory must be owned by the user specified in SSH settings',
|
||||
'desc': 'Path to the temporary directory. A valid path should be specified as the value of this parameter. '
|
||||
'The directory must be owned by the user specified in SSH settings',
|
||||
'group': '1'},
|
||||
{'param': 'cert_path', 'value': '/etc/ssl/certs/', 'section': 'main',
|
||||
'desc': 'Path to SSL dir. Folder owner must be a user which set in the SSH settings. Path must exist',
|
||||
'group': '1'},
|
||||
{'param': 'ssl_local_path', 'value': 'certs', 'section': 'main',
|
||||
'desc': 'Path to the directory with the saved local SSL certificates. The value of this parameter is specified as a relative path beginning with $HOME_ROXY_WI/app/',
|
||||
'desc': 'Path to the directory with the saved local SSL certificates. The value of this parameter is '
|
||||
'specified as a relative path beginning with $HOME_ROXY_WI/app/',
|
||||
'group': '1'},
|
||||
{'param': 'lists_path', 'value': 'lists', 'section': 'main',
|
||||
'desc': 'Path to the black and the wild list. The value of this paramer should be specified as a relative path beginning with $HOME_ROXY-WI',
|
||||
'desc': 'Path to the black and the wild list. The value of this parameter should be specified as a relative path beginning with $HOME_ROXY-WI',
|
||||
'group': '1'},
|
||||
{'param': 'haproxy_path_logs', 'value': '/var/log/haproxy/', 'section': 'haproxy',
|
||||
'desc': 'The path for HAProxy logs', 'group': '1'},
|
||||
|
@ -54,7 +56,7 @@ def default_values():
|
|||
'desc': 'Socket port for HAProxy', 'group': '1'},
|
||||
{'param': 'haproxy_sock_port', 'value': '1999', 'section': 'haproxy', 'desc': 'HAProxy sock port',
|
||||
'group': '1'},
|
||||
{'param': 'apache_log_path', 'value': '/var/log/'+apache_dir+'/', 'section': 'logs', 'desc': 'Path to Apache logs',
|
||||
{'param': 'apache_log_path', 'value': '/var/log/' + apache_dir + '/', 'section': 'logs', 'desc': 'Path to Apache logs',
|
||||
'group': '1'},
|
||||
{'param': 'nginx_path_logs', 'value': '/var/log/nginx/', 'section': 'nginx',
|
||||
'desc': 'The path for NGINX logs', 'group': '1'},
|
||||
|
@ -448,8 +450,9 @@ def update_db_v_3_4_5_22():
|
|||
# Needs for updating user_group. Do not delete
|
||||
def update_db_v_4_3_0(**kwargs):
|
||||
try:
|
||||
UserGroups.insert_from(User.select(User.user_id, User.groups),
|
||||
fields=[UserGroups.user_id, UserGroups.user_group_id]).on_conflict_ignore().execute()
|
||||
UserGroups.insert_from(
|
||||
User.select(User.user_id, User.groups), fields=[UserGroups.user_id, UserGroups.user_group_id]
|
||||
).on_conflict_ignore().execute()
|
||||
except Exception as e:
|
||||
if kwargs.get('silent') != 1:
|
||||
if e.args[0] == 'duplicate column name: haproxy' or str(e) == '(1060, "Duplicate column name \'haproxy\'")':
|
||||
|
@ -533,7 +536,7 @@ def update_db_v_5_2_5_3(**kwargs):
|
|||
for i in sql:
|
||||
try:
|
||||
cursor.execute(i)
|
||||
except:
|
||||
except Exception:
|
||||
pass
|
||||
else:
|
||||
if kwargs.get('silent') != 1:
|
||||
|
@ -566,27 +569,25 @@ def update_db_v_5_3_0(**kwargs):
|
|||
try:
|
||||
data_source = [
|
||||
{'param': 'nginx_container_name', 'value': 'nginx', 'section': 'nginx',
|
||||
'desc': 'Docker container name for NGINX service',
|
||||
'group': g.group_id},
|
||||
'desc': 'Docker container name for NGINX service', 'group': g.group_id},
|
||||
{'param': 'haproxy_container_name', 'value': 'haproxy', 'section': 'haproxy',
|
||||
'desc': 'Docker container name for HAProxy service',
|
||||
'group': g.group_id},
|
||||
'desc': 'Docker container name for HAProxy service', 'group': g.group_id},
|
||||
{'param': 'apache_path_logs', 'value': '/var/log/httpd/', 'section': 'apache',
|
||||
'desc': 'The path for Apache logs', 'group': g.group_id},
|
||||
'desc': 'The path for Apache logs', 'group': g.group_id},
|
||||
{'param': 'apache_stats_user', 'value': 'admin', 'section': 'apache',
|
||||
'desc': 'Username for accessing Apache stats page', 'group': g.group_id},
|
||||
'desc': 'Username for accessing Apache stats page', 'group': g.group_id},
|
||||
{'param': 'apache_stats_password', 'value': 'password', 'section': 'apache',
|
||||
'desc': 'Password for Apache stats webpage', 'group': g.group_id},
|
||||
'desc': 'Password for Apache stats webpage', 'group': g.group_id},
|
||||
{'param': 'apache_stats_port', 'value': '8087', 'section': 'apache', 'desc': 'Stats port for webpage Apache',
|
||||
'group': g.group_id},
|
||||
'group': g.group_id},
|
||||
{'param': 'apache_stats_page', 'value': 'stats', 'section': 'apache', 'desc': 'URI Stats for webpage Apache',
|
||||
'group': g.group_id},
|
||||
'group': g.group_id},
|
||||
{'param': 'apache_dir', 'value': '/etc/httpd/', 'section': 'apache',
|
||||
'desc': 'Path to the Apache directory with config files', 'group': g.group_id},
|
||||
'desc': 'Path to the Apache directory with config files', 'group': g.group_id},
|
||||
{'param': 'apache_config_path', 'value': '/etc/httpd/conf/httpd.conf', 'section': 'apache',
|
||||
'desc': 'Path to the main Apache configuration file', 'group': g.group_id},
|
||||
'desc': 'Path to the main Apache configuration file', 'group': g.group_id},
|
||||
{'param': 'apache_container_name', 'value': 'apache', 'section': 'apache',
|
||||
'desc': 'Docker container name for Apache service', 'group': g.group_id},
|
||||
'desc': 'Docker container name for Apache service', 'group': g.group_id},
|
||||
]
|
||||
|
||||
try:
|
||||
|
@ -600,9 +601,9 @@ def update_db_v_5_3_0(**kwargs):
|
|||
except Exception as e:
|
||||
if kwargs.get('silent') != 1:
|
||||
if (
|
||||
str(e) == 'columns param, group are not unique' or
|
||||
str(e) == '(1062, "Duplicate entry \'nginx_container_name\' for key \'param\'")' or
|
||||
str(e) == 'UNIQUE constraint failed: settings.param, settings.group'
|
||||
str(e) == 'columns param, group are not unique'
|
||||
or str(e) == '(1062, "Duplicate entry \'nginx_container_name\' for key \'param\'")'
|
||||
or str(e) == 'UNIQUE constraint failed: settings.param, settings.group'
|
||||
):
|
||||
pass
|
||||
else:
|
||||
|
@ -690,7 +691,7 @@ def update_db_v_6_0(**kwargs):
|
|||
for i in sql:
|
||||
try:
|
||||
cursor.execute(i)
|
||||
except Exception as e:
|
||||
except Exception:
|
||||
pass
|
||||
else:
|
||||
if kwargs.get('silent') != 1:
|
||||
|
@ -712,7 +713,7 @@ def update_ver():
|
|||
query = Version.update(version='6.0.2.0')
|
||||
try:
|
||||
query.execute()
|
||||
except:
|
||||
except Exception:
|
||||
print('Cannot update version')
|
||||
|
||||
|
||||
|
|
14
app/ha.py
14
app/ha.py
|
@ -23,14 +23,8 @@ except Exception as e:
|
|||
funct.logging('localhost', 'Cannot get a user plan: ' + str(e), haproxywi=1)
|
||||
|
||||
|
||||
output_from_parsed_template = template.render(h2=1,
|
||||
title="Create and configure HA cluster",
|
||||
role=role,
|
||||
user=user,
|
||||
serv=serv,
|
||||
selects=servers,
|
||||
user_services=user_services,
|
||||
user_status=user_status,
|
||||
user_plan=user_plan,
|
||||
token=token)
|
||||
output_from_parsed_template = template.render(
|
||||
h2=1, title="Create and configure HA cluster", role=role, user=user, serv=serv, selects=servers,
|
||||
user_services=user_services, user_status=user_status, user_plan=user_plan, token=token
|
||||
)
|
||||
print(output_from_parsed_template)
|
||||
|
|
|
@ -102,12 +102,15 @@ for s in servers:
|
|||
if service == 'nginx':
|
||||
h = (['', ''],)
|
||||
cmd = [
|
||||
"/usr/sbin/nginx -v 2>&1|awk '{print $3}' && systemctl status nginx |grep -e 'Active' |awk '{print $2, $9$10$11$12$13}' && ps ax |grep nginx:|grep -v grep |wc -l"]
|
||||
"/usr/sbin/nginx -v 2>&1|awk '{print $3}' && systemctl status nginx |grep -e 'Active' |awk "
|
||||
"'{print $2, $9$10$11$12$13}' && ps ax |grep nginx:|grep -v grep |wc -l"]
|
||||
for service_set in service_settings:
|
||||
if service_set.server_id == s[0] and service_set.setting == 'dockerized' and service_set.value == '1':
|
||||
container_name = sql.get_setting('nginx_container_name')
|
||||
cmd = [
|
||||
"docker exec -it "+container_name+" /usr/sbin/nginx -v 2>&1|awk '{print $3}' && docker ps -a -f name="+container_name+" --format '{{.Status}}'|tail -1 && ps ax |grep nginx:|grep -v grep |wc -l"
|
||||
"docker exec -it " + container_name + " /usr/sbin/nginx -v 2>&1|awk '{print $3}' && "
|
||||
"docker ps -a -f name="+container_name+" --format '{{.Status}}'|tail -1 && ps ax |grep nginx:"
|
||||
"|grep -v grep |wc -l"
|
||||
]
|
||||
try:
|
||||
out = funct.ssh_command(s[2], cmd)
|
||||
|
@ -119,14 +122,16 @@ for s in servers:
|
|||
servers_with_status.append(h)
|
||||
servers_with_status.append(h)
|
||||
servers_with_status.append(s[17])
|
||||
except:
|
||||
except Exception:
|
||||
servers_with_status.append(h)
|
||||
servers_with_status.append(h)
|
||||
servers_with_status.append(s[17])
|
||||
elif service == 'keepalived':
|
||||
h = (['', ''],)
|
||||
cmd = [
|
||||
"/usr/sbin/keepalived -v 2>&1|head -1|awk '{print $2}' && systemctl status keepalived |grep -e 'Active' |awk '{print $2, $9$10$11$12$13}' && ps ax |grep keepalived|grep -v grep |wc -l"]
|
||||
"/usr/sbin/keepalived -v 2>&1|head -1|awk '{print $2}' && systemctl status keepalived |"
|
||||
"grep -e 'Active' |awk '{print $2, $9$10$11$12$13}' && ps ax |grep keepalived|grep -v grep |wc -l"
|
||||
]
|
||||
try:
|
||||
out = funct.ssh_command(s[2], cmd)
|
||||
out1 = []
|
||||
|
@ -136,7 +141,7 @@ for s in servers:
|
|||
servers_with_status.append(h)
|
||||
servers_with_status.append(h)
|
||||
servers_with_status.append(s[22])
|
||||
except:
|
||||
except Exception:
|
||||
servers_with_status.append(h)
|
||||
servers_with_status.append(h)
|
||||
servers_with_status.append(s[22])
|
||||
|
@ -146,14 +151,16 @@ for s in servers:
|
|||
apache_stats_password = sql.get_setting('apache_stats_password')
|
||||
apache_stats_port = sql.get_setting('apache_stats_port')
|
||||
apache_stats_page = sql.get_setting('apache_stats_page')
|
||||
cmd = "curl -s -u %s:%s http://%s:%s/%s?auto |grep 'ServerVersion\|Processes\|ServerUptime:'" % (apache_stats_user, apache_stats_password, s[2], apache_stats_port, apache_stats_page)
|
||||
cmd = "curl -s -u %s:%s http://%s:%s/%s?auto |grep 'ServerVersion\|Processes\|ServerUptime:'" % (
|
||||
apache_stats_user, apache_stats_password, s[2], apache_stats_port, apache_stats_page
|
||||
)
|
||||
try:
|
||||
out = funct.subprocess_execute(cmd)
|
||||
if out != '':
|
||||
for k in out:
|
||||
servers_with_status.append(k)
|
||||
servers_with_status.append(s[22])
|
||||
except:
|
||||
except Exception:
|
||||
servers_with_status.append(h)
|
||||
servers_with_status.append(h)
|
||||
servers_with_status.append(s[22])
|
||||
|
@ -176,7 +183,8 @@ for s in servers:
|
|||
|
||||
if is_keepalived:
|
||||
try:
|
||||
cmd = ['sudo kill -USR1 `cat /var/run/keepalived.pid` && sudo grep State /tmp/keepalived.data -m 1 |awk -F"=" \'{print $2}\'|tr -d \'[:space:]\' && sudo rm -f /tmp/keepalived.data']
|
||||
cmd = ['sudo kill -USR1 `cat /var/run/keepalived.pid` && sudo grep State /tmp/keepalived.data -m 1 |'
|
||||
'awk -F"=" \'{print $2}\'|tr -d \'[:space:]\' && sudo rm -f /tmp/keepalived.data']
|
||||
out = funct.ssh_command(s[2], cmd)
|
||||
out1 = ('1', out)
|
||||
servers_with_status.append(out1)
|
||||
|
@ -193,19 +201,9 @@ 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,
|
||||
autorefresh=autorefresh,
|
||||
title=title,
|
||||
role=role,
|
||||
user=user,
|
||||
servers=servers_with_status1,
|
||||
keep_alive=''.join(keep_alive),
|
||||
serv=serv,
|
||||
service=service,
|
||||
services=services,
|
||||
user_services=user_services,
|
||||
service_settings=service_settings,
|
||||
user_status=user_status,
|
||||
user_plan=user_plan,
|
||||
token=token)
|
||||
template = template.render(
|
||||
h2=1, autorefresh=autorefresh, title=title, role=role, user=user, servers=servers_with_status1,
|
||||
keep_alive=''.join(keep_alive), serv=serv, service=service, services=services, user_services=user_services,
|
||||
service_settings=service_settings, user_status=user_status, user_plan=user_plan, token=token
|
||||
)
|
||||
print(template)
|
||||
|
|
Loading…
Reference in New Issue