Pavel Loginov 2020-02-07 01:36:58 +03:00
parent 85acd08eae
commit efc5ac3081
9 changed files with 78 additions and 26 deletions

View File

@ -397,7 +397,6 @@ def update_db_v_4(**kwargs):
sql.append("INSERT INTO settings (param, value, section, `desc`) values('nginx_status_command', 'systemctl status nginx', 'nginx', 'Command for status check Nginx service');") sql.append("INSERT INTO settings (param, value, section, `desc`) values('nginx_status_command', 'systemctl status nginx', 'nginx', 'Command for status check Nginx service');")
sql.append("INSERT INTO settings (param, value, section, `desc`) values('nginx_dir', '/etc/nginx/conf.d/', 'nginx', 'Path to Nginx dir');") sql.append("INSERT INTO settings (param, value, section, `desc`) values('nginx_dir', '/etc/nginx/conf.d/', 'nginx', 'Path to Nginx dir');")
sql.append("INSERT INTO settings (param, value, section, `desc`) values('nginx_config_path', '/etc/nginx/conf.d/default.conf', 'nginx', 'Path to Nginx config');") sql.append("INSERT INTO settings (param, value, section, `desc`) values('nginx_config_path', '/etc/nginx/conf.d/default.conf', 'nginx', 'Path to Nginx config');")
sql.append("update `servers` set `haproxy` = '1';")
for i in sql: for i in sql:
try: try:
cur.execute(i) cur.execute(i)

View File

@ -312,7 +312,7 @@ if act == "overviewHapwi":
from jinja2 import Environment, FileSystemLoader from jinja2 import Environment, FileSystemLoader
env = Environment(loader=FileSystemLoader('templates/ajax'), autoescape=True) env = Environment(loader=FileSystemLoader('templates/ajax'), autoescape=True)
template = env.get_template('/overviewHapwi.html') template = env.get_template('/overviewHapwi.html')
cmd = "top -b -n 1 |head -9" cmd = "top -b -n 1 |head -12"
server_status, stderr = funct.subprocess_execute(cmd) server_status, stderr = funct.subprocess_execute(cmd)
template = template.render(server_status=server_status,stderr=stderr) template = template.render(server_status=server_status,stderr=stderr)
@ -1159,6 +1159,8 @@ if form.getvalue('newserver') is not None:
ip = form.getvalue('newip') ip = form.getvalue('newip')
group = form.getvalue('newservergroup') group = form.getvalue('newservergroup')
typeip = form.getvalue('typeip') typeip = form.getvalue('typeip')
haproxy = form.getvalue('haproxy')
nginx = form.getvalue('nginx')
enable = form.getvalue('enable') enable = form.getvalue('enable')
master = form.getvalue('slave') master = form.getvalue('slave')
cred = form.getvalue('cred') cred = form.getvalue('cred')
@ -1167,7 +1169,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): if sql.add_server(hostname, ip, group, typeip, enable, master, cred, port, desc, haproxy, nginx):
from jinja2 import Environment, FileSystemLoader from jinja2 import Environment, FileSystemLoader
env = Environment(loader=FileSystemLoader('templates/')) env = Environment(loader=FileSystemLoader('templates/'))
template = env.get_template('ajax/new_server.html') template = env.get_template('ajax/new_server.html')
@ -1195,6 +1197,8 @@ if form.getvalue('updateserver') is not None:
name = form.getvalue('updateserver') name = form.getvalue('updateserver')
group = form.getvalue('servergroup') group = form.getvalue('servergroup')
typeip = form.getvalue('typeip') typeip = form.getvalue('typeip')
haproxy = form.getvalue('haproxy')
nginx = form.getvalue('nginx')
enable = form.getvalue('enable') enable = form.getvalue('enable')
master = form.getvalue('slave') master = form.getvalue('slave')
id = form.getvalue('id') id = form.getvalue('id')
@ -1205,7 +1209,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, id, cred, port, desc) sql.update_server(name, group, typeip, enable, master, id, cred, port, desc, haproxy, nginx)
funct.logging('the server '+name, ' has updated ', haproxywi=1, login=1) funct.logging('the server '+name, ' has updated ', haproxywi=1, login=1)

View File

