diff --git a/app/add.py b/app/add.py index dae34fb9..7209c772 100644 --- a/app/add.py +++ b/app/add.py @@ -180,8 +180,16 @@ elif form.getvalue('mode') is not None: try: if a == '1': acl_if_word = 'hdr_beg(host) -i ' + if form.getvalue('ssl') == "https" and form.getvalue('mode') != "tcp": + acl_if_word = 'ssl_fc_sni -i ' + if form.getvalue('mode') == "tcp": + acl_if_word = 'req.ssl_sni -i ' elif a == '2': acl_if_word = 'hdr_end(host) -i ' + if form.getvalue('ssl') == "https" and form.getvalue('mode') != "tcp": + acl_if_word = 'ssl_fc_sni -i ' + if form.getvalue('mode') == "tcp": + acl_if_word = 'req.ssl_sni -i ' elif a == '3': acl_if_word = 'path_beg -i ' elif a == '4': diff --git a/app/create_db.py b/app/create_db.py index 5b45f4ed..c3215cf6 100644 --- a/app/create_db.py +++ b/app/create_db.py @@ -52,11 +52,11 @@ def check_db(): def get_cur(): try: if mysql_enable == '0': - con = sqltool.connect(db, isolation_level=None) + con = sqltool.connect(db, isolation_level=None) else: con = sqltool.connect(user=mysql_user, password=mysql_password, host=mysql_host, port=mysql_port, - database=mysql_db) + database=mysql_db) cur = con.cursor() except sqltool.Error as e: funct.logging('DB ', ' '+str(e), haproxywi=1, login=1) @@ -77,9 +77,9 @@ def create_table(**kwargs): `groups` VARCHAR ( 120 ), ldap_user INTEGER NOT NULL DEFAULT 0, activeuser INTEGER NOT NULL DEFAULT 1, - PRIMARY KEY(`id`) + PRIMARY KEY(`id`) ); - INSERT INTO user (username, email, password, role, groups) VALUES + INSERT INTO user (username, email, password, role, groups) VALUES ('admin','admin@localhost','21232f297a57a5a743894a0e4a801fc3','admin','1'), ('editor','editor@localhost','5aee9dbd2a188839105073571bee1b1f','editor','1'), ('guest','guest@localhost','084e0343a0486ff05530df6c705c8bb4','guest','1'); @@ -97,18 +97,18 @@ def create_table(**kwargs): port INTEGER NOT NULL DEFAULT 22, `desc` varchar(64), active INTEGER NOT NULL DEFAULT 0, - PRIMARY KEY(`id`) + PRIMARY KEY(`id`) ); CREATE TABLE IF NOT EXISTS `role` ( `id` INTEGER NOT NULL, `name` VARCHAR ( 80 ) UNIQUE, `description` VARCHAR ( 255 ), - PRIMARY KEY(`id`) + PRIMARY KEY(`id`) ); INSERT INTO `role` (name, description) VALUES ('admin','Can do everything'), ('editor','Can edit configs'), ('guest','Read only access'); - + CREATE TABLE IF NOT EXISTS `groups` ( `id` INTEGER NOT NULL, `name` VARCHAR ( 80 ), @@ -127,16 +127,16 @@ def create_table(**kwargs): ); CREATE TABLE IF NOT EXISTS `uuid` (`user_id` INTEGER NOT NULL, `uuid` varchar ( 64 ),`exp` timestamp default '0000-00-00 00:00:00'); CREATE TABLE IF NOT EXISTS `token` (`user_id` INTEGER, `token` varchar(64), `exp` timestamp default '0000-00-00 00:00:00'); - 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 `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), value varchar(64), section varchar(64), `desc` varchar(100), `group` INTEGER NOT NULL DEFAULT 1, UNIQUE(param, `group`)); CREATE TABLE IF NOT EXISTS `version` (`version` varchar(64)); - CREATE TABLE IF NOT EXISTS `options` ( `id` INTEGER NOT NULL, `options` VARCHAR ( 64 ), `groups` VARCHAR ( 120 ), PRIMARY KEY(`id`)); - CREATE TABLE IF NOT EXISTS `saved_servers` ( `id` INTEGER NOT NULL, `server` VARCHAR ( 64 ), `description` VARCHAR ( 120 ), `groups` VARCHAR ( 120 ), PRIMARY KEY(`id`)); - CREATE TABLE IF NOT EXISTS `backups` ( `id` INTEGER NOT NULL, `server` VARCHAR ( 64 ), `rhost` VARCHAR ( 120 ), `rpath` VARCHAR ( 120 ), `type` VARCHAR ( 120 ), `time` VARCHAR ( 120 ), cred INTEGER, `description` VARCHAR ( 120 ), PRIMARY KEY(`id`)); + CREATE TABLE IF NOT EXISTS `options` (`id` INTEGER NOT NULL, `options` VARCHAR ( 64 ), `groups` VARCHAR ( 120 ), PRIMARY KEY(`id`)); + CREATE TABLE IF NOT EXISTS `saved_servers` (`id` INTEGER NOT NULL, `server` VARCHAR ( 64 ), `description` VARCHAR ( 120 ), `groups` VARCHAR ( 120 ), PRIMARY KEY(`id`)); + CREATE TABLE IF NOT EXISTS `backups` (`id` INTEGER NOT NULL, `server` VARCHAR ( 64 ), `rhost` VARCHAR ( 120 ), `rpath` VARCHAR ( 120 ), `type` VARCHAR ( 120 ), `time` VARCHAR ( 120 ), cred INTEGER, `description` VARCHAR ( 120 ), PRIMARY KEY(`id`)); CREATE TABLE IF NOT EXISTS `waf` (`server_id` INTEGER UNIQUE, metrics INTEGER); - CREATE TABLE IF NOT EXISTS `waf_metrics` (`serv` varchar(64), conn INTEGER, `date` DATETIME default '0000-00-00 00:00:00'); - CREATE TABLE IF NOT EXISTS user_groups(user_id INTEGER NOT NULL, user_group_id INTEGER NOT NULL, UNIQUE(user_id,user_group_id)); + CREATE TABLE IF NOT EXISTS `waf_metrics` (`serv` varchar(64), conn INTEGER, `date` DATETIME default '0000-00-00 00:00:00'); + CREATE TABLE IF NOT EXISTS user_groups(user_id INTEGER NOT NULL, user_group_id INTEGER NOT NULL, UNIQUE(user_id,user_group_id)); """ try: cur.executescript(sql) @@ -150,7 +150,7 @@ def create_table(**kwargs): else: return True else: - try: + try: for line in open("haproxy-wi.db.sql"): cur.execute(line) except sqltool.Error as e: @@ -160,10 +160,10 @@ def create_table(**kwargs): return False else: return True - cur.close() + cur.close() con.close() - - + + def update_db_v_31(**kwargs): con, cur = get_cur() sql = list() @@ -199,7 +199,7 @@ def update_db_v_31(**kwargs): sql.append("INSERT INTO settings (param, value, section, `desc`) values('ldap_class_search', 'user', 'ldap', 'Class to search user');") sql.append("INSERT INTO settings (param, value, section, `desc`) values('ldap_user_attribute', 'sAMAccountName', 'ldap', 'User\'s attribute for search');") sql.append("INSERT INTO settings (param, value, section, `desc`) values('ldap_search_field', 'mail', 'ldap', 'Field where user e-mail saved');") - + for i in sql: try: cur.execute(i) @@ -210,14 +210,14 @@ def update_db_v_31(**kwargs): if kwargs.get('silent') != 1: print('Updating... go to version 3.2') return True - cur.close() + 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: + try: cur.execute(sql) con.commit() except sqltool.Error as e: @@ -229,29 +229,29 @@ def update_db_v_3_4_5_2(**kwargs): return False else: return True - cur.close() + cur.close() con.close() - - + + def update_db_v_3_4_5_22(**kwargs): con, cur = get_cur() if mysql_enable == '0': sql = """insert into version ('version') values ('3.4.5.2'); """ else: sql = """INSERT INTO version VALUES ('3.4.5.2'); """ - try: + try: cur.execute(sql) con.commit() except sqltool.Error as e: print('Cannot insert version %s' % e) - cur.close() + cur.close() con.close() - + def update_db_v_3_4_7(**kwargs): con, cur = get_cur() sql = """CREATE TABLE IF NOT EXISTS `options` ( `id` INTEGER NOT NULL, `options` VARCHAR ( 64 ), `groups` VARCHAR ( 120 ), PRIMARY KEY(`id`)); """ - try: + try: cur.execute(sql) con.commit() except sqltool.Error as e: @@ -263,14 +263,14 @@ def update_db_v_3_4_7(**kwargs): return False else: return True - cur.close() + cur.close() con.close() - - + + def update_db_v_3_5_3(**kwargs): con, cur = get_cur() sql = """CREATE TABLE IF NOT EXISTS `saved_servers` ( `id` INTEGER NOT NULL, `server` VARCHAR ( 64 ), `description` VARCHAR ( 120 ), `groups` VARCHAR ( 120 ), PRIMARY KEY(`id`)); """ - try: + try: cur.execute(sql) con.commit() except sqltool.Error as e: @@ -282,16 +282,16 @@ def update_db_v_3_5_3(**kwargs): return False else: return True - cur.close() - con.close() - - + cur.close() + con.close() + + def update_db_v_3_8_1(**kwargs): con, cur = get_cur() sql = list() sql.append("INSERT INTO settings (param, value, section, `desc`) values('ldap_class_search', 'user', 'ldap', 'Class to search user');") sql.append("INSERT INTO settings (param, value, section, `desc`) values('ldap_user_attribute', 'sAMAccountName', 'ldap', 'User attribute for search');") - + for i in sql: try: cur.execute(i) @@ -304,12 +304,12 @@ def update_db_v_3_8_1(**kwargs): cur.close() con.close() - - + + def update_db_v_3_12(**kwargs): con, cur = get_cur() sql = """CREATE TABLE IF NOT EXISTS `backups` ( `id` INTEGER NOT NULL, `server` VARCHAR ( 64 ), `rhost` VARCHAR ( 120 ), `rpath` VARCHAR ( 120 ), `type` VARCHAR ( 120 ), `time` VARCHAR ( 120 ), cred INTEGER, `description` VARCHAR ( 120 ), PRIMARY KEY(`id`)); """ - try: + try: cur.execute(sql) con.commit() except sqltool.Error as e: @@ -321,14 +321,14 @@ def update_db_v_3_12(**kwargs): return False else: return True - cur.close() - con.close() - - + cur.close() + con.close() + + def update_db_v_3_12_1(**kwargs): con, cur = get_cur() sql = """INSERT INTO settings (param, value, section, `desc`) values('ssl_local_path', 'certs', 'main', 'Path to dir for local save SSL certs. This is a relative path, begins with $HOME_HAPROXY-WI/app/'); """ - try: + try: cur.execute(sql) con.commit() except sqltool.Error as e: @@ -340,16 +340,16 @@ def update_db_v_3_12_1(**kwargs): return False else: return True - cur.close() + cur.close() 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: + try: cur.execute(sql) con.commit() except sqltool.Error as e: @@ -363,8 +363,8 @@ def update_db_v_3_13(**kwargs): cur.close() con.close() - - + + def update_db_v_4(**kwargs): con, cur = get_cur() sql = list() @@ -389,14 +389,14 @@ def update_db_v_4(**kwargs): cur.close() con.close() - - + + def update_db_v_41(**kwargs): con, cur = get_cur() sql = """ ALTER TABLE `servers` ADD COLUMN nginx INTEGER NOT NULL DEFAULT 0; """ - try: + try: cur.execute(sql) con.commit() except sqltool.Error as e: @@ -410,14 +410,14 @@ def update_db_v_41(**kwargs): cur.close() con.close() - + def update_db_v_42(**kwargs): con, cur = get_cur() sql = """ ALTER TABLE `servers` ADD COLUMN haproxy INTEGER NOT NULL DEFAULT 0; """ - try: + try: cur.execute(sql) con.commit() except sqltool.Error as e: @@ -432,13 +432,13 @@ def update_db_v_42(**kwargs): cur.close() con.close() - + def update_db_v_4_3(**kwargs): con, cur = get_cur() sql = """ CREATE TABLE IF NOT EXISTS user_groups(user_id INTEGER NOT NULL, user_group_id INTEGER NOT NULL, UNIQUE(user_id,user_group_id)); """ - try: + try: cur.execute(sql) con.commit() except sqltool.Error as e: @@ -448,10 +448,10 @@ def update_db_v_4_3(**kwargs): else: print("An error occurred:", e) - cur.close() + cur.close() con.close() - - + + def update_db_v_4_3_0(**kwargs): con, cur = get_cur() if mysql_enable == '1': @@ -462,7 +462,7 @@ def update_db_v_4_3_0(**kwargs): sql = """ insert OR IGNORE into user_groups(user_id, user_group_id) select id, groups from user; """ - try: + try: cur.execute(sql) con.commit() except sqltool.Error as e: @@ -472,16 +472,16 @@ def update_db_v_4_3_0(**kwargs): else: print("An error occurred:", e) - cur.close() + cur.close() con.close() - - + + def update_db_v_4_3_1(**kwargs): con, cur = get_cur() sql = """ ALTER TABLE `servers` ADD COLUMN pos INTEGER NOT NULL DEFAULT 0; """ - try: + try: cur.execute(sql) con.commit() except sqltool.Error as e: @@ -495,14 +495,14 @@ def update_db_v_4_3_1(**kwargs): cur.close() con.close() - - + + def update_db_v_4_3_2(**kwargs): con, cur = get_cur() sql = """ INSERT INTO settings (param, value, section, `desc`) values('ldap_type', '0', 'ldap', 'If 0 then will be used LDAP, if 1 then will be used LDAPS '); """ - try: + try: cur.execute(sql) con.commit() except sqltool.Error as e: @@ -516,8 +516,8 @@ def update_db_v_4_3_2(**kwargs): cur.close() con.close() - - + + def update_db_v_4_4(**kwargs): con, cur = get_cur() sql = """ @@ -539,9 +539,9 @@ def update_db_v_4_4(**kwargs): `telegram_channel_id` INTEGER, `user_group` INTEGER, UNIQUE(ip, port, http, body), - PRIMARY KEY(`id`) + PRIMARY KEY(`id`) );""" - try: + try: cur.execute(sql) con.commit() except sqltool.Error as e: @@ -551,7 +551,7 @@ def update_db_v_4_4(**kwargs): else: print("An error occurred:", e) - cur.close() + cur.close() con.close() @@ -1046,19 +1046,38 @@ def update_db_v_4_5_8_2(**kwargs): con.close() +def update_db_v_4_5_9(**kwargs): + con, cur = get_cur() + sql = list() + sql.append("INSERT INTO settings (param, value, section, `desc`) values('smon_check_interval', '1', 'monitoring', 'SMON check interval, in minutes')") + sql.append("INSERT INTO settings (param, value, section, `desc`) values('checker_check_interval', '1', 'monitoring', 'Checker check interval, in minutes')") + for i in sql: + try: + cur.execute(i) + con.commit() + except sqltool.Error as e: + pass + else: + if kwargs.get('silent') != 1: + print('Updating... DB has been updated to version 4.5.9') + cur.close() + con.close() + + + def update_ver(**kwargs): con, cur = get_cur() sql = """update version set version = '4.5.8.0'; """ - try: + try: cur.execute(sql) con.commit() except sqltool.Error as e: print('Cannot update version') - cur.close() + cur.close() con.close() - - -def update_all(): + + +def update_all(): update_db_v_31() update_db_v_3_4_5_2() if funct.check_ver() is None: @@ -1087,9 +1106,10 @@ def update_all(): update_db_v_4_5_8() update_db_v_4_5_8_1() update_db_v_4_5_8_2() + update_db_v_4_5_9() update_ver() - - + + def update_all_silent(): update_db_v_31(silent=1) update_db_v_3_4_5_2(silent=1) @@ -1119,9 +1139,10 @@ def update_all_silent(): update_db_v_4_5_8(silent=1) update_db_v_4_5_8_1(silent=1) update_db_v_4_5_8_2(silent=1) + update_db_v_4_5_9(silent=1) update_ver() - - + + if __name__ == "__main__": create_table() update_all() diff --git a/app/templates/base.html b/app/templates/base.html index f8272086..5e166219 100644 --- a/app/templates/base.html +++ b/app/templates/base.html @@ -244,6 +244,18 @@ Cabinet +
Disable alerting for this tab | ++ |
Disable alerting for all tabs | ++ |