diff --git a/app/add.py b/app/add.py index 69dfd9b0..6b6e5dc4 100644 --- a/app/add.py +++ b/app/add.py @@ -236,7 +236,7 @@ try: print("Can't read import config file") funct.logging(serv, "add.py add new %s" % name) - print('
') + print('
') 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 @@ - + {{server.2}} diff --git a/app/templates/ajax/new_server.html b/app/templates/ajax/new_server.html index a85e9e16..7f598bb5 100644 --- a/app/templates/ajax/new_server.html +++ b/app/templates/ajax/new_server.html @@ -4,7 +4,7 @@ - + {{server.2}} {% if page == "servers.py" %} {% endif %} diff --git a/app/templates/servers.html b/app/templates/servers.html index ed786979..af221529 100644 --- a/app/templates/servers.html +++ b/app/templates/servers.html @@ -91,7 +91,7 @@ - + {{server.2}} diff --git a/inc/add.js b/inc/add.js index 2e6c3671..736c8d60 100644 --- a/inc/add.js +++ b/inc/add.js @@ -919,7 +919,8 @@ function resetProxySettings() { $('[name=port]').val(''); $('[name=server_port]').val(''); $('input:checkbox').prop( "checked", false ); - $('[name=ssl-check').prop( "checked", true ); + $('[name=ssl-check]').prop( "checked", true ); + $('[name=check-servers]').prop( "checked", true ); $('input:checkbox').checkboxradio("refresh"); $('.advance-show').fadeIn(); $('.advance').fadeOut(); diff --git a/inc/style.css b/inc/style.css index f3639ca1..dc733b03 100644 --- a/inc/style.css +++ b/inc/style.css @@ -750,6 +750,7 @@ label { height: 153px; width: 365px; padding: 20px; + padding-top: 10px; padding-left: 15px; padding-right: 15px; margin: 20px; @@ -810,7 +811,7 @@ label { margin-top: px; margin-bottom: 0px; margin-top: 0px; - height: 192px; + height: 183px; } .haproxy-info { display: inline-block; @@ -857,10 +858,6 @@ label { #logo_span { margin-left: 17%; } - #create { - margin-top: 20px; - } - } @media (max-width: 1900px) { #logo_span { @@ -874,6 +871,7 @@ label { .ajax-server, .div-backends { clear: both !important; margin-left: 20px !important; + margin-bottom: 20px !important; width: 88% !important; } .div-server { @@ -901,6 +899,9 @@ label { .form-control { width: 120px; } + #create { + margin-top: 20px; + } } @media (max-width: 1080px) { #logo_span { diff --git a/inc/users.js b/inc/users.js index 919fad5e..37f1350e 100644 --- a/inc/users.js +++ b/inc/users.js @@ -1187,7 +1187,6 @@ function updateServer(id) { url: "options.py", data: { updateserver: $('#hostname-'+id).val(), - ip: $('#ip-'+id).val(), port: $('#port-'+id).val(), servergroup: servergroup, typeip: typeip,