mirror of https://github.com/Aidaho12/haproxy-wi
parent
322dd978bb
commit
763626332b
27
app/funct.py
27
app/funct.py
|
@ -1206,3 +1206,30 @@ def check_is_server_in_group(serv):
|
||||||
def check_service(serv, service_name):
|
def check_service(serv, service_name):
|
||||||
commands = ["systemctl status "+service_name+" |grep Active |awk '{print $1}'"]
|
commands = ["systemctl status "+service_name+" |grep Active |awk '{print $1}'"]
|
||||||
return ssh_command(serv, commands)
|
return ssh_command(serv, commands)
|
||||||
|
|
||||||
|
|
||||||
|
def get_services_status():
|
||||||
|
services = []
|
||||||
|
services_name = {'checker_haproxy': 'Checker backends master service',
|
||||||
|
'keep_alive': 'Auto start service',
|
||||||
|
'metrics_haproxy': 'Metrics master service',
|
||||||
|
'prometheus': 'Prometheus service',
|
||||||
|
'grafana-server': 'Grafana service',
|
||||||
|
'smon': 'Simple monitoring network ports',
|
||||||
|
'fail2ban': 'Fail2ban service'}
|
||||||
|
for s, v in services_name.items():
|
||||||
|
cmd = "systemctl status %s |grep Act |awk '{print $2}'" % s
|
||||||
|
status, stderr = subprocess_execute(cmd)
|
||||||
|
if s != 'keep_alive':
|
||||||
|
service_name = s.split('_')[0]
|
||||||
|
else:
|
||||||
|
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/-/./'"
|
||||||
|
service_ver, stderr = subprocess_execute(cmd)
|
||||||
|
|
||||||
|
try:
|
||||||
|
services.append([s, status, v, service_ver[0]])
|
||||||
|
except Exception:
|
||||||
|
services.append([s, status, v, ''])
|
||||||
|
|
||||||
|
return services
|
||||||
|
|
|
@ -2351,7 +2351,7 @@ if form.getvalue('providerdel'):
|
||||||
|
|
||||||
if form.getvalue('awsinit') or form.getvalue('doinit'):
|
if form.getvalue('awsinit') or form.getvalue('doinit'):
|
||||||
funct.check_user_group()
|
funct.check_user_group()
|
||||||
cmd = 'cd scripts/terraform/ && sudo terraform init -upgrade'
|
cmd = 'cd scripts/terraform/ && sudo terraform init -upgrade -no-color'
|
||||||
output, stderr = funct.subprocess_execute(cmd)
|
output, stderr = funct.subprocess_execute(cmd)
|
||||||
if stderr != '':
|
if stderr != '':
|
||||||
print('error: '+stderr)
|
print('error: '+stderr)
|
||||||
|
@ -2773,28 +2773,20 @@ if form.getvalue('edit_aws_provider'):
|
||||||
print('ok')
|
print('ok')
|
||||||
funct.logging('localhost', 'Provider has been renamed. New name is ' + new_name, provisioning=1)
|
funct.logging('localhost', 'Provider has been renamed. New name is ' + new_name, provisioning=1)
|
||||||
|
|
||||||
if form.getvalue('loadservices') or form.getvalue('loadupdatehapwi') or form.getvalue('loadchecker'):
|
if form.getvalue('loadservices'):
|
||||||
from jinja2 import Environment, FileSystemLoader
|
from jinja2 import Environment, FileSystemLoader
|
||||||
env = Environment(loader=FileSystemLoader('templates'))
|
env = Environment(loader=FileSystemLoader('templates'))
|
||||||
versions = ''
|
|
||||||
checker_ver = ''
|
|
||||||
smon_ver = ''
|
|
||||||
metrics_ver = ''
|
|
||||||
keep_ver = ''
|
|
||||||
telegrams = ''
|
|
||||||
groups = ''
|
|
||||||
page = ''
|
|
||||||
|
|
||||||
if form.getvalue('loadservices'):
|
|
||||||
template = env.get_template('ajax/load_services.html')
|
template = env.get_template('ajax/load_services.html')
|
||||||
elif form.getvalue('loadupdatehapwi'):
|
services = funct.get_services_status()
|
||||||
versions = funct.versions()
|
|
||||||
checker_ver = funct.check_new_version(service='checker')
|
template = template.render(services=services)
|
||||||
smon_ver = funct.check_new_version(service='smon')
|
print(template)
|
||||||
metrics_ver = funct.check_new_version(service='metrics')
|
|
||||||
keep_ver = funct.check_new_version(service='keep')
|
if form.getvalue('loadchecker'):
|
||||||
template = env.get_template('ajax/load_updatehapwi.html')
|
from jinja2 import Environment, FileSystemLoader
|
||||||
elif form.getvalue('loadchecker'):
|
env = Environment(loader=FileSystemLoader('templates'))
|
||||||
|
template = env.get_template('ajax/load_telegram.html')
|
||||||
|
services = funct.get_services_status()
|
||||||
groups = sql.select_groups()
|
groups = sql.select_groups()
|
||||||
page = form.getvalue('page')
|
page = form.getvalue('page')
|
||||||
if page == 'servers.py':
|
if page == 'servers.py':
|
||||||
|
@ -2803,40 +2795,31 @@ if form.getvalue('loadservices') or form.getvalue('loadupdatehapwi') or form.get
|
||||||
else:
|
else:
|
||||||
telegrams = sql.select_telegram()
|
telegrams = sql.select_telegram()
|
||||||
|
|
||||||
template = env.get_template('ajax/load_telegram.html')
|
template = template.render(services=services,
|
||||||
|
telegrams=telegrams,
|
||||||
|
groups=groups,
|
||||||
|
page=page)
|
||||||
|
print(template)
|
||||||
|
|
||||||
services = []
|
if form.getvalue('loadupdatehapwi'):
|
||||||
services_name = {'checker_haproxy': 'Checker backends master service',
|
from jinja2 import Environment, FileSystemLoader
|
||||||
'keep_alive': 'Auto start service',
|
env = Environment(loader=FileSystemLoader('templates'))
|
||||||
'metrics_haproxy': 'Metrics master service',
|
template = env.get_template('ajax/load_updatehapwi.html')
|
||||||
'prometheus': 'Prometheus service',
|
|
||||||
'grafana-server': 'Grafana service',
|
|
||||||
'smon': 'Simple monitoring network ports',
|
|
||||||
'fail2ban': 'Fail2ban service'}
|
|
||||||
for s, v in services_name.items():
|
|
||||||
cmd = "systemctl status %s |grep Act |awk '{print $2}'" % s
|
|
||||||
status, stderr = funct.subprocess_execute(cmd)
|
|
||||||
if s != 'keep_alive':
|
|
||||||
service_name = s.split('_')[0]
|
|
||||||
else:
|
|
||||||
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/-/./'"
|
|
||||||
service_ver, stderr = funct.subprocess_execute(cmd)
|
|
||||||
|
|
||||||
try:
|
versions = funct.versions()
|
||||||
services.append([s, status, v, service_ver[0]])
|
checker_ver = funct.check_new_version(service='checker')
|
||||||
except Exception:
|
smon_ver = funct.check_new_version(service='smon')
|
||||||
services.append([s, status, v, ''])
|
metrics_ver = funct.check_new_version(service='metrics')
|
||||||
|
keep_ver = funct.check_new_version(service='keep')
|
||||||
|
|
||||||
|
services = funct.get_services_status()
|
||||||
|
|
||||||
template = template.render(services=services,
|
template = template.render(services=services,
|
||||||
versions=versions,
|
versions=versions,
|
||||||
checker_ver=checker_ver,
|
checker_ver=checker_ver,
|
||||||
smon_ver=smon_ver,
|
smon_ver=smon_ver,
|
||||||
metrics_ver=metrics_ver,
|
metrics_ver=metrics_ver,
|
||||||
keep_ver=keep_ver,
|
keep_ver=keep_ver)
|
||||||
telegrams=telegrams,
|
|
||||||
groups=groups,
|
|
||||||
page=page)
|
|
||||||
print(template)
|
print(template)
|
||||||
|
|
||||||
if form.getvalue('loadopenvpn'):
|
if form.getvalue('loadopenvpn'):
|
||||||
|
|
|
@ -0,0 +1,8 @@
|
||||||
|
terraform {
|
||||||
|
required_providers {
|
||||||
|
aws = {
|
||||||
|
source = "hashicorp/aws"
|
||||||
|
version = "3.28.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -315,7 +315,9 @@
|
||||||
<div id="wait-mess"></div>
|
<div id="wait-mess"></div>
|
||||||
<div id="created-mess" class="alert alert-success" style="display:none;"></div>
|
<div id="created-mess" class="alert alert-success" style="display:none;"></div>
|
||||||
<div id="creating-error" class="alert alert-danger" style="display:none;"></div>
|
<div id="creating-error" class="alert alert-danger" style="display:none;"></div>
|
||||||
<progress id="creating-progress" value="0" max="100"></progress>
|
<div class="progress-bar-striped">
|
||||||
|
<div id="creating-progress" style="width: 0%;"></div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div id="server_editing" style="display: none;">
|
<div id="server_editing" style="display: none;">
|
||||||
<ul style="padding: 20px 20px 0px 20px;font-size: 15px;">
|
<ul style="padding: 20px 20px 0px 20px;font-size: 15px;">
|
||||||
|
@ -328,5 +330,7 @@
|
||||||
<div id="editing-wait-mess"></div>
|
<div id="editing-wait-mess"></div>
|
||||||
<div id="edited-mess" class="alert alert-success" style="display:none;"></div>
|
<div id="edited-mess" class="alert alert-success" style="display:none;"></div>
|
||||||
<div id="editing-error" class="alert alert-danger" style="display:none;"></div>
|
<div id="editing-error" class="alert alert-danger" style="display:none;"></div>
|
||||||
<progress id="editing-progress" value="0" max="100"></progress>
|
<div class="progress-bar-striped">
|
||||||
|
<div id="editing-progress" style="width: 0%;"></div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
|
@ -26,20 +26,45 @@
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 10px;
|
height: 10px;
|
||||||
}
|
}
|
||||||
progress {
|
.progress-bar-striped {
|
||||||
border-radius: 5px;
|
overflow: hidden;
|
||||||
|
height: 10px;
|
||||||
|
background-color: #f5f5f5;
|
||||||
|
border-radius: 4px;
|
||||||
|
-webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
|
||||||
|
-moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
|
||||||
|
box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
|
||||||
}
|
}
|
||||||
progress::-webkit-progress-bar {
|
.progress-bar-striped > div {
|
||||||
background-color: #ddd;
|
background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
|
||||||
border-radius: 5px;
|
background-size: 40px 40px;
|
||||||
}
|
float: left;
|
||||||
progress::-webkit-progress-value {
|
width: 0%;
|
||||||
|
height: 100%;
|
||||||
|
font-size: 12px;
|
||||||
|
line-height: 20px;
|
||||||
|
color: #ffffff;
|
||||||
|
text-align: center;
|
||||||
|
-webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
|
||||||
|
-moz-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
|
||||||
|
box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
|
||||||
|
-webkit-transition: width 3s ease;
|
||||||
|
-moz-transition: width 3s ease;
|
||||||
|
-o-transition: width 3s ease;
|
||||||
|
transition: width 3s ease;
|
||||||
|
animation: progress-bar-stripes 2s linear infinite;
|
||||||
background-color: #5d9ceb;
|
background-color: #5d9ceb;
|
||||||
border-radius: 5px;
|
|
||||||
}
|
}
|
||||||
progress::-moz-progress-bar {
|
.progress-bar-striped p{
|
||||||
background-color: #5d9ceb;
|
margin: 0;
|
||||||
border-radius: 5px;
|
}
|
||||||
|
@keyframes progress-bar-stripes {
|
||||||
|
0% {
|
||||||
|
background-position: 40px 0;
|
||||||
|
}
|
||||||
|
100% {
|
||||||
|
background-position: 0 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
.alert-danger {
|
.alert-danger {
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
|
|
|
@ -773,7 +773,7 @@ function showProvisioningError(data, step_id, prev_step_id, wait_mess, error_id,
|
||||||
$(error_id).show();
|
$(error_id).show();
|
||||||
$(prev_step_id).removeClass('proccessing');
|
$(prev_step_id).removeClass('proccessing');
|
||||||
$(step_id).addClass('processing_error');
|
$(step_id).addClass('processing_error');
|
||||||
$(progress_id).val('0');
|
$(progress_id).css('width', '0%');
|
||||||
if(cloud == 'aws') {
|
if(cloud == 'aws') {
|
||||||
add_button_after_server_created();
|
add_button_after_server_created();
|
||||||
} else if (cloud == 'do') {
|
} else if (cloud == 'do') {
|
||||||
|
@ -793,7 +793,7 @@ function showProvisioningProccess(prev_step_id, step_id, next_step_id, progress_
|
||||||
$(step_id).addClass('proccessing_done');
|
$(step_id).addClass('proccessing_done');
|
||||||
$(step_id).removeClass('proccessing');
|
$(step_id).removeClass('proccessing');
|
||||||
$(next_step_id).addClass('proccessing');
|
$(next_step_id).addClass('proccessing');
|
||||||
$(progress_id).val(progress_value);
|
$(progress_id).css('width', progress_value+'%');
|
||||||
$.getScript("/inc/fontawesome.min.js");
|
$.getScript("/inc/fontawesome.min.js");
|
||||||
}
|
}
|
||||||
function cleanProvisioningProccess(div_id, success_div) {
|
function cleanProvisioningProccess(div_id, success_div) {
|
||||||
|
|
Loading…
Reference in New Issue