Changelog https://roxy-wi.org/changelog#6_1_5
pull/343/head
Pavel Loginov 2022-09-11 10:40:25 +03:00
parent 3c773dd953
commit 0173487eea
2 changed files with 89 additions and 48 deletions

View File

@ -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('<meta http-equiv="refresh" content="0; url=/">')
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)

View File

@ -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)