diff --git a/app/funct.py b/app/funct.py index 628ae19c..0ce3aab6 100644 --- a/app/funct.py +++ b/app/funct.py @@ -333,7 +333,7 @@ def get_user_id(**kwargs): return user_id -def is_admin(**kwargs): +def is_admin(level=1): import sql cookie = http.cookies.SimpleCookie(os.environ.get("HTTP_COOKIE")) user_id = cookie.get('uuid') @@ -342,10 +342,6 @@ def is_admin(**kwargs): except Exception: role = 4 pass - level = kwargs.get("level") - - if level is None: - level = 1 try: return True if role <= level else False @@ -353,18 +349,13 @@ def is_admin(**kwargs): return False -def page_for_admin(**kwargs): - if kwargs.get("level"): - give_level = kwargs.get("level") - else: - give_level = 1 - - if not is_admin(level=give_level): +def page_for_admin(given_level=1) -> None: + if not is_admin(level=given_level): print('') return -def return_ssh_keys_path(server_ip, **kwargs): +def return_ssh_keys_path(server_ip: str, **kwargs): import sql lib_path = get_config_var('main', 'lib_path') ssh_enable = '' @@ -373,17 +364,15 @@ def return_ssh_keys_path(server_ip, **kwargs): ssh_key_name = '' if kwargs.get('id'): - for sshs in sql.select_ssh(id=kwargs.get('id')): - ssh_enable = sshs.enable - ssh_user_name = sshs.username - ssh_user_password = sshs.password - ssh_key_name = lib_path + '/keys/%s.pem' % sshs.name + sshs = sql.select_ssh(id=kwargs.get('id')) else: - for sshs in sql.select_ssh(serv=server_ip): - ssh_enable = sshs.enable - ssh_user_name = sshs.username - ssh_user_password = sshs.password - ssh_key_name = lib_path + '/keys/%s.pem' % sshs.name + sshs = sql.select_ssh(serv=server_ip) + + for ssh in sshs: + ssh_enable = ssh.enable + ssh_user_name = ssh.username + ssh_user_password = ssh.password + ssh_key_name = f'{lib_path}/keys/{ssh.name}.pem' return ssh_enable, ssh_user_name, ssh_user_password, ssh_key_name @@ -514,19 +503,15 @@ def get_remote_sections(server_ip: str, service: str) -> str: remote_dir = service + '_dir' config_dir = sql.get_setting(remote_dir) config_dir = return_nice_path(config_dir) - if service == 'nginx': - section_name = 'server_name' - commands = [ - 'sudo grep {} {}* -R |grep -v \'${}\|#\'|awk \'{{print $1, $3}}\''.format( - section_name, config_dir, section_name - )] + section_name = 'server_name' - elif service == 'apache': + if service == 'apache': section_name = 'ServerName' - commands = [ - 'sudo grep {} {}*/*.conf -R |grep -v \'${}\|#\'|awk \'{{print $1, $3}}\''.format( - section_name, config_dir, section_name - )] + + commands = [ + "sudo grep {} {}*/*.conf -R |grep -v '${{}}\|#'|awk '{{print $1, $3}}'".format( + section_name, config_dir + )] backends = ssh_command(server_ip, commands) diff --git a/app/sql.py b/app/sql.py index 0e98da5a..952a1398 100755 --- a/app/sql.py +++ b/app/sql.py @@ -1554,7 +1554,7 @@ def insert_new_waf_rule(rule_name: str, rule_file: str, rule_description: str, s out_error(e) else: return last_id - + def delete_waf_server(server_id): @@ -1704,7 +1704,7 @@ def select_haproxy_servers_metrics_for_master(): def select_nginx_servers_metrics_for_master(): - query = Server.select(Server.ip).where(Server.nginx_metrics == 1) + query = Server.select(Server.ip).where((Server.nginx_metrics == 1) & (Server.nginx == 1)) try: query_res = query.execute() except Exception as e: @@ -1714,7 +1714,10 @@ def select_nginx_servers_metrics_for_master(): def select_apache_servers_metrics_for_master(): - query = Server.select(Server.ip).where(Server.apache_metrics == 1) + query = Server.select(Server.ip).where( + (Server.apache_metrics == 1) + & (Server.apache == 1) + ) try: query_res = query.execute() except Exception as e: @@ -2171,10 +2174,17 @@ def select_all_alerts(**kwargs): def select_nginx_alert(**kwargs): if kwargs.get("group") is not None: query = Server.select(Server.ip).where( - (Server.nginx_alert == 1) & (Server.enable == 1) & (Server.groups == kwargs.get('group')) + (Server.nginx_alert == 1) + & (Server.enable == 1) + & (Server.groups == kwargs.get('group')) + & (Server.nginx == 1) ) else: - query = Server.select(Server.ip).where((Server.nginx_alert == 1) & (Server.enable == 1)) + query = Server.select(Server.ip).where( + (Server.nginx_alert == 1) + & (Server.enable == 1) + & (Server.nginx == 1) + ) try: query_res = query.execute() except Exception as e: @@ -2186,10 +2196,13 @@ def select_nginx_alert(**kwargs): def select_apache_alert(**kwargs): if kwargs.get("group") is not None: query = Server.select(Server.ip).where( - (Server.apache_alert == 1) & (Server.enable == 1) & (Server.groups == kwargs.get('group')) + (Server.apache_alert == 1) + & (Server.enable == 1) + & (Server.groups == kwargs.get('group')) + & (Server.apache == 1) ) else: - query = Server.select(Server.ip).where((Server.apache_alert == 1) & (Server.enable == 1)) + query = Server.select(Server.ip).where((Server.apache_alert == 1) & (Server.enable == 1) & (Server.apache == 1)) try: query_res = query.execute() except Exception as e: @@ -2201,11 +2214,17 @@ def select_apache_alert(**kwargs): def select_keepalived_alert(**kwargs): if kwargs.get("group") is not None: query = Server.select(Server.ip).where( - (Server.keepalived_alert == 1) & (Server.enable == 1) & (Server.groups == kwargs.get('group')) + (Server.keepalived_alert == 1) + & (Server.enable == 1) + & (Server.groups == kwargs.get('group')) + & (Server.keepalived == 1) ) else: - query = Server.select(Server.ip).where((Server.keepalived_alert == 1) & (Server.enable == 1)) - + query = Server.select(Server.ip).where( + (Server.keepalived_alert == 1) + & (Server.enable == 1) + & (Server.keepalived == 1) + ) try: query_res = query.execute() except Exception as e: @@ -3524,7 +3543,7 @@ def select_services(): return query_res -def select_service_name_by_id(service_id): +def select_service_name_by_id(service_id: int) -> str: try: service = Services.get(Services.service_id == service_id).service except Exception as e: @@ -3533,6 +3552,15 @@ def select_service_name_by_id(service_id): return service +def select_service_id_by_slug(service_slug: str) -> int: + try: + service = Services.get(Services.slug == service_slug).service_id + except Exception as e: + return out_error(e) + else: + return service + + def insert_user_name(user_name): try: UserName.insert(UserName=user_name).execute() @@ -3767,6 +3795,24 @@ def select_service(slug: str) -> str: return query_res +def select_count_services(service: str) -> int: + try: + if service == 'haproxy': + query_res = Server.select().where(Server.haproxy == 1).count() + elif service == 'nginx': + query_res = Server.select().where(Server.nginx == 1).count() + elif service == 'keepalived': + query_res = Server.select().where(Server.keepalived == 1).count() + elif service == 'apache': + query_res = Server.select().where(Server.apache == 1).count() + else: + query_res = Server.select().where().count() + except Exception as e: + out_error(e) + else: + return query_res + + def select_checker_service_status(server_id: int, service_id: int, service_check: str) -> int: try: service_check_status = ServiceStatus.get( @@ -3780,12 +3826,22 @@ def select_checker_service_status(server_id: int, service_id: int, service_check return service_check_status +def select_checker_services_status() -> tuple: + try: + services_check_status = ServiceStatus.select().execute() + except Exception as e: + return out_error(e) + else: + return services_check_status + + def inset_or_update_service_status( server_id: int, service_id: int, service_check: str, status: int ) -> None: + query = ServiceStatus.insert( + server_id=server_id, service_id=service_id, service_check=service_check, status=status + ).on_conflict('replace') try: - ServiceStatus.insert( - server_id=server_id, service_id=service_id, service_check=service_check, status=status - ).on_conflict('replace').execute() + query.execute() except Exception as e: out_error(e)