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 @@
-
+
-
-
- Servers
- Remote server
- Remote folder
- Backup type
- Period time
- Credentials
- Description
-
-
-
- {% for b in backups %}
- {% include 'include/admin_backup.html' %}
- {% endfor %}
-
-
+ 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 @@
-
+
+
+ Servers
+ Remote server
+ Remote folder
+ Backup type
+ Period time
+ Credentials
+ Description
+
+
+
+ {% for b in backups %}
+ {% for s in servers %}
+ {% if b.1 in s.2 %}
+
{{ b.1 }}
@@ -6,7 +21,6 @@
{{ input('backup-rserver-'+b.0|string(), value=b.2, size='14') }}
-
{{ 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') }}
-
@@ -44,5 +57,15 @@
-
-
\ No newline at end of file
+
+
+ {% endif %}
+ {% endfor %}
+ {% endfor %}
+
+ + 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 @@
Choose credentials
{% for ssh in sshs %}
- {{ssh.1}}
+ {% if ssh.2 == 1 %}
+ {{ssh.1}}
+ {% endif %}
{% endfor %}
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 @@
-
+
-
-
- Servers
- Remote server
- Remote folder
- Backup type
- Period time
- Credentials
- Description
-
-
-
- {% for b in backups %}
- {% for s in servers %}
- {% if b.1 in s.2 %}
- {% include 'include/admin_backup.html' %}
- {% endif %}
- {% endfor %}
- {% endfor %}
-
-
+ 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);
}
}
} );