mirror of https://github.com/Aidaho12/haproxy-wi
parent
f3e43892fa
commit
3c8ab621fd
|
@ -46,7 +46,6 @@ if form.getvalue('mode') is None and form.getvalue('new_userlist') is None:
|
||||||
add=form.getvalue('add'),
|
add=form.getvalue('add'),
|
||||||
conf_add=form.getvalue('conf'),
|
conf_add=form.getvalue('conf'),
|
||||||
group=user_group,
|
group=user_group,
|
||||||
versions=funct.versions(),
|
|
||||||
options=sql.select_options(),
|
options=sql.select_options(),
|
||||||
saved_servers=sql.select_saved_servers(),
|
saved_servers=sql.select_saved_servers(),
|
||||||
white_lists=white_lists,
|
white_lists=white_lists,
|
||||||
|
|
|
@ -125,8 +125,6 @@ template = template.render(h2=1, title=title,
|
||||||
selects=servers,
|
selects=servers,
|
||||||
stderr=stderr,
|
stderr=stderr,
|
||||||
error=error,
|
error=error,
|
||||||
note=1,
|
|
||||||
versions=funct.versions(),
|
|
||||||
service=service,
|
service=service,
|
||||||
token=token)
|
token=token)
|
||||||
print(template)
|
print(template)
|
||||||
|
|
18
app/ha.py
18
app/ha.py
|
@ -6,22 +6,22 @@ template = env.get_template('ha.html')
|
||||||
|
|
||||||
print('Content-type: text/html\n')
|
print('Content-type: text/html\n')
|
||||||
funct.check_login()
|
funct.check_login()
|
||||||
funct.page_for_admin(level = 2)
|
funct.page_for_admin(level=2)
|
||||||
|
|
||||||
form = funct.form
|
form = funct.form
|
||||||
serv = form.getvalue('serv')
|
serv = form.getvalue('serv')
|
||||||
|
|
||||||
try:
|
try:
|
||||||
user, user_id, role, token, servers = funct.get_users_params()
|
user, user_id, role, token, servers = funct.get_users_params()
|
||||||
except:
|
except Exception:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
output_from_parsed_template = template.render(h2 = 1, title = "Create and configure HA cluster",
|
output_from_parsed_template = template.render(h2=1,
|
||||||
role = role,
|
title="Create and configure HA cluster",
|
||||||
user = user,
|
role=role,
|
||||||
serv = serv,
|
user=user,
|
||||||
selects = servers,
|
serv=serv,
|
||||||
versions = funct.versions(),
|
selects=servers,
|
||||||
token = token)
|
token=token)
|
||||||
print(output_from_parsed_template)
|
print(output_from_parsed_template)
|
||||||
|
|
|
@ -104,7 +104,6 @@ template = template.render(h2=1,
|
||||||
users=users,
|
users=users,
|
||||||
groups=groups,
|
groups=groups,
|
||||||
servers=servers_with_status1,
|
servers=servers_with_status1,
|
||||||
versions=funct.versions(),
|
|
||||||
keep_alive=''.join(keep_alive),
|
keep_alive=''.join(keep_alive),
|
||||||
serv=serv,
|
serv=serv,
|
||||||
service=service,
|
service=service,
|
||||||
|
|
42
app/logs.py
42
app/logs.py
|
@ -33,7 +33,7 @@ funct.check_login()
|
||||||
|
|
||||||
try:
|
try:
|
||||||
user, user_id, role, token, servers = funct.get_users_params()
|
user, user_id, role, token, servers = funct.get_users_params()
|
||||||
except:
|
except Exception:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
if service == 'nginx':
|
if service == 'nginx':
|
||||||
|
@ -41,26 +41,22 @@ if service == 'nginx':
|
||||||
else:
|
else:
|
||||||
title = "HAProxy`s logs"
|
title = "HAProxy`s logs"
|
||||||
|
|
||||||
template = template.render(h2 = 1,
|
template = template.render(h2=1,
|
||||||
autorefresh = 1,
|
autorefresh=1,
|
||||||
title = title,
|
title=title,
|
||||||
role = role,
|
role=role,
|
||||||
user = user,
|
user=user,
|
||||||
select_id = "serv",
|
select_id="serv",
|
||||||
selects = servers,
|
selects=servers,
|
||||||
serv = form.getvalue('serv'),
|
serv=form.getvalue('serv'),
|
||||||
rows = rows,
|
rows=rows,
|
||||||
grep = grep,
|
grep=grep,
|
||||||
exgrep = exgrep,
|
exgrep=exgrep,
|
||||||
hour = hour,
|
hour=hour,
|
||||||
hour1 = hour1,
|
hour1=hour1,
|
||||||
minut = minut,
|
minut=minut,
|
||||||
minut1 = minut1,
|
minut1=minut1,
|
||||||
waf = waf,
|
waf=waf,
|
||||||
versions = funct.versions(),
|
service=service,
|
||||||
service = service,
|
token=token)
|
||||||
token = token)
|
|
||||||
print(template)
|
print(template)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -29,7 +29,6 @@ template = template.render(h2=1, title="Metrics",
|
||||||
role=role,
|
role=role,
|
||||||
user=user,
|
user=user,
|
||||||
servers=servers,
|
servers=servers,
|
||||||
versions=funct.versions(),
|
|
||||||
services=services,
|
services=services,
|
||||||
token=token)
|
token=token)
|
||||||
print(template)
|
print(template)
|
||||||
|
|
|
@ -126,7 +126,6 @@ template = template.render(h2=1,
|
||||||
checker_error_log_id=funct.haproxy_wi_log(log_id=1, file="checker-error"),
|
checker_error_log_id=funct.haproxy_wi_log(log_id=1, file="checker-error"),
|
||||||
metrics_error_log_id=funct.haproxy_wi_log(log_id=1, file="metrics-error"),
|
metrics_error_log_id=funct.haproxy_wi_log(log_id=1, file="metrics-error"),
|
||||||
error=stderr,
|
error=stderr,
|
||||||
versions=funct.versions(),
|
|
||||||
haproxy_wi_log=funct.haproxy_wi_log(),
|
haproxy_wi_log=funct.haproxy_wi_log(),
|
||||||
servers=servers,
|
servers=servers,
|
||||||
is_checker_worker=is_checker_worker,
|
is_checker_worker=is_checker_worker,
|
||||||
|
|
|
@ -14,17 +14,16 @@ try:
|
||||||
serv = form.getvalue('serv')
|
serv = form.getvalue('serv')
|
||||||
if servbackend is None:
|
if servbackend is None:
|
||||||
servbackend = ""
|
servbackend = ""
|
||||||
except:
|
except Exception:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
template = template.render(h2 = 0,
|
template = template.render(h2=0,
|
||||||
title = "RunTime API",
|
title="RunTime API",
|
||||||
role = role,
|
role=role,
|
||||||
user = user,
|
user=user,
|
||||||
select_id = "serv",
|
select_id="serv",
|
||||||
selects = servers,
|
selects=servers,
|
||||||
token = token,
|
token=token,
|
||||||
versions = funct.versions(),
|
servbackend=servbackend)
|
||||||
servbackend = servbackend)
|
|
||||||
print(template)
|
print(template)
|
||||||
|
|
|
@ -87,6 +87,5 @@ template = template.render(h2=1, title="Working with HAProxy configs",
|
||||||
end_line=end_line,
|
end_line=end_line,
|
||||||
section=section,
|
section=section,
|
||||||
sections=sections,
|
sections=sections,
|
||||||
versions=funct.versions(),
|
|
||||||
token=token)
|
token=token)
|
||||||
print(template)
|
print(template)
|
||||||
|
|
|
@ -50,7 +50,6 @@ output_from_parsed_template = template.render(title="Servers: ",
|
||||||
sshs=sql.select_ssh(group=user_group),
|
sshs=sql.select_ssh(group=user_group),
|
||||||
telegrams=sql.get_user_telegram_by_group(user_group),
|
telegrams=sql.get_user_telegram_by_group(user_group),
|
||||||
token=token,
|
token=token,
|
||||||
versions=funct.versions(),
|
|
||||||
settings=settings,
|
settings=settings,
|
||||||
backups=sql.select_backups(),
|
backups=sql.select_backups(),
|
||||||
grafana=''.join(grafana),
|
grafana=''.join(grafana),
|
||||||
|
|
|
@ -46,7 +46,6 @@ template = template.render(h2=1, title=title,
|
||||||
user=user,
|
user=user,
|
||||||
group=user_group,
|
group=user_group,
|
||||||
telegrams=sql.get_user_telegram_by_group(user_group),
|
telegrams=sql.get_user_telegram_by_group(user_group),
|
||||||
versions=funct.versions(),
|
|
||||||
smon=smon,
|
smon=smon,
|
||||||
smon_status=smon_status,
|
smon_status=smon_status,
|
||||||
smon_error=stderr,
|
smon_error=stderr,
|
||||||
|
|
|
@ -0,0 +1,17 @@
|
||||||
|
{% if versions is defined %}
|
||||||
|
{% set current_ver = versions.0 %}
|
||||||
|
{% set new_ver = versions.1 %}
|
||||||
|
{% set current_ver_without_dots = versions.2 %}
|
||||||
|
{% set new_ver_without_dots = versions.3 %}
|
||||||
|
{% endif %}
|
||||||
|
{% if new_ver_without_dots is defined and current_ver_without_dots is defined and new_ver is defined and new_ver_without_dots is defined %}
|
||||||
|
<a style="color: #000; cursor: pointer;">
|
||||||
|
{% if new_ver_without_dots > current_ver_without_dots and new_ver != "Sorry cannot get current version" %}
|
||||||
|
<span id="show-updates-button" class="new-version-exists">v{{current_ver}} </span>
|
||||||
|
{% else %}
|
||||||
|
<a href="/app/users.py#updatehapwi" title="Update center" style="color: black;">v{{current_ver}}</a>
|
||||||
|
{% endif %}
|
||||||
|
</a>
|
||||||
|
{% else %}
|
||||||
|
<a href="/app/users.py#updatehapwi" title="Update center" style="color: black;">v{{current_ver}}</a>
|
||||||
|
{% endif %}
|
|
@ -26,11 +26,9 @@
|
||||||
<meta name="msapplication-TileColor" content="#ffffff">
|
<meta name="msapplication-TileColor" content="#ffffff">
|
||||||
<meta name="msapplication-TileImage" content="/inc/images/favicon/ms-icon-144x144.png">
|
<meta name="msapplication-TileImage" content="/inc/images/favicon/ms-icon-144x144.png">
|
||||||
<meta name="theme-color" content="#ffffff">
|
<meta name="theme-color" content="#ffffff">
|
||||||
<script>
|
|
||||||
FontAwesomeConfig = { searchPseudoElements: true, observeMutations: false };
|
|
||||||
</script>
|
|
||||||
<script defer src="/inc/fa-solid.min.js"></script>
|
<script defer src="/inc/fa-solid.min.js"></script>
|
||||||
<script defer src="/inc/fontawesome.min.js"></script>
|
<script defer src="/inc/fontawesome.min.js"></script>
|
||||||
|
<script>FontAwesomeConfig = { searchPseudoElements: true, observeMutations: false };</script>
|
||||||
<script defer src="/inc/ion.sound.min.js"></script>
|
<script defer src="/inc/ion.sound.min.js"></script>
|
||||||
<link href="/inc/awesome.css" rel="stylesheet">
|
<link href="/inc/awesome.css" rel="stylesheet">
|
||||||
<link href="/inc/style.css" rel="stylesheet">
|
<link href="/inc/style.css" rel="stylesheet">
|
||||||
|
@ -175,50 +173,26 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="auto-refresh-ul" id="secIntervals">
|
<div class="auto-refresh-ul" id="secIntervals">
|
||||||
<ul style="width: 100px;">
|
<ul style="width: 100px;">
|
||||||
<li>
|
<li><a title="Auto-refresh every 5 seconds" onclick="setRefreshInterval(5000)">5 seconds</a></li>
|
||||||
<a title="Auto-refresh every 5 seconds" onclick="setRefreshInterval(5000)">5 seconds</a>
|
<li><a title="Auto-refresh every 10 seconds" onclick="setRefreshInterval(10000)">10 seconds</a></li>
|
||||||
</li>
|
<li><a title="Auto-refresh every 30 seconds" onclick="setRefreshInterval(30000)">30 seconds</a></li>
|
||||||
<li>
|
<li><a title="Auto-refresh ever 45 seconds" onclick="setRefreshInterval(45000)">45 seconds</a></li>
|
||||||
<a title="Auto-refresh every 10 seconds" onclick="setRefreshInterval(10000)">10 seconds</a>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<a title="Auto-refresh every 30 seconds" onclick="setRefreshInterval(30000)">30 seconds</a>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<a title="Auto-refresh ever 45 seconds" onclick="setRefreshInterval(45000)">45 seconds</a>
|
|
||||||
</li>
|
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<div class="auto-refresh-ul">
|
<div class="auto-refresh-ul">
|
||||||
<ul style="width: 100px;">
|
<ul style="width: 100px;">
|
||||||
<li>
|
<li><a title="Auto-refresh every 1 minute" onclick="setRefreshInterval(60000)">1 minute</a></li>
|
||||||
<a title="Auto-refresh every 1 minute" onclick="setRefreshInterval(60000)">1 minute</a>
|
<li><a title="Auto-refresh every 5 minutes" onclick="setRefreshInterval(300000)">5 minutes</a></li>
|
||||||
</li>
|
<li><a title="Auto-refresh every 15 minutes" onclick="setRefreshInterval(900000)">15 minutes</a></li>
|
||||||
<li>
|
<li><a title="Auto-refresh ever 30 minutes" onclick="setRefreshInterval(1800000)">30 minutes</a></li>
|
||||||
<a title="Auto-refresh every 5 minutes" onclick="setRefreshInterval(300000)">5 minutes</a>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<a title="Auto-refresh every 15 minutes" onclick="setRefreshInterval(900000)">15 minutes</a>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<a title="Auto-refresh ever 30 minutes" onclick="setRefreshInterval(1800000)">30 minutes</a>
|
|
||||||
</li>
|
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<div class="auto-refresh-ul">
|
<div class="auto-refresh-ul">
|
||||||
<ul style="width: 100px;">
|
<ul style="width: 100px;">
|
||||||
<li>
|
<li><a title="Auto-refresh every 1 hour" onclick="setRefreshInterval(3600000)">1 hour</a></li>
|
||||||
<a title="Auto-refresh every 1 hour" onclick="setRefreshInterval(3600000)">1 hour</a>
|
<li><a title="Auto-refresh every 2 hour" onclick="setRefreshInterval(7200000)">2 hour</a></li>
|
||||||
</li>
|
<li><a title="Auto-refresh every 12 hour" onclick="setRefreshInterval(43200000)">12 hour</a></li>
|
||||||
<li>
|
<li><a title="Auto-refresh ever 1 day" onclick="setRefreshInterval(86400000)">1 day</a></li>
|
||||||
<a title="Auto-refresh every 2 hour" onclick="setRefreshInterval(7200000)">2 hour</a>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<a title="Auto-refresh every 12 hour" onclick="setRefreshInterval(43200000)">12 hour</a>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<a title="Auto-refresh ever 1 day" onclick="setRefreshInterval(86400000)">1 day</a>
|
|
||||||
</li>
|
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -256,26 +230,7 @@
|
||||||
</span>
|
</span>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
<div id="version">
|
<div id="version"></div>
|
||||||
{% if versions is defined %}
|
|
||||||
{% set current_ver = versions.0 %}
|
|
||||||
{% set new_ver = versions.1 %}
|
|
||||||
{% set current_ver_without_dots = versions.2 %}
|
|
||||||
{% set new_ver_without_dots = versions.3 %}
|
|
||||||
{% endif %}
|
|
||||||
{% if new_ver_without_dots is defined and current_ver_without_dots is defined and new_ver is defined and new_ver_without_dots is defined %}
|
|
||||||
<a style="color: #000; cursor: pointer;">
|
|
||||||
{% if new_ver_without_dots > current_ver_without_dots and new_ver != "Sorry cannot get current version" %}
|
|
||||||
<span id="show-updates-button" class="new-version-exists">v{{current_ver}} </span>
|
|
||||||
{% else %}
|
|
||||||
<a href="/app/users.py#updatehapwi" title="Update center" style="color: black;">v{{current_ver}}</a>
|
|
||||||
{% endif %}
|
|
||||||
</a>
|
|
||||||
{% else %}
|
|
||||||
<a href="/app/users.py#updatehapwi" title="Update center" style="color: black;">v{{current_ver}}</a>
|
|
||||||
{% endif %}
|
|
||||||
<br>
|
|
||||||
</div>
|
|
||||||
<div id="logo_footer">
|
<div id="logo_footer">
|
||||||
<a href="https://haproxy-wi.org" title="HAProxy-WI official site" target="_blank">
|
<a href="https://haproxy-wi.org" title="HAProxy-WI official site" target="_blank">
|
||||||
<img src="/inc/images/logo_footer.png" alt="logo" id="logo_footer_img" />
|
<img src="/inc/images/logo_footer.png" alt="logo" id="logo_footer_img" />
|
||||||
|
|
|
@ -15,7 +15,7 @@
|
||||||
</th>
|
</th>
|
||||||
<th class="checkbox-head" style="width: 5%">HAProxy</th>
|
<th class="checkbox-head" style="width: 5%">HAProxy</th>
|
||||||
<th class="checkbox-head" style="width: 5%">Nginx</th>
|
<th class="checkbox-head" style="width: 5%">Nginx</th>
|
||||||
<th class="checkbox-head" style="width: 10%">
|
<th class="checkbox-head" style="width: 15%">
|
||||||
<span title="If the server has a firewall enabled, enable this option">Firewalld</span>
|
<span title="If the server has a firewall enabled, enable this option">Firewalld</span>
|
||||||
</th>
|
</th>
|
||||||
<th class="slave-field" style="width: 10%">
|
<th class="slave-field" style="width: 10%">
|
||||||
|
|
|
@ -28,7 +28,7 @@
|
||||||
{% if first %}
|
{% if first %}
|
||||||
<option {{disabled}} selected>{{first}}</option>
|
<option {{disabled}} selected>{{first}}</option>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% for v, des in values|dictsort(false, 'value') %}
|
{% for v, des in values.items() %}
|
||||||
{% if v == selected %}
|
{% if v == selected %}
|
||||||
<option value="{{v}}" selected>{{des}}</option>
|
<option value="{{v}}" selected>{{des}}</option>
|
||||||
{% else %}
|
{% else %}
|
||||||
|
|
|
@ -40,7 +40,11 @@ try:
|
||||||
service_name = s
|
service_name = s
|
||||||
cmd = "rpm --query haproxy-wi-"+service_name+"-* |awk -F\""+service_name + "\" '{print $2}' |awk -F\".noa\" '{print $1}' |sed 's/-//1' |sed 's/-/./'"
|
cmd = "rpm --query haproxy-wi-"+service_name+"-* |awk -F\""+service_name + "\" '{print $2}' |awk -F\".noa\" '{print $1}' |sed 's/-//1' |sed 's/-/./'"
|
||||||
service_ver, stderr = funct.subprocess_execute(cmd)
|
service_ver, stderr = funct.subprocess_execute(cmd)
|
||||||
|
|
||||||
|
try:
|
||||||
services.append([s, status, v, service_ver[0]])
|
services.append([s, status, v, service_ver[0]])
|
||||||
|
except Exception:
|
||||||
|
services.append([s, status, v, ''])
|
||||||
|
|
||||||
try:
|
try:
|
||||||
os_name = platform.linux_distribution()[0]
|
os_name = platform.linux_distribution()[0]
|
||||||
|
|
|
@ -71,7 +71,7 @@ if serv is not None and form.getvalue('config') is not None:
|
||||||
aftersave = 1
|
aftersave = 1
|
||||||
try:
|
try:
|
||||||
funct.logging(serv, "configver.py upload old config %s" % configver)
|
funct.logging(serv, "configver.py upload old config %s" % configver)
|
||||||
except:
|
except Exception:
|
||||||
pass
|
pass
|
||||||
if service == 'keepalived':
|
if service == 'keepalived':
|
||||||
stderr = funct.upload_and_restart(serv, configver, just_save=save, keepalived=1)
|
stderr = funct.upload_and_restart(serv, configver, just_save=save, keepalived=1)
|
||||||
|
@ -81,21 +81,20 @@ if serv is not None and form.getvalue('config') is not None:
|
||||||
stderr = funct.master_slave_upload_and_restart(serv, configver, just_save=save)
|
stderr = funct.master_slave_upload_and_restart(serv, configver, just_save=save)
|
||||||
|
|
||||||
|
|
||||||
template = template.render(h2 = 1, title = title,
|
template = template.render(h2=1, title=title,
|
||||||
role = role,
|
role=role,
|
||||||
action = action,
|
action=action,
|
||||||
user = user,
|
user=user,
|
||||||
select_id = "serv",
|
select_id="serv",
|
||||||
serv = serv,
|
serv=serv,
|
||||||
aftersave = aftersave,
|
aftersave=aftersave,
|
||||||
return_files = files,
|
return_files=files,
|
||||||
selects = servers,
|
selects=servers,
|
||||||
stderr = stderr,
|
stderr=stderr,
|
||||||
open = form.getvalue('open'),
|
open=form.getvalue('open'),
|
||||||
Select = form.getvalue('del'),
|
Select=form.getvalue('del'),
|
||||||
file = file,
|
file=file,
|
||||||
versions = funct.versions(),
|
configver=configver,
|
||||||
configver = configver,
|
service=service,
|
||||||
service = service,
|
token=token)
|
||||||
token = token)
|
|
||||||
print(template)
|
print(template)
|
||||||
|
|
|
@ -49,19 +49,17 @@ try:
|
||||||
curpath = os.path.join(dirpath, file)
|
curpath = os.path.join(dirpath, file)
|
||||||
try:
|
try:
|
||||||
funct.subprocess_execute('sudo chown apache:apache ' + curpath)
|
funct.subprocess_execute('sudo chown apache:apache ' + curpath)
|
||||||
except:
|
except Exception:
|
||||||
pass
|
pass
|
||||||
file_modified = datetime.datetime.fromtimestamp(os.path.getmtime(curpath))
|
file_modified = datetime.datetime.fromtimestamp(os.path.getmtime(curpath))
|
||||||
if datetime.datetime.now() - file_modified > datetime.timedelta(hours=time_storage_hours):
|
if datetime.datetime.now() - file_modified > datetime.timedelta(hours=time_storage_hours):
|
||||||
os.remove(curpath)
|
os.remove(curpath)
|
||||||
except:
|
except Exception:
|
||||||
print(
|
|
||||||
'<center><div class="alert alert-danger" style="margin: 0; margin-bottom: 10px;">Can\'t delete old logs file. <br> Please check "log_time_storage" in config and <br>exist directory </div></center>')
|
|
||||||
pass
|
pass
|
||||||
|
|
||||||
try:
|
try:
|
||||||
user, user_id, role, token, servers = funct.get_users_params()
|
user, user_id, role, token, servers = funct.get_users_params()
|
||||||
except:
|
except Exception:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
selects = funct.get_files(log_path, format="log")
|
selects = funct.get_files(log_path, format="log")
|
||||||
|
@ -84,7 +82,6 @@ output_from_parsed_template = template.render(h2=1,
|
||||||
hour1=hour1,
|
hour1=hour1,
|
||||||
minut=minut,
|
minut=minut,
|
||||||
minut1=minut1,
|
minut1=minut1,
|
||||||
versions=funct.versions(),
|
|
||||||
page = page,
|
page = page,
|
||||||
token=token)
|
token=token)
|
||||||
print(output_from_parsed_template)
|
print(output_from_parsed_template)
|
||||||
|
|
|
@ -10,6 +10,11 @@ service = form.getvalue('service')
|
||||||
print('Content-type: text/html\n')
|
print('Content-type: text/html\n')
|
||||||
funct.check_login()
|
funct.check_login()
|
||||||
|
|
||||||
|
if service == 'nginx':
|
||||||
|
title = 'Nginx stats page'
|
||||||
|
else:
|
||||||
|
title = 'HAProxy stats page'
|
||||||
|
|
||||||
try:
|
try:
|
||||||
user, user_id, role, token, servers = funct.get_users_params(virt=1)
|
user, user_id, role, token, servers = funct.get_users_params(virt=1)
|
||||||
|
|
||||||
|
@ -18,21 +23,20 @@ try:
|
||||||
for i in first_serv:
|
for i in first_serv:
|
||||||
serv = i[2]
|
serv = i[2]
|
||||||
break
|
break
|
||||||
except:
|
except Exception:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
output_from_parsed_template = template.render(h2 = 1,
|
output_from_parsed_template = template.render(h2=1,
|
||||||
autorefresh = 1,
|
autorefresh=1,
|
||||||
title = "HAProxy statistics",
|
title=title,
|
||||||
role = role,
|
role=role,
|
||||||
user = user,
|
user=user,
|
||||||
onclick = "showStats()",
|
onclick="showStats()",
|
||||||
select_id = "serv",
|
select_id="serv",
|
||||||
selects = servers,
|
selects=servers,
|
||||||
serv = serv,
|
serv=serv,
|
||||||
versions = funct.versions(),
|
service=service,
|
||||||
service = service,
|
token=token)
|
||||||
token = token)
|
|
||||||
print(output_from_parsed_template)
|
print(output_from_parsed_template)
|
||||||
|
|
||||||
|
|
38
app/waf.py
38
app/waf.py
|
@ -5,22 +5,40 @@ from jinja2 import Environment, FileSystemLoader
|
||||||
env = Environment(loader=FileSystemLoader('templates/'), autoescape=True)
|
env = Environment(loader=FileSystemLoader('templates/'), autoescape=True)
|
||||||
template = env.get_template('waf.html')
|
template = env.get_template('waf.html')
|
||||||
|
|
||||||
|
form = funct.form
|
||||||
|
manage_rules = form.getvalue('manage_rules')
|
||||||
|
|
||||||
print('Content-type: text/html\n')
|
print('Content-type: text/html\n')
|
||||||
funct.check_login()
|
funct.check_login()
|
||||||
funct.page_for_admin(level = 2)
|
funct.page_for_admin(level=2)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
user, user_id, role, token, servers = funct.get_users_params()
|
user, user_id, role, token, servers = funct.get_users_params()
|
||||||
except:
|
except Exception:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
if manage_rules == '1':
|
||||||
|
serv = form.getvalue('serv')
|
||||||
|
funct.check_is_server_in_group(serv)
|
||||||
|
title = "Manage rules - Web application firewall"
|
||||||
|
servers_waf = ''
|
||||||
|
autorefresh = 0
|
||||||
|
rules = sql.select_waf_rules(serv)
|
||||||
|
else:
|
||||||
|
title = "Web application firewall"
|
||||||
|
servers_waf = sql.select_waf_servers_metrics(user_id.value)
|
||||||
|
autorefresh = 1
|
||||||
|
serv = ''
|
||||||
|
rules = ''
|
||||||
|
|
||||||
template = template.render(h2 = 1, title = "Web application firewall",
|
template = template.render(h2=1, title=title,
|
||||||
autorefresh = 1,
|
autorefresh=autorefresh,
|
||||||
role = role,
|
role=role,
|
||||||
user = user,
|
user=user,
|
||||||
servers = sql.select_waf_servers_metrics(user_id.value),
|
serv=serv,
|
||||||
servers_all = servers,
|
servers=servers_waf,
|
||||||
versions = funct.versions(),
|
servers_all=servers,
|
||||||
token = token)
|
manage_rules=manage_rules,
|
||||||
|
rules=rules,
|
||||||
|
token=token)
|
||||||
print(template)
|
print(template)
|
|
@ -873,6 +873,17 @@ $( function() {
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
});
|
});
|
||||||
|
$.ajax( {
|
||||||
|
url: "options.py",
|
||||||
|
data: {
|
||||||
|
show_versions: 1,
|
||||||
|
token: $('#token').val()
|
||||||
|
},
|
||||||
|
type: "POST",
|
||||||
|
success: function( data ) {
|
||||||
|
$('#version').html(data);
|
||||||
|
}
|
||||||
|
} );
|
||||||
var showUpdates = $( "#show-updates" ).dialog({
|
var showUpdates = $( "#show-updates" ).dialog({
|
||||||
autoOpen: false,
|
autoOpen: false,
|
||||||
resizable: false,
|
resizable: false,
|
||||||
|
|
|
@ -13,6 +13,9 @@ body {
|
||||||
height:100%
|
height:100%
|
||||||
}
|
}
|
||||||
h2 {
|
h2 {
|
||||||
|
font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;
|
||||||
|
font-size: 1.5em;
|
||||||
|
font-style: normal;
|
||||||
background: #5D9CEB;
|
background: #5D9CEB;
|
||||||
border: 1px solid #5D9CEB;
|
border: 1px solid #5D9CEB;
|
||||||
padding: 3px 3px 3px 2%;
|
padding: 3px 3px 3px 2%;
|
||||||
|
@ -39,12 +42,11 @@ ul#browse_histroy {
|
||||||
}
|
}
|
||||||
ul#browse_histroy li {
|
ul#browse_histroy li {
|
||||||
display: inline;
|
display: inline;
|
||||||
padding-right: 5px;
|
|
||||||
}
|
}
|
||||||
ul#browse_histroy li+li:before {
|
ul#browse_histroy li+li:before {
|
||||||
content: "/";
|
content: "/";
|
||||||
color: #767676;
|
color: #767676;
|
||||||
margin: 0 9px 0px 2.5px;
|
margin: 0 5px 0px 5px;
|
||||||
}
|
}
|
||||||
#browse_histroy a {
|
#browse_histroy a {
|
||||||
color: #767676;
|
color: #767676;
|
||||||
|
|
Loading…
Reference in New Issue