')
MASTERS = sql.is_master(serv)
for master in MASTERS:
@@ -245,7 +245,7 @@ try:
stderr = funct.upload_and_restart(serv, cfg, just_save="save")
if stderr:
- print('
%s
' % stderr)
+ print('
%s
X
' % stderr)
else:
print('' % (name, config_add, serv))
diff --git a/app/create_db.py b/app/create_db.py
index de434ad0..bb48b954 100644
--- a/app/create_db.py
+++ b/app/create_db.py
@@ -360,9 +360,31 @@ def update_db_v_3_12_1(**kwargs):
con.close()
+def update_db_v_3_13(**kwargs):
+ con, cur = get_cur()
+ sql = """
+ ALTER TABLE `servers` ADD COLUMN keepalived INTEGER NOT NULL DEFAULT 0;
+ """
+ try:
+ cur.execute(sql)
+ con.commit()
+ except sqltool.Error as e:
+ if kwargs.get('silent') != 1:
+ if e.args[0] == 'duplicate column name: keepalived' or e == " 1060 (42S21): Duplicate column name 'keepalived' ":
+ print('DB was update to 3.13.0')
+ else:
+ print("An error occurred:", e)
+ return False
+ else:
+ print("DB was update to 3.13.0")
+ return True
+ cur.close()
+ con.close()
+
+
def update_ver(**kwargs):
con, cur = get_cur()
- sql = """update version set version = '3.12.2.1'; """
+ sql = """update version set version = '3.12.2.2'; """
try:
cur.execute(sql)
con.commit()
@@ -383,6 +405,7 @@ def update_all():
update_db_v_3_8_1()
update_db_v_3_12()
update_db_v_3_12_1()
+ update_db_v_3_13()
update_ver()
@@ -397,6 +420,7 @@ def update_all_silent():
update_db_v_3_8_1(silent=1)
update_db_v_3_12(silent=1)
update_db_v_3_12_1(silent=1)
+ update_db_v_3_13(silent=1)
update_ver()
diff --git a/app/options.py b/app/options.py
index da5ebbf5..1406b605 100644
--- a/app/options.py
+++ b/app/options.py
@@ -917,10 +917,10 @@ if form.getvalue('bwlists_create'):
list = os.path.dirname(os.getcwd())+"/"+sql.get_setting('lists_path')+"/"+form.getvalue('group')+"/"+color+"/"+list_name
try:
open(list, 'a').close()
- print('
'+form.getvalue('color')+' list was created
')
+ print('
'+form.getvalue('color')+' list was created
')
funct.logging(server[1], 'has created '+color+' list '+list_name, haproxywi=1, login=1)
except IOError as e:
- print('
Cat\'n create new '+form.getvalue('color')+' list. %s
' % e)
+ print('
Cat\'n create new '+form.getvalue('color')+' list. %s
' % e)
if form.getvalue('bwlists_save'):
@@ -931,7 +931,7 @@ if form.getvalue('bwlists_save'):
with open(list, "w") as file:
file.write(form.getvalue('bwlists_content'))
except IOError as e:
- print('
Cat\'n save '+color+' list. %s
' % e)
+ print('
Cat\'n save '+color+' list. %s
' % e)
servers = sql.get_dick_permit()
path = sql.get_setting('haproxy_dir')+"/"+color
@@ -943,7 +943,7 @@ if form.getvalue('bwlists_save'):
if error:
print('
Upload fail: %s
' % error)
else:
- print('
Edited '+color+' list was uploaded to '+server[1]+'
')
+ print('
Edited '+color+' list was uploaded to '+server[1]+'
')
funct.logging(server[1], 'has edited '+color+' list '+bwlists_save, haproxywi=1, login=1)
if form.getvalue('bwlists_restart') == 'restart':
funct.ssh_command(server[2], ["sudo " + sql.get_setting('restart_command')])
@@ -1100,8 +1100,7 @@ if form.getvalue('newserver') is not None:
if form.getvalue('updateserver') is not None:
- name = form.getvalue('updateserver')
- ip = form.getvalue('ip')
+ name = form.getvalue('updateserver')
group = form.getvalue('servergroup')
typeip = form.getvalue('typeip')
enable = form.getvalue('enable')
@@ -1113,10 +1112,10 @@ if form.getvalue('updateserver') is not None:
port = form.getvalue('port')
desc = form.getvalue('desc')
active = form.getvalue('active')
- if name is None or ip is None or port is None:
+ if name is None or port is None:
print(error_mess)
else:
- sql.update_server(name, ip, group, typeip, enable, master, id, cred, alert, metrics, port, desc, active)
+ sql.update_server(name, group, typeip, enable, master, id, cred, alert, metrics, port, desc, active)
funct.logging('the server '+name, ' has updated ', haproxywi=1, login=1)
diff --git a/app/sql.py b/app/sql.py
index 4b3be506..b2947e2c 100644
--- a/app/sql.py
+++ b/app/sql.py
@@ -188,11 +188,10 @@ def delete_server(id):
cur.close()
con.close()
-def update_server(hostname, ip, group, typeip, enable, master, id, cred, alert, metrics, port, desc, active):
+def update_server(hostname, group, typeip, enable, master, id, cred, alert, metrics, port, desc, active):
con, cur = get_cur()
sql = """ update servers set
hostname = '%s',
- ip = '%s',
groups = '%s',
type_ip = '%s',
enable = '%s',
@@ -203,7 +202,7 @@ def update_server(hostname, ip, group, typeip, enable, master, id, cred, alert,
port = '%s',
`desc` = '%s',
active = '%s'
- where id = '%s'""" % (hostname, ip, group, typeip, enable, master, cred, alert, metrics, port, desc, active, id)
+ where id = '%s'""" % (hostname, group, typeip, enable, master, cred, alert, metrics, port, desc, active, id)
try:
cur.execute(sql)
con.commit()
@@ -443,12 +442,12 @@ def get_user_name_by_uuid(uuid):
return user_id[0]
cur.close()
con.close()
+
def get_user_role_by_uuid(uuid):
con, cur = get_cur()
- sql = """ select role.id from user left join uuid as uuid on user.id = uuid.user_id left join role on role.name = user.role where uuid.uuid = '%s' """ % uuid
try:
- cur.execute(sql)
+ cur.execute("select role.id from user left join uuid as uuid on user.id = uuid.user_id left join role on role.name = user.role where uuid.uuid = ?", (uuid,))
except sqltool.Error as e:
out_error(e)
else:
@@ -1451,6 +1450,7 @@ def select_alert(**kwargs):
cur.close()
con.close()
+
def select_keep_alive(**kwargs):
con, cur = get_cur()
sql = """select ip from servers where active = 1 """
@@ -1464,6 +1464,35 @@ def select_keep_alive(**kwargs):
con.close()
+def select_keealived(serv, **kwargs):
+ con, cur = get_cur()
+ sql = """select keepalived from `servers` where ip='%s' """ % serv
+ try:
+ cur.execute(sql)
+ except sqltool.Error as e:
+ out_error(e)
+ else:
+ for value in cur.fetchone():
+ return value
+ cur.close()
+ con.close()
+
+
+def update_keepalived(serv):
+ con, cur = get_cur()
+ sql = """update `servers` set `keepalived` = '1' where ip = '%s' """ % serv
+ try:
+ cur.execute(sql)
+ con.commit()
+ return True
+ except sqltool.Error as e:
+ out_error(e)
+ con.rollback()
+ return False
+ cur.close()
+ con.close()
+
+
def check_token_exists(token):
try:
import http.cookies
diff --git a/app/templates/admin.html b/app/templates/admin.html
index 7a7a7e7b..7589afd2 100644
--- a/app/templates/admin.html
+++ b/app/templates/admin.html
@@ -162,7 +162,7 @@