From 77ae8d1c40cc710b7833029ad9d23f410a04676f Mon Sep 17 00:00:00 2001 From: Aidaho12 Date: Mon, 16 Jul 2018 10:52:43 +0600 Subject: [PATCH] v2.6.2.2 Improved compare --- app/delver.py | 17 +------ app/funct.py | 16 ++++++- app/ovw.py | 48 +++++--------------- app/sql.py | 10 ++-- app/templates/ajax/show_compare_configs.html | 32 +++++++++++++ app/templates/base.html | 2 +- 6 files changed, 66 insertions(+), 59 deletions(-) create mode 100644 app/templates/ajax/show_compare_configs.html diff --git a/app/delver.py b/app/delver.py index aba35e69..3541792c 100644 --- a/app/delver.py +++ b/app/delver.py @@ -17,6 +17,7 @@ serv = form.getvalue('serv') stderr = "" aftersave = "" file = set() +hap_configs_dir = funct.get_config_var('configs', 'haproxy_save_configs_dir') try: cookie = http.cookies.SimpleCookie(os.environ.get("HTTP_COOKIE")) @@ -30,20 +31,6 @@ except: form = cgi.FieldStorage() serv = form.getvalue('serv') Select = form.getvalue('del') -hap_configs_dir = funct.get_config_var('configs', 'haproxy_save_configs_dir') - -def get_files(): - import glob - file = set() - return_files = set() - for files in glob.glob(os.path.join(hap_configs_dir,'*.cfg')): - file.add(files.split('/')[6]) - files = sorted(file, reverse=True) - for file in files: - ip = file.split("-") - if serv == ip[0]: - return_files.add(file) - return sorted(return_files, reverse=True) if serv is not None and form.getvalue('open') is not None: if Select is not None: @@ -65,7 +52,7 @@ output_from_parsed_template = template.render(h2 = 1, title = "Delete old versio select_id = "serv", serv = serv, aftersave = aftersave, - return_files = get_files(), + return_files = funct.get_files(), selects = servers, stderr = stderr, open = form.getvalue('open'), diff --git a/app/funct.py b/app/funct.py index a76ead4d..7819fc3f 100644 --- a/app/funct.py +++ b/app/funct.py @@ -481,4 +481,18 @@ def show_backends(serv): if line != "": back = json.dumps(line).split("\"") print(back[1]+"
") - \ No newline at end of file + +def get_files(): + import glob + file = set() + return_files = set() + hap_configs_dir = get_config_var('configs', 'haproxy_save_configs_dir') + + for files in glob.glob(os.path.join(hap_configs_dir,'*.cfg')): + file.add(files.split('/')[6]) + files = sorted(file, reverse=True) + for file in files: + ip = file.split("-") + if serv == ip[0]: + return_files.add(file) + return sorted(return_files, reverse=True) \ No newline at end of file diff --git a/app/ovw.py b/app/ovw.py index ebf45226..383a8897 100644 --- a/app/ovw.py +++ b/app/ovw.py @@ -158,48 +158,24 @@ def get_map(serv): print(stderr) print('map' % date) - + def show_compare_configs(serv): import glob + from jinja2 import Environment, FileSystemLoader + env = Environment(loader=FileSystemLoader('templates/ajax')) + template = env.get_template('/show_compare_configs.html') left = form.getvalue('left') right = form.getvalue('right') haproxy_configs_server = funct.get_config_var('configs', 'haproxy_configs_server') - print('
') - print('

Choose leftChoose right

') - print('

') - - print('') - print('' % serv) - print('') - print('Show

') + output_from_parsed_template = template.render(serv = serv, + right = right, + left = left, + return_files = funct.get_files()) + + print(output_from_parsed_template) def comapre_show(): import subprocess @@ -208,9 +184,7 @@ def comapre_show(): haproxy_configs_server = funct.get_config_var('configs', 'haproxy_configs_server') cmd='diff -ub %s%s %s%s' % (hap_configs_dir, left, hap_configs_dir, right) - p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True, universal_newlines=True) - stdout, stderr = p.communicate() - output = stdout.splitlines() + output, stderr = funct.subprocess_execute(cmd) funct.compare(output) print(stderr) \ No newline at end of file diff --git a/app/sql.py b/app/sql.py index 61dfd33f..4f4df159 100644 --- a/app/sql.py +++ b/app/sql.py @@ -415,9 +415,9 @@ def get_dick_permit(**kwargs): else: type_ip = "and type_ip = 0" if kwargs.get('disable') == 0: - disable = kwargs.get('disable') + disable = 'or enable = 0' else: - disable = 1 + disable = '' try: cur.execute(sql) @@ -426,9 +426,9 @@ def get_dick_permit(**kwargs): else: for group in cur: if group[5] == '1': - sql = """ select * from servers where enable = %s %s """ % (disable, type_ip) + sql = """ select * from servers where enable = 1 %s %s """ % (disable, type_ip) else: - sql = """ select * from servers where groups like '%{group}%' and enable = {disable} {type_ip} """.format(group=group[5], disable=disable, type_ip=type_ip) + sql = """ select * from servers where groups like '%{group}%' and (enable = 1 {disable}) {type_ip} """.format(group=group[5], disable=disable, type_ip=type_ip) try: cur.execute(sql) except sqltool.Error as e: @@ -750,4 +750,4 @@ if form.getvalue('sshdel') is not None: except: pass if delete_ssh(form.getvalue('sshdel')): - print("Ok") \ No newline at end of file + print("Ok") diff --git a/app/templates/ajax/show_compare_configs.html b/app/templates/ajax/show_compare_configs.html new file mode 100644 index 00000000..14b7da1d --- /dev/null +++ b/app/templates/ajax/show_compare_configs.html @@ -0,0 +1,32 @@ +
+
+

+ Choose left + Choose right +

+

+ + + + + + + Show +

+
+
\ No newline at end of file diff --git a/app/templates/base.html b/app/templates/base.html index c56f8c9a..0bd6f59b 100644 --- a/app/templates/base.html +++ b/app/templates/base.html @@ -97,7 +97,7 @@