Pavel Loginov 2020-11-18 10:45:34 +06:00
parent 769df0f6c4
commit 676430c8a0
8 changed files with 62 additions and 15 deletions

View File

@ -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+""]
else:
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)
error += str(upload(serv, tmp_file, cfg, dir='fullpath'))

View File

@ -1648,6 +1648,7 @@ if form.getvalue('newserver') is not None:
typeip = form.getvalue('typeip')
haproxy = form.getvalue('haproxy')
nginx = form.getvalue('nginx')
firewall = form.getvalue('firewall')
enable = form.getvalue('enable')
master = form.getvalue('slave')
cred = form.getvalue('cred')
@ -1656,7 +1657,7 @@ if form.getvalue('newserver') is not None:
port = form.getvalue('newport')
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
env = Environment(loader=FileSystemLoader('templates/'), autoescape=True)
@ -1688,6 +1689,7 @@ if form.getvalue('updateserver') is not None:
typeip = form.getvalue('typeip')
haproxy = form.getvalue('haproxy')
nginx = form.getvalue('nginx')
firewall = form.getvalue('firewall')
enable = form.getvalue('enable')
master = form.getvalue('slave')
serv_id = form.getvalue('id')
@ -1698,7 +1700,7 @@ if form.getvalue('updateserver') is not None:
if name is None or port is None:
print(error_mess)
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)
if form.getvalue('serverdel') is not None:

View File