@ -161,11 +161,11 @@ def update_group(name, descript, id):
con.close() con.close()
def add_server(hostname, ip, group, typeip, enable, master, cred, port, desc): def add_server(hostname, ip, group, typeip, enable, master, cred, port, desc, haproxy, nginx):
con, cur = get_cur() con, cur = get_cur()
sql = """ INSERT INTO servers (hostname, ip, groups, type_ip, enable, master, cred, port, `desc`) 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') VALUES ('%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s')
""" % (hostname, ip, group, typeip, enable, master, cred, port, desc) """ % (hostname, ip, group, typeip, enable, master, cred, port, desc, haproxy, nginx)
try: try:
cur.execute(sql) cur.execute(sql)
con.commit() con.commit()
@ -210,7 +210,7 @@ def update_hapwi_server(id, alert, metrics, active):
con.close() con.close()
def update_server(hostname, group, typeip, enable, master, id, cred, port, desc): def update_server(hostname, group, typeip, enable, master, id, cred, port, desc, haproxy, nginx):
con, cur = get_cur() con, cur = get_cur()
sql = """ update servers set sql = """ update servers set
hostname = '%s', hostname = '%s',
@ -220,8 +220,10 @@ def update_server(hostname, group, typeip, enable, master, id, cred, port, desc)
master = '%s', master = '%s',
cred = '%s', cred = '%s',
port = '%s', port = '%s',
`desc` = '%s' `desc` = '%s',
where id = '%s'""" % (hostname, group, typeip, enable, master, cred, port, desc, id) haproxy = '%s',
nginx = '%s'
where id = '%s'""" % (hostname, group, typeip, enable, master, cred, port, desc, haproxy, nginx, id)
try: try:
cur.execute(sql) cur.execute(sql)
con.commit() con.commit()

View File

@ -145,6 +145,8 @@
<th class="group-field">Group</th> <th class="group-field">Group</th>
<th class="checkbox-head">Enable</th> <th class="checkbox-head">Enable</th>
<th class="checkbox-head"><span title="Vitrual IP, something like VRRP">Virt</span></th> <th class="checkbox-head"><span title="Vitrual IP, something like VRRP">Virt</span></th>
<th class="checkbox-head">HAProxy</th>
<th class="checkbox-head">Nginx</th>
<th class="slave-field"><span title="Actions with master config will automatically apply on slave">Slave for</span></th> <th class="slave-field"><span title="Actions with master config will automatically apply on slave">Slave for</span></th>
<th class="cred-field">Credentials</th> <th class="cred-field">Credentials</th>
<th>Description</th> <th>Description</th>

View File

@ -33,6 +33,14 @@
<td class="padding20" title="Vitrual IP, something like VRRP">Virt</td> <td class="padding20" title="Vitrual IP, something like VRRP">Virt</td>
<td>{{ checkbox('typeip') }}</td> <td>{{ checkbox('typeip') }}</td>
</tr> </tr>
<tr>
<td class="padding20" title="Is there HAProxy?">HAProxy</td>
<td>{{ checkbox('haproxy') }} </td>
</tr>
<tr>
<td class="padding20" title="Is there Nginx?">Nginx</td>
<td>{{ checkbox('nginx') }}</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>

View File

@ -15,6 +15,22 @@
{{ checkbox(id) }} {{ checkbox(id) }}
{% endif %} {% endif %}
</td> </td>
<td class="checkbox">
{% set id = 'haproxy-' + server.0|string() %}
{% if server.15 == 1 %}
{{ checkbox(id, checked='checked') }}
{% else %}
{{ checkbox(id) }}
{% endif %}
</td>
<td class="checkbox">
{% set id = 'nginx-' + server.0|string() %}
{% if server.14 == 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>

View File

@ -74,6 +74,8 @@
<td class="checkbox-head"><span title="SSH port">Port</span></td></td> <td class="checkbox-head"><span title="SSH port">Port</span></td></td>
<td class="checkbox-head">Enable</td> <td class="checkbox-head">Enable</td>
<td class="checkbox-head"><span title="Vitrual IP, something like VRRP">Virt</span></td> <td class="checkbox-head"><span title="Vitrual IP, something like VRRP">Virt</span></td>
<th class="checkbox-head">HAProxy</th>
<th class="checkbox-head">Nginx</th>
<td class="slave-field"><span title="Actions with master config will automatically apply on slave">Slave for</span></td> <td class="slave-field"><span title="Actions with master config will automatically apply on slave">Slave for</span></td>
<td class="cred-field">Credentials</td> <td class="cred-field">Credentials</td>
<td>Description</td> <td>Description</td>

View File

@ -246,12 +246,13 @@ function showStats() {
data: { data: {
act: "stats", act: "stats",
serv: $("#serv").val(), serv: $("#serv").val(),
service: $("#service").val(),
token: $('#token').val() token: $('#token').val()
}, },
type: "POST", type: "POST",
success: function( data ) { success: function( data ) {
$("#ajax").html(data); $("#ajax").html(data);
window.history.pushState("Stats", "Stats", cur_url[0]+"?serv="+$("#serv").val()); window.history.pushState("Stats", "Stats", cur_url[0]+"?service="+$("#service").val()+"&serv="+$("#serv").val());
wait(); wait();
} }
} ); } );

View File

@ -663,12 +663,20 @@ function addServer() {
var cred = $('#credentials').val(); var cred = $('#credentials').val();
var typeip = 0; var typeip = 0;
var enable = 0; var enable = 0;
var haproxy = 0;
var nginx = 0;
if ($('#typeip').is(':checked')) { if ($('#typeip').is(':checked')) {
typeip = '1'; typeip = '1';
} }
if ($('#enable').is(':checked')) { if ($('#enable').is(':checked')) {
enable = '1'; enable = '1';
} }
if ($('#haproxy').is(':checked')) {
haproxy = '1';
}
if ($('#nginx').is(':checked')) {
nginx = '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 );
@ -684,6 +692,8 @@ function addServer() {
newport: $('#new-port').val(), newport: $('#new-port').val(),
newservergroup: newservergroup, newservergroup: newservergroup,
typeip: typeip, typeip: typeip,
haproxy: haproxy,
nginx: nginx,
enable: enable, enable: enable,
slave: $('#slavefor' ).val(), slave: $('#slavefor' ).val(),
cred: cred, cred: cred,
@ -934,25 +944,20 @@ function cloneServer(id) {
} else { } else {
$('#typeip').prop('checked', false) $('#typeip').prop('checked', false)
} }
if ($('#alert-'+id).is(':checked')) { if ($('#haproxy-'+id).is(':checked')) {
$('#alert').prop('checked', true) $('#haproxy').prop('checked', true)
} else { } else {
$('#alert').prop('checked', false) $('#haproxy').prop('checked', false)
} }
if ($('#metrics-'+id).is(':checked')) { if ($('#nginx-'+id).is(':checked')) {
$('#metrics').prop('checked', true) $('#nginx').prop('checked', true)
} else { } else {
$('#metrics').prop('checked', false) $('#nginx').prop('checked', false)
}
if ($('#active-'+id).is(':checked')) {
$('#active').prop('checked', true)
} else {
$('#active').prop('checked', false)
} }
$('#enable').checkboxradio("refresh"); $('#enable').checkboxradio("refresh");
$('#typeip').checkboxradio("refresh"); $('#typeip').checkboxradio("refresh");
$('#alert').checkboxradio("refresh"); $('#haproxy').checkboxradio("refresh");
$('#active').checkboxradio("refresh"); $('#nginx').checkboxradio("refresh");
$('#new-server-add').val($('#hostname-'+id).val()) $('#new-server-add').val($('#hostname-'+id).val())
$('#new-ip').val($('#ip-'+id).val()) $('#new-ip').val($('#ip-'+id).val())
$('#new-port').val($('#port-'+id).val()) $('#new-port').val($('#port-'+id).val())
@ -1186,16 +1191,27 @@ function updateServer(id) {
$('.alert-danger').remove(); $('.alert-danger').remove();
var typeip = 0; var typeip = 0;
var enable = 0; var enable = 0;
var haproxy = 0;
var nginx = 0;
if ($('#typeip-'+id).is(':checked')) { if ($('#typeip-'+id).is(':checked')) {
typeip = '1'; typeip = '1';
} }
if ($('#haproxy-'+id).is(':checked')) {
haproxy = '1';
}
if ($('#nginx-'+id).is(':checked')) {
nginx = '1';
}
if ($('#enable-'+id).is(':checked')) { if ($('#enable-'+id).is(':checked')) {
enable = '1'; enable = '1';
} }
var servergroup = $('#servergroup-'+id+' option:selected' ).val(); var servergroup = $('#servergroup-'+id+' option:selected' ).val();
if (cur_url[0] == "servers.py") { console.log(cur_url[0])
servergroup = $('#servergroup-'+id).val(); if (cur_url[0].split('#')[0] == "servers.py") {
servergroup = $('#new-server-group-add').val();
console.log('1')
} }
console.log(servergroup)
$.ajax( { $.ajax( {
url: "options.py", url: "options.py",
data: { data: {
@ -1203,6 +1219,8 @@ function updateServer(id) {
port: $('#port-'+id).val(), port: $('#port-'+id).val(),
servergroup: servergroup, servergroup: servergroup,
typeip: typeip, typeip: typeip,
haproxy: haproxy,
nginx: nginx,
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(),