mirror of https://github.com/Aidaho12/haproxy-wi
parent
b610c47e2a
commit
3e3d885a37
|
@ -15,7 +15,7 @@ def get_app_dir():
|
|||
def get_config_var(sec, var):
|
||||
from configparser import ConfigParser, ExtendedInterpolation
|
||||
try:
|
||||
path_config = "/var/www/haproxy-wi/app/haproxy-wi.cfg"
|
||||
path_config = "haproxy-wi.cfg"
|
||||
config = ConfigParser(interpolation=ExtendedInterpolation())
|
||||
config.read(path_config)
|
||||
except:
|
||||
|
@ -956,7 +956,7 @@ def show_backends(serv, **kwargs):
|
|||
return ret
|
||||
|
||||
|
||||
def get_files(dir = get_config_var('configs', 'haproxy_save_configs_dir'), format = 'cfg', **kwargs):
|
||||
def get_files(dir=get_config_var('configs', 'haproxy_save_configs_dir'), format='cfg', **kwargs):
|
||||
import glob
|
||||
if format == 'log':
|
||||
file = []
|
||||
|
@ -1057,6 +1057,7 @@ def out_error(e):
|
|||
error = e
|
||||
else:
|
||||
error = e.args[0]
|
||||
logging('localhost', error, haproxywi=1, login=1)
|
||||
print('error: '+error)
|
||||
|
||||
|
||||
|
|
|
@ -1203,7 +1203,7 @@ if form.getvalue('nginx_exp_install'):
|
|||
|
||||
|
||||
if form.getvalue('backup') or form.getvalue('deljob') or form.getvalue('backupupdate'):
|
||||
server = form.getvalue('server')
|
||||
serv = form.getvalue('server')
|
||||
rpath = form.getvalue('rpath')
|
||||
time = form.getvalue('time')
|
||||
type = form.getvalue('type')
|
||||
|
@ -1223,8 +1223,8 @@ if form.getvalue('backup') or form.getvalue('deljob') or form.getvalue('backupup
|
|||
deljob = ''
|
||||
else:
|
||||
deljob = ''
|
||||
if sql.check_exists_backup(server):
|
||||
print('info: Backup job for %s already exists' % server)
|
||||
if sql.check_exists_backup(serv):
|
||||
print('warning: Backup job for %s already exists' % serv)
|
||||
sys.exit()
|
||||
|
||||
servers = sql.select_servers(server=serv)
|
||||
|
@ -1233,9 +1233,9 @@ if form.getvalue('backup') or form.getvalue('deljob') or form.getvalue('backupup
|
|||
|
||||
os.system("cp scripts/%s ." % script)
|
||||
|
||||
commands = [ "chmod +x "+script +" && ./"+script +" HOST="+rserver+" SERVER="+server+" TYPE="+type+
|
||||
commands = ["chmod +x "+script +" && ./"+script +" HOST="+rserver+" SERVER="+serv+" TYPE="+type+
|
||||
" SSH_PORT="+ssh_port+
|
||||
" TIME="+time+" RPATH="+rpath+" DELJOB="+deljob+" USER="+str(ssh_user_name)+" KEY="+str(ssh_key_name) ]
|
||||
" TIME="+time+" RPATH="+rpath+" DELJOB="+deljob+" USER="+str(ssh_user_name)+" KEY="+str(ssh_key_name)]
|
||||
|
||||
output, error = funct.subprocess_execute(commands[0])
|
||||
|
||||
|
@ -1248,32 +1248,32 @@ if form.getvalue('backup') or form.getvalue('deljob') or form.getvalue('backupup
|
|||
try:
|
||||
l = l.split(':')[1]
|
||||
l = l.split('"')[1]
|
||||
print(l+"<br>")
|
||||
print('error: '+l+"<br>")
|
||||
break
|
||||
except:
|
||||
print(output)
|
||||
print('error: ' + output)
|
||||
break
|
||||
else:
|
||||
if deljob == '' and update == '':
|
||||
if sql.insert_backup_job(server, rserver, rpath, type, time, cred, description):
|
||||
funct.logging('backup ', ' has created a new backup job for server '+server , haproxywi=1, login=1)
|
||||
import http.cookies
|
||||
if not deljob and not update:
|
||||
if sql.insert_backup_job(serv, rserver, rpath, type, time, cred, description):
|
||||
#import http.cookies
|
||||
from jinja2 import Environment, FileSystemLoader
|
||||
env = Environment(loader=FileSystemLoader('templates/ajax'), autoescape=True)
|
||||
template = env.get_template('new_backup.html')
|
||||
template = template.render(backups=sql.select_backups(server=server, rserver=rserver), sshs=sql.select_ssh())
|
||||
template = template.render(backups=sql.select_backups(server=serv, rserver=rserver), sshs=sql.select_ssh())
|
||||
print(template)
|
||||
print('success: Backup job has created<br>')
|
||||
print('success: Backup job has created')
|
||||
funct.logging('backup ', ' has created a new backup job for server '+serv , haproxywi=1, login=1)
|
||||
else:
|
||||
print('error: Cannot add job into DB<br>')
|
||||
print('error: Cannot add job into DB')
|
||||
elif deljob:
|
||||
sql.delete_backups(deljob)
|
||||
print('Ok')
|
||||
funct.logging('backup ', ' has deleted a backup job for server '+server, haproxywi=1, login=1)
|
||||
funct.logging('backup ', ' has deleted a backup job for server '+serv, haproxywi=1, login=1)
|
||||
elif update:
|
||||
sql.update_backup(server, rserver, rpath, type, time, cred, description, update)
|
||||
sql.update_backup(serv, rserver, rpath, type, time, cred, description, update)
|
||||
print('Ok')
|
||||
funct.logging('backup ', ' has updated a backup job for server '+server, haproxywi=1, login=1)
|
||||
funct.logging('backup ', ' has updated a backup job for server '+serv, haproxywi=1, login=1)
|
||||
|
||||
|
||||
if form.getvalue('install_nginx'):
|
||||
|
@ -1676,6 +1676,10 @@ if form.getvalue('serverdel') is not None:
|
|||
server = sql.select_servers(id=serverdel)
|
||||
for s in server:
|
||||
hostname = s[1]
|
||||
ip = s[2]
|
||||
if sql.check_exists_backup(ip):
|
||||
print('warning: Delete the backup first ')
|
||||
sys.exit()
|
||||
if sql.delete_server(serverdel):
|
||||
sql.delete_waf_server(serverdel)
|
||||
print("Ok")
|
||||
|
|
|
@ -756,12 +756,14 @@ def update_ssh(id, name, enable, group, username, password):
|
|||
|
||||
def insert_backup_job(server, rserver, rpath, type, time, cred, description):
|
||||
con, cur = get_cur()
|
||||
sql = """insert into backups(server, rhost, rpath, type, time, cred, description) values ('%s', '%s', '%s', '%s', '%s', '%s', '%s') """ % (server, rserver, rpath, type, time, cred, description)
|
||||
try:
|
||||
sql = """insert into backups(server, rhost, rpath, `type`, `time`, `cred`, `description`)
|
||||
values ('%s', '%s', '%s', '%s', '%s', '%s', '%s') """ % (server, rserver, rpath, type, time, cred, description)
|
||||
try:
|
||||
cur.execute(sql)
|
||||
con.commit()
|
||||
except sqltool.Error as e:
|
||||
funct.out_error(e)
|
||||
print('error: '+str(e))
|
||||
con.rollback()
|
||||
return False
|
||||
else:
|
||||
|
|
|
@ -443,30 +443,9 @@
|
|||
</div>
|
||||
<div id="ajax-update"></div>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="backup">
|
||||
<table class="overview" id="ajax-backup-table">
|
||||
<tr class="overviewHead">
|
||||
<td class="padding10 first-collumn">Servers</td>
|
||||
<td class="padding10">Remote server</td>
|
||||
<td class="padding10">Remote folder</td>
|
||||
<td class="padding10">Backup type</td>
|
||||
<td class="padding10">Period time</td>
|
||||
<td class="padding10">Credentials</td>
|
||||
<td class="padding10">Description</td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
{% for b in backups %}
|
||||
{% include 'include/admin_backup.html' %}
|
||||
{% endfor %}
|
||||
</table>
|
||||
<br /><span class="add-button" title="Add a new backup job" id="add-backup-button">+ Add a new backup job</span>
|
||||
<br /><br />
|
||||
<div id="ajax-backup"></div>
|
||||
<div class="add-note addName alert-info" style="width: inherit; margin-right: 15px;">
|
||||
You can read the description of all parameters <a href="https://haproxy-wi.org/description.py?description=backup" title="Backup description" target="_blank">here</a>
|
||||
</div>
|
||||
{% include 'include/admin_backup.html' %}
|
||||
</div>
|
||||
</div>
|
||||
{% include 'include/admins_dialogs.html' %}
|
||||
|
|
|
@ -1,4 +1,19 @@
|
|||
<tr id="backup-table-{{b.0}}">
|
||||
<table class="overview" id="ajax-backup-table">
|
||||
<tr class="overviewHead">
|
||||
<td class="padding10 first-collumn">Servers</td>
|
||||
<td class="padding10">Remote server</td>
|
||||
<td class="padding10">Remote folder</td>
|
||||
<td class="padding10">Backup type</td>
|
||||
<td class="padding10">Period time</td>
|
||||
<td class="padding10">Credentials</td>
|
||||
<td class="padding10">Description</td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
{% for b in backups %}
|
||||
{% for s in servers %}
|
||||
{% if b.1 in s.2 %}
|
||||
<tr id="backup-table-{{b.0}}">
|
||||
<td class="padding10 first-collumn">
|
||||
<span id="backup-server-{{b.0}}">{{ b.1 }}</span>
|
||||
</td>
|
||||
|
@ -6,7 +21,6 @@
|
|||
{{ input('backup-rserver-'+b.0|string(), value=b.2, size='14') }}
|
||||
</td>
|
||||
<td>
|
||||
|
||||
{{ input('backup-rpath-'+b.0|string(), value=b.3) }}
|
||||
</td>
|
||||
<td>
|
||||
|
@ -14,9 +28,8 @@
|
|||
{{ select('backup-type-'+b.0|string(), values=values, selected=b.4, required='required', class='force_close') }}
|
||||
</td>
|
||||
<td>
|
||||
{% set values = {'hourly':'hourly','daily':'daily','weekly':'weekly', 'monthly':'monthly'} %}
|
||||
{% set values = {'hourly':'hourly','daily':'daily','weekly':'weekly', 'monthly':'monthly'} %}
|
||||
{{ select('backup-time-'+b.0|string(), values=values, selected=b.5, required='required', class='force_close') }}
|
||||
|
||||
</td>
|
||||
<td>
|
||||
<select id="backup-credentials-{{b.0}}" required>
|
||||
|
@ -44,5 +57,15 @@
|
|||
</td>
|
||||
<td>
|
||||
<a class="delete" onclick="confirmDeleteBackup({{b.0}})" title="Delete backup {{b.1}}" style="cursor: pointer;"></a>
|
||||
</td>
|
||||
</tr>
|
||||
</td>
|
||||
</tr>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% endfor %}
|
||||
</table>
|
||||
<br /><span class="add-button" title="Add a new backup job" id="add-backup-button">+ Add a new backup job</span>
|
||||
<br /><br />
|
||||
<div id="ajax-backup"></div>
|
||||
<div class="add-note addName alert-info" style="width: inherit; margin-right: 15px;">
|
||||
You can read the description of all parameters <a href="https://haproxy-wi.org/description.py?description=backup" title="Backup description" target="_blank">here</a>
|
||||
</div>
|
|
@ -202,7 +202,9 @@
|
|||
<select id="backup-credentials" required>
|
||||
<option disabled selected>Choose credentials</option>
|
||||
{% for ssh in sshs %}
|
||||
<option value="{{ssh.0}}">{{ssh.1}}</option>
|
||||
{% if ssh.2 == 1 %}
|
||||
<option value="{{ssh.0}}">{{ssh.1}}</option>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</select>
|
||||
</td>
|
||||
|
|
|
@ -399,34 +399,9 @@
|
|||
</table>
|
||||
<div id="ajaxmon"></div>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="backup">
|
||||
<table class="overview" id="ajax-backup-table">
|
||||
<tr class="overviewHead">
|
||||
<td class="padding10 first-collumn">Servers</td>
|
||||
<td class="padding10">Remote server</td>
|
||||
<td class="padding10">Remote folder</td>
|
||||
<td class="padding10">Backup type</td>
|
||||
<td class="padding10">Period time</td>
|
||||
<td class="padding10">Credentials</td>
|
||||
<td class="padding10">Description</td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
{% for b in backups %}
|
||||
{% for s in servers %}
|
||||
{% if b.1 in s.2 %}
|
||||
{% include 'include/admin_backup.html' %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% endfor %}
|
||||
</table>
|
||||
<br /><span class="add-button" title="Add a new backup job" id="add-backup-button">+ Add a new backup job</span>
|
||||
<br /><br />
|
||||
<div id="ajax-backup"></div>
|
||||
<div class="add-note addName alert-info" style="width: inherit; margin-right: 15px;">
|
||||
You can read the description of all parameters <a href="https://haproxy-wi.org/description.py?description=backup" title="Backup description" target="_blank">here</a>
|
||||
</div>
|
||||
{% include 'include/admin_backup.html' %}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
|
14
inc/users.js
14
inc/users.js
|
@ -1062,13 +1062,16 @@ function addBackup(dialog_id) {
|
|||
data = data.replace(/\s+/g,' ');
|
||||
if (data.indexOf('error:') != '-1') {
|
||||
toastr.error(data);
|
||||
} else if (data.indexOf('success') != '-1') {
|
||||
} else if (data.indexOf('success: ') != '-1') {
|
||||
common_ajax_action_after_success(dialog_id, 'newbackup', 'ajax-backup-table', data);
|
||||
$( "select" ).selectmenu();
|
||||
} else if (data.indexOf('info') != '-1') {
|
||||
} else if (data.indexOf('info: ') != '-1') {
|
||||
toastr.clear();
|
||||
toastr.info(data);
|
||||
}
|
||||
} else if (data.indexOf('warning: ') != '-1') {
|
||||
toastr.clear();
|
||||
toastr.warning(data);
|
||||
}
|
||||
}
|
||||
} );
|
||||
}
|
||||
|
@ -1342,8 +1345,11 @@ function removeServer(id) {
|
|||
data = data.replace(/\s+/g,' ');
|
||||
if(data == "Ok ") {
|
||||
$("#server-"+id).remove();
|
||||
} else if (data.indexOf('error:') != '-1' || data.indexOf('unique') != '-1') {
|
||||
} else if (data.indexOf('error: ') != '-1' || data.indexOf('unique') != '-1') {
|
||||
toastr.error(data);
|
||||
} else if (data.indexOf('warning: ') != '-1') {
|
||||
toastr.clear();
|
||||
toastr.warning(data);
|
||||
}
|
||||
}
|
||||
} );
|
||||
|
|
Loading…
Reference in New Issue