mirror of https://github.com/Aidaho12/haproxy-wi
parent
769df0f6c4
commit
676430c8a0
|
@ -733,7 +733,7 @@ def upload_and_restart(serv, cfg, **kwargs):
|
||||||
commands = ["sudo "+haproxy_service_name+" -q -c -f " + tmp_file + " && sudo mv -f " + tmp_file + " " + config_path + " && sudo systemctl reload "+haproxy_service_name+""]
|
commands = ["sudo "+haproxy_service_name+" -q -c -f " + tmp_file + " && sudo mv -f " + tmp_file + " " + config_path + " && sudo systemctl reload "+haproxy_service_name+""]
|
||||||
else:
|
else:
|
||||||
commands = ["sudo "+haproxy_service_name+" -q -c -f " + tmp_file + " && sudo mv -f " + tmp_file + " " + config_path + " && sudo systemctl restart "+haproxy_service_name+""]
|
commands = ["sudo "+haproxy_service_name+" -q -c -f " + tmp_file + " && sudo mv -f " + tmp_file + " " + config_path + " && sudo systemctl restart "+haproxy_service_name+""]
|
||||||
if sql.get_setting('firewall_enable') == "1":
|
if sql.return_firewall(serv):
|
||||||
commands[0] += open_port_firewalld(cfg, serv=serv)
|
commands[0] += open_port_firewalld(cfg, serv=serv)
|
||||||
error += str(upload(serv, tmp_file, cfg, dir='fullpath'))
|
error += str(upload(serv, tmp_file, cfg, dir='fullpath'))
|
||||||
|
|
||||||
|
|
|
@ -1648,6 +1648,7 @@ if form.getvalue('newserver') is not None:
|
||||||
typeip = form.getvalue('typeip')
|
typeip = form.getvalue('typeip')
|
||||||
haproxy = form.getvalue('haproxy')
|
haproxy = form.getvalue('haproxy')
|
||||||
nginx = form.getvalue('nginx')
|
nginx = form.getvalue('nginx')
|
||||||
|
firewall = form.getvalue('firewall')
|
||||||
enable = form.getvalue('enable')
|
enable = form.getvalue('enable')
|
||||||
master = form.getvalue('slave')
|
master = form.getvalue('slave')
|
||||||
cred = form.getvalue('cred')
|
cred = form.getvalue('cred')
|
||||||
|
@ -1656,7 +1657,7 @@ if form.getvalue('newserver') is not None:
|
||||||
port = form.getvalue('newport')
|
port = form.getvalue('newport')
|
||||||
desc = form.getvalue('desc')
|
desc = form.getvalue('desc')
|
||||||
|
|
||||||
if sql.add_server(hostname, ip, group, typeip, enable, master, cred, port, desc, haproxy, nginx):
|
if sql.add_server(hostname, ip, group, typeip, enable, master, cred, port, desc, haproxy, nginx, firewall):
|
||||||
from jinja2 import Environment, FileSystemLoader
|
from jinja2 import Environment, FileSystemLoader
|
||||||
|
|
||||||
env = Environment(loader=FileSystemLoader('templates/'), autoescape=True)
|
env = Environment(loader=FileSystemLoader('templates/'), autoescape=True)
|
||||||
|
@ -1688,6 +1689,7 @@ if form.getvalue('updateserver') is not None:
|
||||||
typeip = form.getvalue('typeip')
|
typeip = form.getvalue('typeip')
|
||||||
haproxy = form.getvalue('haproxy')
|
haproxy = form.getvalue('haproxy')
|
||||||
nginx = form.getvalue('nginx')
|
nginx = form.getvalue('nginx')
|
||||||
|
firewall = form.getvalue('firewall')
|
||||||
enable = form.getvalue('enable')
|
enable = form.getvalue('enable')
|
||||||
master = form.getvalue('slave')
|
master = form.getvalue('slave')
|
||||||
serv_id = form.getvalue('id')
|
serv_id = form.getvalue('id')
|
||||||
|
@ -1698,7 +1700,7 @@ if form.getvalue('updateserver') is not None:
|
||||||
if name is None or port is None:
|
if name is None or port is None:
|
||||||
print(error_mess)
|
print(error_mess)
|
||||||
else:
|
else:
|
||||||
sql.update_server(name, group, typeip, enable, master, serv_id, cred, port, desc, haproxy, nginx)
|
sql.update_server(name, group, typeip, enable, master, serv_id, cred, port, desc, haproxy, nginx, firewall)
|
||||||
funct.logging('the server ' + name, ' has updated ', haproxywi=1, login=1)
|
funct.logging('the server ' + name, ' has updated ', haproxywi=1, login=1)
|
||||||
|
|
||||||
if form.getvalue('serverdel') is not None:
|
if form.getvalue('serverdel') is not None:
|
||||||
|
|
34
app/sql.py
34
app/sql.py
|
@ -291,11 +291,11 @@ def update_group(name, descript, id):
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
|
||||||
def add_server(hostname, ip, group, typeip, enable, master, cred, port, desc, haproxy, nginx):
|
def add_server(hostname, ip, group, typeip, enable, master, cred, port, desc, haproxy, nginx, firewall):
|
||||||
con, cur = get_cur()
|
con, cur = get_cur()
|
||||||
sql = """ INSERT INTO servers (hostname, ip, groups, type_ip, enable, master, cred, port, `desc`, haproxy, nginx)
|
sql = """ INSERT INTO servers (hostname, ip, groups, type_ip, enable, master, cred, port, `desc`, haproxy, nginx, firewall_enable)
|
||||||
VALUES ('%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s')
|
VALUES ('%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s')
|
||||||
""" % (hostname, ip, group, typeip, enable, master, cred, port, desc, haproxy, nginx)
|
""" % (hostname, ip, group, typeip, enable, master, cred, port, desc, haproxy, nginx, firewall)
|
||||||
try:
|
try:
|
||||||
cur.execute(sql)
|
cur.execute(sql)
|
||||||
con.commit()
|
con.commit()
|
||||||
|
@ -336,6 +336,7 @@ def update_hapwi_server(server_id, alert, metrics, active, service_name):
|
||||||
metrics = '%s',
|
metrics = '%s',
|
||||||
'%s' = '%s'
|
'%s' = '%s'
|
||||||
where id = '%s'""" % (alert, metrics, updated_service, active, server_id)
|
where id = '%s'""" % (alert, metrics, updated_service, active, server_id)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
cur.execute(sql)
|
cur.execute(sql)
|
||||||
con.commit()
|
con.commit()
|
||||||
|
@ -346,7 +347,7 @@ def update_hapwi_server(server_id, alert, metrics, active, service_name):
|
||||||
con.close()
|
con.close()
|
||||||
|
|
||||||
|
|
||||||
def update_server(hostname, group, typeip, enable, master, id, cred, port, desc, haproxy, nginx):
|
def update_server(hostname, group, typeip, enable, master, id, cred, port, desc, haproxy, nginx, firewall):
|
||||||
con, cur = get_cur()
|
con, cur = get_cur()
|
||||||
sql = """ update servers set
|
sql = """ update servers set
|
||||||
hostname = '%s',
|
hostname = '%s',
|
||||||
|
@ -358,8 +359,9 @@ def update_server(hostname, group, typeip, enable, master, id, cred, port, desc,
|
||||||
port = '%s',
|
port = '%s',
|
||||||
`desc` = '%s',
|
`desc` = '%s',
|
||||||
haproxy = '%s',
|
haproxy = '%s',
|
||||||
nginx = '%s'
|
nginx = '%s',
|
||||||
where id = '%s'""" % (hostname, group, typeip, enable, master, cred, port, desc, haproxy, nginx, id)
|
firewall_enable = '%s'
|
||||||
|
where id = '%s'""" % (hostname, group, typeip, enable, master, cred, port, desc, haproxy, nginx, firewall, id)
|
||||||
try:
|
try:
|
||||||
cur.execute(sql)
|
cur.execute(sql)
|
||||||
con.commit()
|
con.commit()
|
||||||
|
@ -2304,6 +2306,24 @@ def is_cloud():
|
||||||
return cloud_uuid
|
return cloud_uuid
|
||||||
|
|
||||||
|
|
||||||
|
def return_firewall(serv):
|
||||||
|
con, cur = get_cur()
|
||||||
|
sql = """ select firewall_enable from servers where ip = '%s' """ % serv
|
||||||
|
try:
|
||||||
|
cur.execute(sql)
|
||||||
|
except sqltool.Error as e:
|
||||||
|
cur.close()
|
||||||
|
con.close()
|
||||||
|
return False
|
||||||
|
else:
|
||||||
|
for server in cur.fetchall():
|
||||||
|
firewall = server[0]
|
||||||
|
|
||||||
|
cur.close()
|
||||||
|
con.close()
|
||||||
|
return True if firewall == '1' else False
|
||||||
|
|
||||||
|
|
||||||
form = funct.form
|
form = funct.form
|
||||||
error_mess = 'error: All fields must be completed'
|
error_mess = 'error: All fields must be completed'
|
||||||
|
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
Port
|
Port
|
||||||
<span class="need-field">*</span>
|
<span class="need-field">*</span>
|
||||||
</td>
|
</td>
|
||||||
<td>{{ input('new-port', value='22', size='1') }}</td>
|
<td>{{ input('new-port', value='22', size='3') }}</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="padding20">Enable</td>
|
<td class="padding20">Enable</td>
|
||||||
|
@ -34,6 +34,10 @@
|
||||||
<td class="padding20" title="Is there Nginx?">Nginx</td>
|
<td class="padding20" title="Is there Nginx?">Nginx</td>
|
||||||
<td>{{ checkbox('nginx') }}</td>
|
<td>{{ checkbox('nginx') }}</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="padding20" title="Is there Firewall?">Firewall</td>
|
||||||
|
<td>{{ checkbox('firewall') }}</td>
|
||||||
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="padding20" title="Actions with master config will automatically apply on slave">Slave for</td>
|
<td class="padding20" title="Actions with master config will automatically apply on slave">Slave for</td>
|
||||||
<td>
|
<td>
|
||||||
|
|
|
@ -15,6 +15,9 @@
|
||||||
</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: 5%">
|
||||||
|
<span title="If the server has a firewall enabled, enable this option">Firewall</span>
|
||||||
|
</th>
|
||||||
<th class="slave-field" style="width: 10%">
|
<th class="slave-field" style="width: 10%">
|
||||||
<span title="Actions with the master config will automatically apply on the slave">Slave for</span>
|
<span title="Actions with the master config will automatically apply on the slave">Slave for</span>
|
||||||
</th>
|
</th>
|
||||||
|
@ -88,6 +91,14 @@
|
||||||
{{ checkbox(id) }}
|
{{ checkbox(id) }}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</td>
|
</td>
|
||||||
|
<td class="checkbox">
|
||||||
|
{% set id = 'firewall-' + server.0|string() %}
|
||||||
|
{% if server.18 == 1 %}
|
||||||
|
{{ checkbox(id, checked='checked') }}
|
||||||
|
{% else %}
|
||||||
|
{{ checkbox(id) }}
|
||||||
|
{% endif %}
|
||||||
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<select id="slavefor-{{server.0}}">
|
<select id="slavefor-{{server.0}}">
|
||||||
<option value="0" selected>Not slave</option>
|
<option value="0" selected>Not slave</option>
|
||||||
|
|
|
@ -47,7 +47,7 @@ try:
|
||||||
cmd = "sudo openvpn3 configs-list |grep -E 'ovpn|(^|[^0-9])[0-9]{4}($|[^0-9])' |grep -v net|awk -F\" \" '{print $1}'|awk 'ORS=NR%2?\" \":\"\\n\"'"
|
cmd = "sudo openvpn3 configs-list |grep -E 'ovpn|(^|[^0-9])[0-9]{4}($|[^0-9])' |grep -v net|awk -F\" \" '{print $1}'|awk 'ORS=NR%2?\" \":\"\\n\"'"
|
||||||
openvpn_configs, stderr = funct.subprocess_execute(cmd)
|
openvpn_configs, stderr = funct.subprocess_execute(cmd)
|
||||||
cmd = "sudo openvpn3 sessions-list|grep -E 'Config|Status'|awk -F\":\" '{print $2}'|awk 'ORS=NR%2?\" \":\"\\n\"'| sed 's/^ //g'"
|
cmd = "sudo openvpn3 sessions-list|grep -E 'Config|Status'|awk -F\":\" '{print $2}'|awk 'ORS=NR%2?\" \":\"\\n\"'| sed 's/^ //g'"
|
||||||
# cmd = 'echo "client.ovpn Connection, Client connected"'
|
cmd = 'echo "client.ovpn Connection, Client connected"'
|
||||||
openvpn_sess, stderr = funct.subprocess_execute(cmd)
|
openvpn_sess, stderr = funct.subprocess_execute(cmd)
|
||||||
openvpn = stdout[0]
|
openvpn = stdout[0]
|
||||||
|
|
||||||
|
|
|
@ -405,6 +405,7 @@ function showLog() {
|
||||||
}
|
}
|
||||||
function showMap() {
|
function showMap() {
|
||||||
$("#ajax").empty();
|
$("#ajax").empty();
|
||||||
|
$('.alert').remove();
|
||||||
try {
|
try {
|
||||||
myCodeMirror.toTextArea();
|
myCodeMirror.toTextArea();
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
|
@ -414,7 +415,6 @@ function showMap() {
|
||||||
$("h4").remove();
|
$("h4").remove();
|
||||||
$("#ajax-compare").empty();
|
$("#ajax-compare").empty();
|
||||||
$("#config").empty();
|
$("#config").empty();
|
||||||
$(".alert-info").empty();
|
|
||||||
var unique = $.now();
|
var unique = $.now();
|
||||||
$.ajax( {
|
$.ajax( {
|
||||||
url: "options.py",
|
url: "options.py",
|
||||||
|
@ -458,6 +458,7 @@ function showCompare() {
|
||||||
}
|
}
|
||||||
function showCompareConfigs() {
|
function showCompareConfigs() {
|
||||||
$("#ajax").empty();
|
$("#ajax").empty();
|
||||||
|
$('.alert').remove();
|
||||||
try {
|
try {
|
||||||
myCodeMirror.toTextArea();
|
myCodeMirror.toTextArea();
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
|
@ -465,7 +466,6 @@ function showCompareConfigs() {
|
||||||
}
|
}
|
||||||
$("#saveconfig").remove();
|
$("#saveconfig").remove();
|
||||||
$("h4").remove();
|
$("h4").remove();
|
||||||
$(".alert-info").empty();
|
|
||||||
$.ajax( {
|
$.ajax( {
|
||||||
url: "options.py",
|
url: "options.py",
|
||||||
data: {
|
data: {
|
||||||
|
@ -492,6 +492,7 @@ function showCompareConfigs() {
|
||||||
function showConfig() {
|
function showConfig() {
|
||||||
var service = $('#service').val();
|
var service = $('#service').val();
|
||||||
$("#ajax").empty();
|
$("#ajax").empty();
|
||||||
|
$('.alert').remove();
|
||||||
try {
|
try {
|
||||||
myCodeMirror.toTextArea();
|
myCodeMirror.toTextArea();
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
|
@ -501,7 +502,6 @@ function showConfig() {
|
||||||
$("h4").remove();
|
$("h4").remove();
|
||||||
$("#ajax-compare").empty();
|
$("#ajax-compare").empty();
|
||||||
$("#config").empty();
|
$("#config").empty();
|
||||||
$(".alert").empty();
|
|
||||||
$.ajax( {
|
$.ajax( {
|
||||||
url: "options.py",
|
url: "options.py",
|
||||||
data: {
|
data: {
|
||||||
|
|
10
inc/users.js
10
inc/users.js
|
@ -860,6 +860,7 @@ function addServer(dialog_id) {
|
||||||
var enable = 0;
|
var enable = 0;
|
||||||
var haproxy = 0;
|
var haproxy = 0;
|
||||||
var nginx = 0;
|
var nginx = 0;
|
||||||
|
var firewall = 0;
|
||||||
if ($('#typeip').is(':checked')) {
|
if ($('#typeip').is(':checked')) {
|
||||||
typeip = '1';
|
typeip = '1';
|
||||||
}
|
}
|
||||||
|
@ -872,6 +873,9 @@ function addServer(dialog_id) {
|
||||||
if ($('#nginx').is(':checked')) {
|
if ($('#nginx').is(':checked')) {
|
||||||
nginx = '1';
|
nginx = '1';
|
||||||
}
|
}
|
||||||
|
if ($('#firewall').is(':checked')) {
|
||||||
|
firewall = '1';
|
||||||
|
}
|
||||||
allFields = $( [] ).add( $('#new-server-add') ).add( $('#new-ip') ).add( $('#new-port') )
|
allFields = $( [] ).add( $('#new-server-add') ).add( $('#new-ip') ).add( $('#new-port') )
|
||||||
allFields.removeClass( "ui-state-error" );
|
allFields.removeClass( "ui-state-error" );
|
||||||
valid = valid && checkLength( $('#new-server-add'), "Hostname", 1 );
|
valid = valid && checkLength( $('#new-server-add'), "Hostname", 1 );
|
||||||
|
@ -889,6 +893,7 @@ function addServer(dialog_id) {
|
||||||
typeip: typeip,
|
typeip: typeip,
|
||||||
haproxy: haproxy,
|
haproxy: haproxy,
|
||||||
nginx: nginx,
|
nginx: nginx,
|
||||||
|
firewall: firewall,
|
||||||
enable: enable,
|
enable: enable,
|
||||||
slave: $('#slavefor' ).val(),
|
slave: $('#slavefor' ).val(),
|
||||||
cred: cred,
|
cred: cred,
|
||||||
|
@ -1476,6 +1481,7 @@ function updateServer(id) {
|
||||||
var enable = 0;
|
var enable = 0;
|
||||||
var haproxy = 0;
|
var haproxy = 0;
|
||||||
var nginx = 0;
|
var nginx = 0;
|
||||||
|
var firewall = 0;
|
||||||
if ($('#typeip-'+id).is(':checked')) {
|
if ($('#typeip-'+id).is(':checked')) {
|
||||||
typeip = '1';
|
typeip = '1';
|
||||||
}
|
}
|
||||||
|
@ -1488,6 +1494,9 @@ function updateServer(id) {
|
||||||
if ($('#enable-'+id).is(':checked')) {
|
if ($('#enable-'+id).is(':checked')) {
|
||||||
enable = '1';
|
enable = '1';
|
||||||
}
|
}
|
||||||
|
if ($('#firewall-'+id).is(':checked')) {
|
||||||
|
firewall = '1';
|
||||||
|
}
|
||||||
var servergroup = $('#servergroup-'+id+' option:selected' ).val();
|
var servergroup = $('#servergroup-'+id+' option:selected' ).val();
|
||||||
if (cur_url[0].split('#')[0] == "servers.py") {
|
if (cur_url[0].split('#')[0] == "servers.py") {
|
||||||
servergroup = $('#new-server-group-add').val();
|
servergroup = $('#new-server-group-add').val();
|
||||||
|
@ -1501,6 +1510,7 @@ function updateServer(id) {
|
||||||
typeip: typeip,
|
typeip: typeip,
|
||||||
haproxy: haproxy,
|
haproxy: haproxy,
|
||||||
nginx: nginx,
|
nginx: nginx,
|
||||||
|
firewall: firewall,
|
||||||
enable: enable,
|
enable: enable,
|
||||||
slave: $('#slavefor-'+id+' option:selected' ).val(),
|
slave: $('#slavefor-'+id+' option:selected' ).val(),
|
||||||
cred: $('#credentials-'+id+' option:selected').val(),
|
cred: $('#credentials-'+id+' option:selected').val(),
|
||||||
|
|
Loading…
Reference in New Issue