@ -291,11 +291,11 @@ def update_group(name, descript, id):
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()
sql = """ INSERT INTO servers (hostname, ip, groups, type_ip, enable, master, cred, port, `desc`, haproxy, nginx)
VALUES ('%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s')
""" % (hostname, ip, group, typeip, 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', '%s')
""" % (hostname, ip, group, typeip, enable, master, cred, port, desc, haproxy, nginx, firewall)
try:
cur.execute(sql)
con.commit()
@ -336,6 +336,7 @@ def update_hapwi_server(server_id, alert, metrics, active, service_name):
metrics = '%s',
'%s' = '%s'
where id = '%s'""" % (alert, metrics, updated_service, active, server_id)
try:
cur.execute(sql)
con.commit()
@ -346,7 +347,7 @@ def update_hapwi_server(server_id, alert, metrics, active, service_name):
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()
sql = """ update servers set
hostname = '%s',
@ -358,8 +359,9 @@ def update_server(hostname, group, typeip, enable, master, id, cred, port, desc,
port = '%s',
`desc` = '%s',
haproxy = '%s',
nginx = '%s'
where id = '%s'""" % (hostname, group, typeip, enable, master, cred, port, desc, haproxy, nginx, id)
nginx = '%s',
firewall_enable = '%s'
where id = '%s'""" % (hostname, group, typeip, enable, master, cred, port, desc, haproxy, nginx, firewall, id)
try:
cur.execute(sql)
con.commit()
@ -2304,6 +2306,24 @@ def is_cloud():
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
error_mess = 'error: All fields must be completed'

View File

@ -16,7 +16,7 @@
Port
<span class="need-field">*</span>
</td>
<td>{{ input('new-port', value='22', size='1') }}</td>
<td>{{ input('new-port', value='22', size='3') }}</td>
</tr>
<tr>
<td class="padding20">Enable</td>
@ -34,6 +34,10 @@
<td class="padding20" title="Is there Nginx?">Nginx</td>
<td>{{ checkbox('nginx') }}</td>
</tr>
<tr>
<td class="padding20" title="Is there Firewall?">Firewall</td>
<td>{{ checkbox('firewall') }}</td>
</tr>
<tr>
<td class="padding20" title="Actions with master config will automatically apply on slave">Slave for</td>
<td>

View File

@ -15,6 +15,9 @@
</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%">
<span title="If the server has a firewall enabled, enable this option">Firewall</span>
</th>
<th class="slave-field" style="width: 10%">
<span title="Actions with the master config will automatically apply on the slave">Slave for</span>
</th>
@ -88,6 +91,14 @@
{{ checkbox(id) }}
{% endif %}
</td>
<td class="checkbox">
{% set id = 'firewall-' + server.0|string() %}
{% if server.18 == 1 %}
{{ checkbox(id, checked='checked') }}
{% else %}
{{ checkbox(id) }}
{% endif %}
</td>
<td>
<select id="slavefor-{{server.0}}">
<option value="0" selected>Not slave</option>

View File

@ -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\"'"
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 = 'echo "client.ovpn Connection, Client connected"'
cmd = 'echo "client.ovpn Connection, Client connected"'
openvpn_sess, stderr = funct.subprocess_execute(cmd)
openvpn = stdout[0]

View File

@ -405,6 +405,7 @@ function showLog() {
}
function showMap() {
$("#ajax").empty();
$('.alert').remove();
try {
myCodeMirror.toTextArea();
} catch (e) {
@ -414,7 +415,6 @@ function showMap() {
$("h4").remove();
$("#ajax-compare").empty();
$("#config").empty();
$(".alert-info").empty();
var unique = $.now();
$.ajax( {
url: "options.py",
@ -458,6 +458,7 @@ function showCompare() {
}
function showCompareConfigs() {
$("#ajax").empty();
$('.alert').remove();
try {
myCodeMirror.toTextArea();
} catch (e) {
@ -465,7 +466,6 @@ function showCompareConfigs() {
}
$("#saveconfig").remove();
$("h4").remove();
$(".alert-info").empty();
$.ajax( {
url: "options.py",
data: {
@ -492,6 +492,7 @@ function showCompareConfigs() {
function showConfig() {
var service = $('#service').val();
$("#ajax").empty();
$('.alert').remove();
try {
myCodeMirror.toTextArea();
} catch (e) {
@ -501,7 +502,6 @@ function showConfig() {
$("h4").remove();
$("#ajax-compare").empty();
$("#config").empty();
$(".alert").empty();
$.ajax( {
url: "options.py",
data: {

View File

@ -860,6 +860,7 @@ function addServer(dialog_id) {
var enable = 0;
var haproxy = 0;
var nginx = 0;
var firewall = 0;
if ($('#typeip').is(':checked')) {
typeip = '1';
}
@ -872,6 +873,9 @@ function addServer(dialog_id) {
if ($('#nginx').is(':checked')) {
nginx = '1';
}
if ($('#firewall').is(':checked')) {
firewall = '1';
}
allFields = $( [] ).add( $('#new-server-add') ).add( $('#new-ip') ).add( $('#new-port') )
allFields.removeClass( "ui-state-error" );
valid = valid && checkLength( $('#new-server-add'), "Hostname", 1 );
@ -889,6 +893,7 @@ function addServer(dialog_id) {
typeip: typeip,
haproxy: haproxy,
nginx: nginx,
firewall: firewall,
enable: enable,
slave: $('#slavefor' ).val(),
cred: cred,
@ -1476,6 +1481,7 @@ function updateServer(id) {
var enable = 0;
var haproxy = 0;
var nginx = 0;
var firewall = 0;
if ($('#typeip-'+id).is(':checked')) {
typeip = '1';
}
@ -1488,6 +1494,9 @@ function updateServer(id) {
if ($('#enable-'+id).is(':checked')) {
enable = '1';
}
if ($('#firewall-'+id).is(':checked')) {
firewall = '1';
}
var servergroup = $('#servergroup-'+id+' option:selected' ).val();
if (cur_url[0].split('#')[0] == "servers.py") {
servergroup = $('#new-server-group-add').val();
@ -1501,6 +1510,7 @@ function updateServer(id) {
typeip: typeip,
haproxy: haproxy,
nginx: nginx,
firewall: firewall,
enable: enable,
slave: $('#slavefor-'+id+' option:selected' ).val(),
cred: $('#credentials-'+id+' option:selected').val(),