diff --git a/app/funct.py b/app/funct.py index 69d93f75..6f6bec9a 100644 --- a/app/funct.py +++ b/app/funct.py @@ -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) diff --git a/app/options.py b/app/options.py index 6c2974cf..e5a12d9c 100644 --- a/app/options.py +++ b/app/options.py @@ -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+"
") + print('error: '+l+"
") 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
') + 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
') + 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") diff --git a/app/sql.py b/app/sql.py index dc18648a..1bc27158 100644 --- a/app/sql.py +++ b/app/sql.py @@ -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: diff --git a/app/templates/admin.html b/app/templates/admin.html index 889b2067..d0226137 100644 --- a/app/templates/admin.html +++ b/app/templates/admin.html @@ -443,30 +443,9 @@
- +
- - - - - - - - - - - - - {% for b in backups %} - {% include 'include/admin_backup.html' %} - {% endfor %} -
ServersRemote serverRemote folderBackup typePeriod timeCredentialsDescription
-
+ Add a new backup job -

-
-
- You can read the description of all parameters here -
+ {% include 'include/admin_backup.html' %}
{% include 'include/admins_dialogs.html' %} diff --git a/app/templates/include/admin_backup.html b/app/templates/include/admin_backup.html index 7e4515fa..530c8ec4 100644 --- a/app/templates/include/admin_backup.html +++ b/app/templates/include/admin_backup.html @@ -1,4 +1,19 @@ - + + + + + + + + + + + + + {% for b in backups %} + {% for s in servers %} + {% if b.1 in s.2 %} + @@ -6,7 +21,6 @@ {{ input('backup-rserver-'+b.0|string(), value=b.2, size='14') }} - \ No newline at end of file + + + {% endif %} + {% endfor %} + {% endfor %} +
ServersRemote serverRemote folderBackup typePeriod timeCredentialsDescription
{{ b.1 }} - {{ input('backup-rpath-'+b.0|string(), value=b.3) }} @@ -14,9 +28,8 @@ {{ select('backup-type-'+b.0|string(), values=values, selected=b.4, required='required', class='force_close') }} - {% 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') }} - -
+
+ Add a new backup job +

+
+
+ You can read the description of all parameters here +
\ No newline at end of file diff --git a/app/templates/include/admins_dialogs.html b/app/templates/include/admins_dialogs.html index 2173c096..6ec9eec4 100644 --- a/app/templates/include/admins_dialogs.html +++ b/app/templates/include/admins_dialogs.html @@ -202,7 +202,9 @@ diff --git a/app/templates/servers.html b/app/templates/servers.html index 16ef97d4..5481f83d 100644 --- a/app/templates/servers.html +++ b/app/templates/servers.html @@ -399,34 +399,9 @@
- +
- - - - - - - - - - - - - {% for b in backups %} - {% for s in servers %} - {% if b.1 in s.2 %} - {% include 'include/admin_backup.html' %} - {% endif %} - {% endfor %} - {% endfor %} -
ServersRemote serverRemote folderBackup typePeriod timeCredentialsDescription
-
+ Add a new backup job -

-
-
- You can read the description of all parameters here -
+ {% include 'include/admin_backup.html' %}
diff --git a/inc/users.js b/inc/users.js index a6238f69..baeefcab 100644 --- a/inc/users.js +++ b/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); } } } );