diff --git a/api/api_funct.py b/api/api_funct.py index f5dfc01f..ce541e77 100644 --- a/api/api_funct.py +++ b/api/api_funct.py @@ -115,8 +115,11 @@ def check_permit_to_server(server_id, service='haproxy'): token = request.headers.get('token') login, group_id, role_id = sql.get_username_groupid_from_api_token(token) - for s in servers: - server = roxywi_common.get_dick_permit(username=login, group_id=group_id, ip=s[2], token=token, service=service) + try: + for s in servers: + server = roxywi_common.get_dick_permit(username=login, group_id=group_id, ip=s[2], token=token, service=service) + except Exception as e: + raise Exception(f'error: {e}') return server @@ -299,31 +302,43 @@ def show_backends(server_id): def get_config(server_id, **kwargs): service = kwargs.get('service') - if service != 'apache' and service != 'nginx' and service != 'haproxy' and service != 'keepalived': + if service not in ('apache', 'nginx', 'haproxy', 'keepalived'): return dict(status='wrong service') - data = {} try: - servers = check_permit_to_server(server_id) - - for s in servers: - cfg = '/tmp/' + s[2] + '.cfg' - config_mod.get_config(s[2], cfg, service=service, config_file_name=kwargs.get('config_path')) - os.system("sed -i 's/\\n/\n/g' " + cfg) - try: - conf = open(cfg, "r") - config_read = conf.read() - conf.close - - except IOError: - conf = '
Cannot read import config file' - - data = {server_id: config_read} - + servers = check_permit_to_server(server_id, service=service) except Exception as e: - data = {server_id: {"error": "Cannot find the server " + str(e)}} + data = {server_id: {"error": f"Cannot find the server {e}"}} return dict(error=data) + for s in servers: + server_ip = s[2] + + try: + cfg = f'/tmp/{server_ip}.cfg' + except Exception as e: + data = {server_id: {"error": f"Cannot find the server with the service {service}: {e}"}} + return dict(error=data) + try: + config_mod.get_config(server_ip, cfg, service=service, config_file_name=kwargs.get('config_path')) + except Exception as e: + data = {server_id: {"error": f"Cannot get config {e}"}} + return dict(error=data) + try: + os.system("sed -i 's/\\n/\n/g' " + cfg) + except Exception as e: + data = {server_id: {"error": f"Cannot edit config {e}"}} + return dict(error=data) + try: + conf = open(cfg, "r") + config_read = conf.read() + conf.close() + except IOError as e: + data = {server_id: {"error": f"Cannot read config {e}"}} + return dict(error=data) + + data = {server_id: config_read} + return dict(config=data) diff --git a/app/modules/db/sql.py b/app/modules/db/sql.py index fb29baa0..617b6701 100755 --- a/app/modules/db/sql.py +++ b/app/modules/db/sql.py @@ -924,8 +924,8 @@ def get_dick_permit(**kwargs): """.format(group=grp, disable=disable, type_ip=type_ip, ip=ip, haproxy=haproxy, nginx=nginx, keepalived=keepalived, apache=apache) except Exception as e: - print(str(e)) - print('') + raise Exception(f'error: {e}') + try: cursor.execute(sql) except Exception as e: diff --git a/app/modules/roxywi/common.py b/app/modules/roxywi/common.py index bbf5a2c1..07827130 100644 --- a/app/modules/roxywi/common.py +++ b/app/modules/roxywi/common.py @@ -220,7 +220,12 @@ def get_dick_permit(**kwargs): token = '' if check_user_group(token=token): - return sql.get_dick_permit(**kwargs) + try: + servers = sql.get_dick_permit(**kwargs) + except Exception as e: + raise Exception(e) + else: + return servers else: print('Atata!') diff --git a/app/options.py b/app/options.py index 0f73e59b..8e6d0f0b 100644 --- a/app/options.py +++ b/app/options.py @@ -2056,9 +2056,7 @@ if form.getvalue('loadopenvpn'): openvpn_sess, stderr = server_mod.subprocess_execute(cmd) openvpn = stdout[0] - template = template.render(openvpn=openvpn, - openvpn_sess=openvpn_sess, - openvpn_configs=openvpn_configs) + template = template.render(openvpn=openvpn, openvpn_sess=openvpn_sess, openvpn_configs=openvpn_configs) print(template) if form.getvalue('check_receiver'):