mirror of https://github.com/Aidaho12/haproxy-wi
parent
f9e54af897
commit
3c4f5282c6
|
@ -9,4 +9,4 @@ community_bridge: # Replace with a single Community Bridge project-name e.g., cl
|
|||
liberapay: # Replace with a single Liberapay username
|
||||
issuehunt: # Replace with a single IssueHunt username
|
||||
otechie: # Replace with a single Otechie username
|
||||
custom: ['https://www.paypal.me/haproxywi']
|
||||
custom: ['https://paypal.me/loginovpavel']
|
||||
|
|
|
@ -28,6 +28,11 @@ try:
|
|||
except:
|
||||
pass
|
||||
|
||||
try:
|
||||
current_ver = funct.check_ver()
|
||||
except:
|
||||
pass
|
||||
|
||||
template = template.render(title = "Add",
|
||||
role = sql.get_user_role_by_uuid(user_id.value),
|
||||
user = user,
|
||||
|
@ -35,6 +40,7 @@ template = template.render(title = "Add",
|
|||
add = form.getvalue('add'),
|
||||
conf_add = form.getvalue('conf'),
|
||||
group = user_group,
|
||||
current_ver = current_ver,
|
||||
token = token)
|
||||
print(template)
|
||||
|
||||
|
|
|
@ -27,6 +27,11 @@ try:
|
|||
except:
|
||||
pass
|
||||
|
||||
try:
|
||||
current_ver = funct.check_ver()
|
||||
except:
|
||||
pass
|
||||
|
||||
dir = os.path.dirname(os.getcwd())+"/"+sql.get_setting('lists_path')
|
||||
white_dir = os.path.dirname(os.getcwd())+"/"+sql.get_setting('lists_path')+"/"+user_group+"/white"
|
||||
black_dir = os.path.dirname(os.getcwd())+"/"+sql.get_setting('lists_path')+"/"+user_group+"/black"
|
||||
|
@ -49,5 +54,6 @@ template = template.render(h2 = 1,
|
|||
white_lists = white_lists,
|
||||
black_lists = black_lists,
|
||||
group = user_group,
|
||||
current_ver = current_ver,
|
||||
token = token)
|
||||
print(template)
|
|
@ -29,6 +29,11 @@ try:
|
|||
except:
|
||||
pass
|
||||
|
||||
try:
|
||||
current_ver = funct.check_ver()
|
||||
except:
|
||||
pass
|
||||
|
||||
hap_configs_dir = funct.get_config_var('configs', 'haproxy_save_configs_dir')
|
||||
|
||||
if serv is not None:
|
||||
|
@ -98,5 +103,6 @@ template = template.render(h2 = 1, title = "Working with HAProxy configs",
|
|||
stderr = stderr,
|
||||
error = error,
|
||||
note = 1,
|
||||
current_ver = current_ver,
|
||||
token = token)
|
||||
print(template)
|
|
@ -28,6 +28,11 @@ try:
|
|||
except:
|
||||
pass
|
||||
|
||||
try:
|
||||
current_ver = funct.check_ver()
|
||||
except:
|
||||
pass
|
||||
|
||||
if serv is not None and form.getvalue('config') is not None:
|
||||
configver = form.getvalue('configver')
|
||||
configver = hap_configs_dir + configver
|
||||
|
@ -66,5 +71,6 @@ template = template.render(h2 = 1, title = "Old Versions HAProxy config",
|
|||
onclick = "showUploadConfig()",
|
||||
note = 1,
|
||||
token = token,
|
||||
current_ver = current_ver,
|
||||
view = view)
|
||||
print(template)
|
||||
|
|
113
app/create_db.py
113
app/create_db.py
|
@ -121,13 +121,14 @@ def create_table(**kwargs):
|
|||
CREATE TABLE IF NOT EXISTS `telegram` (`id` integer primary key autoincrement, `token` VARCHAR ( 64 ), `chanel_name` INTEGER NOT NULL DEFAULT 1, `groups` INTEGER NOT NULL DEFAULT 1);
|
||||
CREATE TABLE IF NOT EXISTS `metrics` (`serv` varchar(64), curr_con INTEGER, cur_ssl_con INTEGER, sess_rate INTEGER, max_sess_rate INTEGER,`date` timestamp default '0000-00-00 00:00:00');
|
||||
CREATE TABLE IF NOT EXISTS `settings` (`param` varchar(64) UNIQUE, value varchar(64), section varchar(64), `desc` varchar(100));
|
||||
CREATE TABLE IF NOT EXISTS `version` (`version` varchar(64));
|
||||
"""
|
||||
try:
|
||||
cur.executescript(sql)
|
||||
except sqltool.Error as e:
|
||||
if kwargs.get('silent') != 1:
|
||||
if e.args[0] == 'column email is not unique' or e == "1060 (42S21): column email is not unique' ":
|
||||
print('Updating... go to version 3.0<br />')
|
||||
print('Updating... go to version 3.0')
|
||||
else:
|
||||
print("An error occurred:", e)
|
||||
return False
|
||||
|
@ -172,14 +173,22 @@ def update_db_v_31(**kwargs):
|
|||
"INSERT INTO settings (param, value, section, `desc`) values('cert_path', '/etc/ssl/certs/', 'haproxy', 'Path to SSL dir');",
|
||||
"INSERT INTO settings (param, value, section, `desc`) values('firewall_enable', '0', 'haproxy', 'If enable this option Haproxy-wi will be configure firewalld based on config port');",
|
||||
"INSERT INTO settings (param, value, section, `desc`) values('lists_path', 'lists', 'main', 'Path to black/white lists');",
|
||||
"INSERT INTO settings (param, value, section, `desc`) values('apache_log_path', '/var/log/httpd/', 'logs', 'Path to Apache logs');" ]
|
||||
"INSERT INTO settings (param, value, section, `desc`) values('apache_log_path', '/var/log/httpd/', 'logs', 'Path to Apache logs');"
|
||||
"INSERT INTO settings (param, value, section, `desc`) values('ldap_enable', '0', 'ldap', 'If 1 ldap enabled');",
|
||||
"INSERT INTO settings (param, value, section, `desc`) values('ldap_server', '', 'ldap', 'IP address ldap server');",
|
||||
"INSERT INTO settings (param, value, section, `desc`) values('ldap_port', '389', 'ldap', 'Default port is 389 or 636');",
|
||||
"INSERT INTO settings (param, value, section, `desc`) values('ldap_user', '', 'ldap', 'Login for connect to LDAP server. Enter: user@domain.com');",
|
||||
"INSERT INTO settings (param, value, section, `desc`) values('ldap_password', '', 'ldap', 'Password for connect to LDAP server');",
|
||||
"INSERT INTO settings (param, value, section, `desc`) values('ldap_base', '', 'ldap', 'Base domain. Example: dc=domain, dc=com');",
|
||||
"INSERT INTO settings (param, value, section, `desc`) values('ldap_domain', '', 'ldap', 'Domain for login, that after @, like user@domain.com, without user@');",
|
||||
"INSERT INTO settings (param, value, section, `desc`) values('ldap_search_field', 'mail', 'ldap', 'Field where user e-mail saved'" ]
|
||||
try:
|
||||
for i in sql:
|
||||
cur.execute(i)
|
||||
con.commit()
|
||||
except sqltool.Error as e:
|
||||
if kwargs.get('silent') != 1:
|
||||
if e.args[0] == 'duplicate column name: desc' or e == "1060 (42S21): Duplicate column name 'desc' ":
|
||||
if e.args[0] == 'column param is not unique' or e == "1060 (42S21): column param is not unique ":
|
||||
print('Updating... go to version 3.2')
|
||||
else:
|
||||
print("An error occurred:", e)
|
||||
|
@ -199,7 +208,7 @@ def update_db_v_3_2(**kwargs):
|
|||
except sqltool.Error as e:
|
||||
if kwargs.get('silent') != 1:
|
||||
if e.args[0] == 'duplicate column name: server_id' or e == "1060 (42S21): Duplicate column name 'server_id' ":
|
||||
print('DB was updated')
|
||||
print('Updating... go to version 3.2')
|
||||
else:
|
||||
print("An error occurred:", e.args[0])
|
||||
return False
|
||||
|
@ -258,44 +267,17 @@ def update_db_v_3_2_8(**kwargs):
|
|||
except sqltool.Error as e:
|
||||
if kwargs.get('silent') != 1:
|
||||
if e.args[0] == 'duplicate column name: desc' or e == " 1060 (42S21): Duplicate column name 'desc' ":
|
||||
print('DB was update<br />')
|
||||
print('Updating... go to version 3.3')
|
||||
else:
|
||||
print("An error occurred:", e)
|
||||
return False
|
||||
else:
|
||||
print("DB was update to 3.2.8<br />")
|
||||
print("DB was update to 3.2.8")
|
||||
return True
|
||||
cur.close()
|
||||
con.close()
|
||||
|
||||
|
||||
def update_db_v_3_3(**kwargs):
|
||||
con, cur = get_cur()
|
||||
sql = [ "INSERT INTO settings (param, value, section, `desc`) values('ldap_enable', '0', 'ldap', 'If 1 ldap enabled');",
|
||||
"INSERT INTO settings (param, value, section, `desc`) values('ldap_server', '', 'ldap', 'IP address ldap server');",
|
||||
"INSERT INTO settings (param, value, section, `desc`) values('ldap_port', '389', 'ldap', 'Default port is 389 or 636');",
|
||||
"INSERT INTO settings (param, value, section, `desc`) values('ldap_user', '', 'ldap', 'Login for connect to LDAP server. Enter: user@domain.com');",
|
||||
"INSERT INTO settings (param, value, section, `desc`) values('ldap_password', '', 'ldap', 'Password for connect to LDAP server');",
|
||||
"INSERT INTO settings (param, value, section, `desc`) values('ldap_base', '', 'ldap', 'Base domain. Example: dc=domain, dc=com');",
|
||||
"INSERT INTO settings (param, value, section, `desc`) values('ldap_domain', '', 'ldap', 'Domain for login, that after @, like user@domain.com, without user@');",
|
||||
"INSERT INTO settings (param, value, section, `desc`) values('ldap_search_field', 'mail', 'ldap', 'Field where user e-mail saved');"]
|
||||
try:
|
||||
for i in sql:
|
||||
cur.execute(i)
|
||||
con.commit()
|
||||
except sqltool.Error as e:
|
||||
if kwargs.get('silent') != 1:
|
||||
if e.args[0] == 'duplicate column name: desc' or e == "1060 (42S21): Duplicate column name 'desc' ":
|
||||
print('Updating... go to version 3.2')
|
||||
else:
|
||||
print("An error occurred:", e)
|
||||
return False
|
||||
else:
|
||||
pass
|
||||
return True
|
||||
cur.close()
|
||||
con.close()
|
||||
|
||||
def update_db_v_3_31(**kwargs):
|
||||
con, cur = get_cur()
|
||||
sql = """
|
||||
|
@ -312,7 +294,7 @@ def update_db_v_3_31(**kwargs):
|
|||
print("An error occurred:", e)
|
||||
return False
|
||||
else:
|
||||
print("DB was update to 3.3<br />")
|
||||
print("DB was update to 3.3")
|
||||
return True
|
||||
cur.close()
|
||||
con.close()
|
||||
|
@ -334,7 +316,7 @@ def update_db_v_3_4(**kwargs):
|
|||
print("An error occurred:", e)
|
||||
return False
|
||||
else:
|
||||
print("Updating... go to version 3.4.1<br />")
|
||||
print("Updating... go to version 3.4.1")
|
||||
return True
|
||||
cur.close()
|
||||
con.close()
|
||||
|
@ -350,28 +332,75 @@ def update_db_v_3_4_1(**kwargs):
|
|||
con.commit()
|
||||
except sqltool.Error as e:
|
||||
if kwargs.get('silent') != 1:
|
||||
if e.args[0] == 'duplicate column name: active' or e == " 1060 (42S21): Duplicate column name 'active' ":
|
||||
print('Updating... go to version 3.4.1')
|
||||
if e.args[0] == 'duplicate column name: activeuser' or e == " 1060 (42S21): Duplicate column name 'activeuser' ":
|
||||
print('Updating... go to version 3.4.5.2')
|
||||
else:
|
||||
print("An error occurred:", e)
|
||||
return False
|
||||
else:
|
||||
print("DB was update to 3.4.1<br />")
|
||||
print("Updating... go to version 3.4.5.2")
|
||||
return True
|
||||
cur.close()
|
||||
con.close()
|
||||
|
||||
|
||||
def update_db_v_3_4_5_2(**kwargs):
|
||||
con, cur = get_cur()
|
||||
sql = """CREATE TABLE IF NOT EXISTS `version` (`version` varchar(64)); """
|
||||
try:
|
||||
cur.execute(sql)
|
||||
con.commit()
|
||||
except sqltool.Error as e:
|
||||
if kwargs.get('silent') != 1:
|
||||
if e.args[0] == 'duplicate column name: version' or e == "1060 (42S21): Duplicate column name 'version' ":
|
||||
print('Updating... go to version 2.6')
|
||||
else:
|
||||
print("DB was update to 3.4.5.2")
|
||||
return False
|
||||
else:
|
||||
return True
|
||||
cur.close()
|
||||
con.close()
|
||||
|
||||
|
||||
def update_db_v_3_4_5_22(**kwargs):
|
||||
con, cur = get_cur()
|
||||
sql = """insert into version ('version') values ('3.4.5.2'); """
|
||||
try:
|
||||
cur.execute(sql)
|
||||
con.commit()
|
||||
except sqltool.Error as e:
|
||||
print('Cannot insert version')
|
||||
cur.close()
|
||||
con.close()
|
||||
|
||||
|
||||
def update_ver(**kwargs):
|
||||
con, cur = get_cur()
|
||||
sql = """update version set version = '3.4.5.2'; """
|
||||
try:
|
||||
cur.execute(sql)
|
||||
con.commit()
|
||||
except sqltool.Error as e:
|
||||
print('Cannot update version')
|
||||
cur.close()
|
||||
con.close()
|
||||
|
||||
|
||||
def update_all():
|
||||
update_db_v_31()
|
||||
update_db_v_3_2()
|
||||
update_db_v_3_21()
|
||||
update_db_v_3_2_3()
|
||||
update_db_v_3_2_8()
|
||||
update_db_v_3_3()
|
||||
update_db_v_3_31()
|
||||
update_db_v_3_4()
|
||||
update_db_v_3_4_1()
|
||||
update_db_v_3_4_5_2()
|
||||
if funct.check_ver() is None:
|
||||
update_db_v_3_4_5_22()
|
||||
update_ver()
|
||||
|
||||
|
||||
def update_all_silent():
|
||||
update_db_v_31(silent=1)
|
||||
|
@ -379,10 +408,14 @@ def update_all_silent():
|
|||
update_db_v_3_21(silent=1)
|
||||
update_db_v_3_2_3(silent=1)
|
||||
update_db_v_3_2_8(silent=1)
|
||||
update_db_v_3_3(silent=1)
|
||||
update_db_v_3_31(silent=1)
|
||||
update_db_v_3_4(silent=1)
|
||||
update_db_v_3_4_1(silent=1)
|
||||
update_db_v_3_4_5_2(silent=1)
|
||||
if funct.check_ver() is None:
|
||||
update_db_v_3_4_5_22()
|
||||
update_ver()
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
create_table()
|
||||
|
|
|
@ -28,6 +28,11 @@ try:
|
|||
except:
|
||||
pass
|
||||
|
||||
try:
|
||||
current_ver = funct.check_ver()
|
||||
except:
|
||||
pass
|
||||
|
||||
form = cgi.FieldStorage()
|
||||
serv = form.getvalue('serv')
|
||||
Select = form.getvalue('del')
|
||||
|
@ -58,5 +63,6 @@ output_from_parsed_template = template.render(h2 = 1, title = "Delete old versio
|
|||
open = form.getvalue('open'),
|
||||
Select = form.getvalue('del'),
|
||||
file = file,
|
||||
current_ver = current_ver,
|
||||
token = token)
|
||||
print(output_from_parsed_template)
|
|
@ -25,6 +25,11 @@ try:
|
|||
except:
|
||||
pass
|
||||
|
||||
try:
|
||||
current_ver = funct.check_ver()
|
||||
except:
|
||||
pass
|
||||
|
||||
output_from_parsed_template = template.render(h2 = 1,
|
||||
title = "Runtime API",
|
||||
role = sql.get_user_role_by_uuid(user_id.value),
|
||||
|
@ -34,5 +39,6 @@ output_from_parsed_template = template.render(h2 = 1,
|
|||
selects = servers,
|
||||
token = token,
|
||||
serv = serv,
|
||||
current_ver = current_ver,
|
||||
servbackend = servbackend)
|
||||
print(output_from_parsed_template)
|
32
app/funct.py
32
app/funct.py
|
@ -293,6 +293,14 @@ def waf_install(serv, **kwargs):
|
|||
if stderr is None:
|
||||
sql.insert_waf_metrics_enable(serv, "0")
|
||||
|
||||
|
||||
def update_haproxy_wi():
|
||||
cmd = 'sudo -S yum -y update haproxy-wi'
|
||||
output, stderr = subprocess_execute(cmd)
|
||||
print(output)
|
||||
print(stderr)
|
||||
|
||||
|
||||
def check_haproxy_version(serv):
|
||||
import sql
|
||||
haproxy_sock_port = sql.get_setting('haproxy_sock_port')
|
||||
|
@ -498,3 +506,27 @@ def get_files(dir = get_config_var('configs', 'haproxy_save_configs_dir'), forma
|
|||
|
||||
def get_key(item):
|
||||
return item[0]
|
||||
|
||||
|
||||
def check_ver():
|
||||
import sql
|
||||
return sql.get_ver()
|
||||
|
||||
|
||||
def check_new_version():
|
||||
import urllib.request
|
||||
import ssl
|
||||
import sql
|
||||
|
||||
proxy = sql.get_setting('proxy')
|
||||
context = ssl._create_unverified_context()
|
||||
|
||||
if proxy:
|
||||
proxyDict = { "https" : proxy }
|
||||
response = urllib.request.urlopen('https://haproxy-wi.org/update.py?last_ver=1', context=context, proxies=proxyDict)
|
||||
else:
|
||||
response = urllib.request.urlopen('https://haproxy-wi.org/update.py?last_ver=1', context=context)
|
||||
|
||||
res = response.read().decode(encoding='UTF-8')
|
||||
|
||||
return res
|
|
@ -23,10 +23,16 @@ try:
|
|||
except:
|
||||
pass
|
||||
|
||||
try:
|
||||
current_ver = funct.check_ver()
|
||||
except:
|
||||
pass
|
||||
|
||||
output_from_parsed_template = template.render(h2 = 1, title = "Configure HA",
|
||||
role = sql.get_user_role_by_uuid(user_id.value),
|
||||
user = user,
|
||||
serv = serv,
|
||||
selects = servers,
|
||||
current_ver = current_ver,
|
||||
token = token)
|
||||
print(output_from_parsed_template)
|
|
@ -20,11 +20,17 @@ try:
|
|||
except:
|
||||
pass
|
||||
|
||||
try:
|
||||
current_ver = funct.check_ver()
|
||||
except:
|
||||
pass
|
||||
|
||||
output_from_parsed_template = template.render(h2 = 1, title = "Installation HAProxy",
|
||||
role = sql.get_user_role_by_uuid(user_id.value),
|
||||
user = user,
|
||||
select_id = "haproxyaddserv",
|
||||
selects = servers,
|
||||
current_ver = current_ver,
|
||||
token = token)
|
||||
print(output_from_parsed_template)
|
||||
|
||||
|
|
|
@ -32,6 +32,11 @@ try:
|
|||
except:
|
||||
pass
|
||||
|
||||
try:
|
||||
current_ver = funct.check_ver()
|
||||
except:
|
||||
pass
|
||||
|
||||
if serv is not None:
|
||||
cfg = kp_save_configs_dir+ serv + '-' + funct.get_data('config') + '.conf'
|
||||
|
||||
|
@ -87,5 +92,6 @@ output_from_parsed_template = template.render(h2 = 1, title = "Edit Runnig Keepa
|
|||
stderr = stderr,
|
||||
error = error,
|
||||
keepalived = 1,
|
||||
current_ver = current_ver,
|
||||
token = token)
|
||||
print(output_from_parsed_template)
|
|
@ -27,6 +27,11 @@ try:
|
|||
except:
|
||||
pass
|
||||
|
||||
try:
|
||||
current_ver = funct.check_ver()
|
||||
except:
|
||||
pass
|
||||
|
||||
dir = os.path.dirname(os.getcwd())+"/"+sql.get_setting('lists_path')
|
||||
white_dir = os.path.dirname(os.getcwd())+"/"+sql.get_setting('lists_path')+"/"+user_group+"/white"
|
||||
black_dir = os.path.dirname(os.getcwd())+"/"+sql.get_setting('lists_path')+"/"+user_group+"/black"
|
||||
|
@ -49,5 +54,6 @@ template = template.render(h2 = 1,
|
|||
white_lists = white_lists,
|
||||
black_lists = black_lists,
|
||||
group = user_group,
|
||||
current_ver = current_ver,
|
||||
token = token)
|
||||
print(template)
|
|
@ -113,6 +113,11 @@ except:
|
|||
user = ""
|
||||
pass
|
||||
|
||||
try:
|
||||
current_ver = funct.check_ver()
|
||||
except:
|
||||
pass
|
||||
|
||||
if form.getvalue('logout'):
|
||||
try:
|
||||
sql.delete_uuid(user_id.value)
|
||||
|
@ -161,5 +166,6 @@ output_from_parsed_template = template.render(h2 = 1, title = "Login page. Enter
|
|||
error_log = error_log,
|
||||
error = error,
|
||||
ref = ref,
|
||||
current_ver = current_ver,
|
||||
db_create = db_create)
|
||||
print(output_from_parsed_template)
|
|
@ -31,6 +31,11 @@ try:
|
|||
except:
|
||||
pass
|
||||
|
||||
try:
|
||||
current_ver = funct.check_ver()
|
||||
except:
|
||||
pass
|
||||
|
||||
output_from_parsed_template = template.render(h2 = 1,
|
||||
autorefresh = 1,
|
||||
title = "Show logs",
|
||||
|
@ -42,6 +47,7 @@ output_from_parsed_template = template.render(h2 = 1,
|
|||
serv = form.getvalue('serv'),
|
||||
rows = rows,
|
||||
grep = grep,
|
||||
current_ver = current_ver,
|
||||
token = token)
|
||||
print(output_from_parsed_template)
|
||||
|
||||
|
|
|
@ -19,11 +19,17 @@ try:
|
|||
except:
|
||||
pass
|
||||
|
||||
try:
|
||||
current_ver = funct.check_ver()
|
||||
except:
|
||||
pass
|
||||
|
||||
template = template.render(h2 = 1, title = "Metrics",
|
||||
autorefresh = 1,
|
||||
role = sql.get_user_role_by_uuid(user_id.value),
|
||||
user = user,
|
||||
onclick = "metricsShow()",
|
||||
table_stat = sql.select_table_metrics(user_id.value),
|
||||
current_ver = current_ver,
|
||||
token = token)
|
||||
print(template)
|
|
@ -402,6 +402,10 @@ if form.getvalue('haproxyaddserv'):
|
|||
if form.getvalue('installwaf'):
|
||||
funct.waf_install(form.getvalue('installwaf'))
|
||||
|
||||
|
||||
if form.getvalue('update_haproxy_wi'):
|
||||
funct.update_haproxy_wi()
|
||||
|
||||
if form.getvalue('metrics_waf'):
|
||||
sql.update_waf_metrics_enable(form.getvalue('metrics_waf'), form.getvalue('enable'))
|
||||
|
||||
|
|
|
@ -31,6 +31,11 @@ try:
|
|||
except:
|
||||
pass
|
||||
|
||||
try:
|
||||
current_ver = funct.check_ver()
|
||||
except:
|
||||
pass
|
||||
|
||||
template = template.render(h2 = 1,
|
||||
autorefresh = 1,
|
||||
title = "Overview",
|
||||
|
@ -43,5 +48,6 @@ template = template.render(h2 = 1,
|
|||
checker_master = ''.join(checker_master),
|
||||
checker_worker = ''.join(checker_worker),
|
||||
error = stderr,
|
||||
current_ver = current_ver,
|
||||
token = token)
|
||||
print(template)
|
||||
|
|
|
@ -23,6 +23,11 @@ try:
|
|||
except:
|
||||
pass
|
||||
|
||||
try:
|
||||
current_ver = funct.check_ver()
|
||||
except:
|
||||
pass
|
||||
|
||||
output_from_parsed_template = template.render(title = "Servers manage",
|
||||
role = sql.get_user_role_by_uuid(user_id.value),
|
||||
user = user,
|
||||
|
@ -35,5 +40,6 @@ output_from_parsed_template = template.render(title = "Servers manage",
|
|||
sshs = sql.select_ssh(),
|
||||
telegrams = sql.get_user_telegram_by_uuid(user_id.value),
|
||||
token = token,
|
||||
current_ver = current_ver,
|
||||
ldap_enable = ldap_enable)
|
||||
print(output_from_parsed_template)
|
|
@ -22,9 +22,15 @@ try:
|
|||
except:
|
||||
pass
|
||||
|
||||
try:
|
||||
current_ver = funct.check_ver()
|
||||
except:
|
||||
pass
|
||||
|
||||
template = template.render(h2 = 1, title = "Settings",
|
||||
role = sql.get_user_role_by_uuid(user_id.value),
|
||||
user = user,
|
||||
settings = settings,
|
||||
current_ver = current_ver,
|
||||
token = token)
|
||||
print(template)
|
14
app/sql.py
14
app/sql.py
|
@ -1088,6 +1088,20 @@ def update_setting(param, val):
|
|||
cur.close()
|
||||
con.close()
|
||||
|
||||
|
||||
def get_ver():
|
||||
con, cur = create_db.get_cur()
|
||||
sql = """ select * from version; """
|
||||
try:
|
||||
cur.execute(sql)
|
||||
except sqltool.Error as e:
|
||||
out_error(e)
|
||||
else:
|
||||
for ver in cur.fetchall():
|
||||
return ver[0]
|
||||
cur.close()
|
||||
con.close()
|
||||
|
||||
def show_update_telegram(token, page):
|
||||
from jinja2 import Environment, FileSystemLoader
|
||||
env = Environment(loader=FileSystemLoader('templates/ajax'))
|
||||
|
|
|
@ -108,6 +108,7 @@
|
|||
<li><a href=/app/users.py#ssh title="Manage SSH credentials" class="admin head-submenu">SSH credentials</a></li>
|
||||
<li><a href=/app/settings.py title="HAproxy-WI settings" class="settings head-submenu">Settings</a></li>
|
||||
<li><a href=/app/viewlogs.py title="View internal logs" class="logs head-submenu">Internal logs</a></li>
|
||||
<li><a href=/app/update.py title="View internal logs" class="logs head-submenu">Update</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
@ -115,7 +116,7 @@
|
|||
</ul>
|
||||
</nav>
|
||||
<div class="copyright-menu">
|
||||
<a href="https://github.com/aidaho12/haproxy-wi/" title="Github repo" target="_blank" style="color: #fff">HAproxy-WI v3.4.5.1</a>
|
||||
<a href="https://github.com/aidaho12/haproxy-wi/" title="Github repo" target="_blank" style="color: #fff">HAproxy-WI</a> <span id="show-updates-button">v{{current_ver}}</span>
|
||||
<br>
|
||||
<a href="https://www.patreon.com/haproxy_wi" title="Donate" target="_blank" style="color: #fff; margin-left: 30px; color: red;" class="patreon"> Donate</a>
|
||||
</div>
|
||||
|
@ -215,6 +216,12 @@
|
|||
{% block content %}{% endblock %}
|
||||
<div id="ajax-compare"></div>
|
||||
<div id="ajax"></div>
|
||||
|
||||
</div>
|
||||
<div id="show-updates" style="display: none;">
|
||||
<div>
|
||||
There is a new version HAProxy-WI
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -0,0 +1,30 @@
|
|||
{% extends "base.html" %}
|
||||
{% block content %}
|
||||
<script src="/inc/users.js"></script>
|
||||
<table class="overview">
|
||||
<tr class="overviewHead">
|
||||
<td class="padding10 first-collumn" >Currnet version</td>
|
||||
<td class="padding10 first-collumn" style="width: 350px;">Last version</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="padding10 first-collumn">
|
||||
<b>{{current_ver}}</b>
|
||||
</td>
|
||||
<td class="padding10 first-collumn" style="width: 350px;">
|
||||
<b>{{new_ver}}</b>
|
||||
</td>
|
||||
<td>
|
||||
{% if current_ver_without_dots < new_ver_without_dots and current_ver_without_dots != new_ver_without_dots and new_ver != "Sorry cannot get current version" %}
|
||||
<a class="ui-button ui-widget ui-corner-all" id="install" title="Install HAProxy">Update</a>
|
||||
{% endif %}
|
||||
</td>
|
||||
</table>
|
||||
<div class="add-note addName" style="width: inherit;">
|
||||
<b style="font-size: 20px; display: block; padding-bottom: 10px;">Note:</b>
|
||||
For update you have to use HAProxy-WI repository. If do not use repositiry then use update.sh script in HAProxy-WI home directory <br />
|
||||
<br />
|
||||
Read more about update in <a href="https://haproxy-wi.org/updates.py" title="Doc" target="_blank">docs</a>
|
||||
</div>
|
||||
<div id="ajax"></div>
|
||||
{% endblock %}
|
|
@ -0,0 +1,43 @@
|
|||
#!/usr/bin/env python3
|
||||
import http.cookies
|
||||
import os
|
||||
import funct, sql
|
||||
from jinja2 import Environment, FileSystemLoader
|
||||
env = Environment(loader=FileSystemLoader('templates/'))
|
||||
template = env.get_template('update.html')
|
||||
|
||||
print('Content-type: text/html\n')
|
||||
funct.check_login()
|
||||
funct.page_for_admin(level = 2)
|
||||
|
||||
try:
|
||||
cookie = http.cookies.SimpleCookie(os.environ.get("HTTP_COOKIE"))
|
||||
user_id = cookie.get('uuid')
|
||||
user = sql.get_user_name_by_uuid(user_id.value)
|
||||
token = sql.get_token(user_id.value)
|
||||
except:
|
||||
pass
|
||||
|
||||
try:
|
||||
current_ver = funct.check_ver()
|
||||
current_ver_without_dots = current_ver.split('.')
|
||||
current_ver_without_dots = ''.join(current_ver_without_dots)
|
||||
except:
|
||||
current_ver = "Sorry cannot get current version"
|
||||
|
||||
try:
|
||||
new_ver = funct.check_new_version()
|
||||
new_ver_without_dots = new_ver.split('.')
|
||||
new_ver_without_dots = ''.join(new_ver_without_dots)
|
||||
except:
|
||||
new_ver = "Sorry cannot get new version"
|
||||
|
||||
output_from_parsed_template = template.render(h2 = 1, title = "Check updates",
|
||||
role = sql.get_user_role_by_uuid(user_id.value),
|
||||
user = user,
|
||||
current_ver = current_ver,
|
||||
current_ver_without_dots = current_ver_without_dots,
|
||||
new_ver = new_ver,
|
||||
new_ver_without_dots = new_ver_without_dots,
|
||||
token = token)
|
||||
print(output_from_parsed_template)
|
|
@ -27,6 +27,11 @@ try:
|
|||
except:
|
||||
pass
|
||||
|
||||
try:
|
||||
current_ver = funct.check_ver()
|
||||
except:
|
||||
pass
|
||||
|
||||
output_from_parsed_template = template.render(title = "Admin area: users manage",
|
||||
role = sql.get_user_role_by_uuid(user_id.value),
|
||||
user = user,
|
||||
|
@ -38,5 +43,6 @@ output_from_parsed_template = template.render(title = "Admin area: users manage"
|
|||
sshs = sql.select_ssh(),
|
||||
telegrams = sql.select_telegram(),
|
||||
token = token,
|
||||
current_ver = current_ver,
|
||||
ldap_enable = ldap_enable)
|
||||
print(output_from_parsed_template)
|
||||
|
|
|
@ -48,6 +48,11 @@ try:
|
|||
except:
|
||||
pass
|
||||
|
||||
try:
|
||||
current_ver = funct.check_ver()
|
||||
except:
|
||||
pass
|
||||
|
||||
def get_files():
|
||||
file = []
|
||||
for files in glob.glob(os.path.join(log_path,'*.log*')):
|
||||
|
@ -68,5 +73,6 @@ output_from_parsed_template = template.render(h2 = 1,
|
|||
selects = selects,
|
||||
rows = rows,
|
||||
grep = grep,
|
||||
current_ver = current_ver,
|
||||
token = token)
|
||||
print(output_from_parsed_template)
|
||||
|
|
|
@ -28,6 +28,11 @@ try:
|
|||
except:
|
||||
pass
|
||||
|
||||
try:
|
||||
current_ver = funct.check_ver()
|
||||
except:
|
||||
pass
|
||||
|
||||
output_from_parsed_template = template.render(h2 = 1,
|
||||
autorefresh = 1,
|
||||
title = "HAProxy statistics",
|
||||
|
@ -37,6 +42,7 @@ output_from_parsed_template = template.render(h2 = 1,
|
|||
select_id = "serv",
|
||||
selects = servers,
|
||||
serv = serv,
|
||||
current_ver = current_ver,
|
||||
token = token)
|
||||
print(output_from_parsed_template)
|
||||
|
||||
|
|
|
@ -20,10 +20,16 @@ try:
|
|||
except:
|
||||
pass
|
||||
|
||||
try:
|
||||
current_ver = funct.check_ver()
|
||||
except:
|
||||
pass
|
||||
|
||||
template = template.render(h2 = 1, title = "Web application firewall",
|
||||
autorefresh = 1,
|
||||
role = sql.get_user_role_by_uuid(user_id.value),
|
||||
user = user,
|
||||
table_stat = sql.select_table_metrics(user_id.value),
|
||||
current_ver = current_ver,
|
||||
token = token)
|
||||
print(template)
|
32
inc/users.js
32
inc/users.js
|
@ -124,6 +124,37 @@ $( function() {
|
|||
}
|
||||
} );
|
||||
});
|
||||
$('#update_haproxy_wi').click(function() {
|
||||
$("#ajax").html('')
|
||||
|
||||
$("#ajax").html('<div class="alert alert-warning">Please don\'t close and don\'t represh page. Wait until the work is completed. This may take some time </div>');
|
||||
$.ajax( {
|
||||
url: "options.py",
|
||||
data: {
|
||||
update_haproxy_wi: 1,
|
||||
token: $('#token').val()
|
||||
},
|
||||
type: "GET",
|
||||
success: function( data ) {
|
||||
data = data.replace(/\s+/g,' ');
|
||||
if (data.indexOf('error') != '-1' || data.indexOf('Failed') != '-1') {
|
||||
$("#ajax").html('<div class="alert alert-danger">'+data+'</data>');
|
||||
} else if (data.indexOf('success') != '-1'){
|
||||
$('.alert-danger').remove();
|
||||
$('.alert-warning').remove();
|
||||
$("#ajax").html('<div class="alert alert-success">'+data+'</data>');
|
||||
} else if (data.indexOf('but not installed') != '-1') {
|
||||
$('.alert-danger').remove();
|
||||
$('.alert-warning').remove();
|
||||
$("#ajax").html('<div class="alert alert-warning">You have settings for HAProxy-WI repository, but installed HAProxy-WI without repository. Please reinstall with yum or use update.sh</data>');
|
||||
} else if (data.indexOf('No Match for argument') != '-1') {
|
||||
$('.alert-danger').remove();
|
||||
$('.alert-warning').remove();
|
||||
$("#ajax").html('<div class="alert alert-warning">It is seems like you do not have HAProxy-WI repository settings. Please read docs for<a href="https://haproxy-wi.org/updates.py">detail</a></data>');
|
||||
}
|
||||
}
|
||||
} );
|
||||
});
|
||||
$('#add-group').click(function() {
|
||||
$('#error').remove();
|
||||
$('.alert-danger').remove();
|
||||
|
@ -294,7 +325,6 @@ $( function() {
|
|||
$('#add-server-button').click(function() {
|
||||
addServerDialog.dialog('open');
|
||||
});
|
||||
|
||||
$('#add-ssh-button').click(function() {
|
||||
if ($('#ssh-add-table').css('display', 'none')) {
|
||||
$('#ssh-add-table').show("blind", "fast");
|
||||
|
|
Loading…
Reference in New Issue