mirror of https://github.com/Aidaho12/haproxy-wi
parent
3c773dd953
commit
0173487eea
53
app/funct.py
53
app/funct.py
|
@ -333,7 +333,7 @@ def get_user_id(**kwargs):
|
||||||
return user_id
|
return user_id
|
||||||
|
|
||||||
|
|
||||||
def is_admin(**kwargs):
|
def is_admin(level=1):
|
||||||
import sql
|
import sql
|
||||||
cookie = http.cookies.SimpleCookie(os.environ.get("HTTP_COOKIE"))
|
cookie = http.cookies.SimpleCookie(os.environ.get("HTTP_COOKIE"))
|
||||||
user_id = cookie.get('uuid')
|
user_id = cookie.get('uuid')
|
||||||
|
@ -342,10 +342,6 @@ def is_admin(**kwargs):
|
||||||
except Exception:
|
except Exception:
|
||||||
role = 4
|
role = 4
|
||||||
pass
|
pass
|
||||||
level = kwargs.get("level")
|
|
||||||
|
|
||||||
if level is None:
|
|
||||||
level = 1
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
return True if role <= level else False
|
return True if role <= level else False
|
||||||
|
@ -353,18 +349,13 @@ def is_admin(**kwargs):
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
|
||||||
def page_for_admin(**kwargs):
|
def page_for_admin(given_level=1) -> None:
|
||||||
if kwargs.get("level"):
|
if not is_admin(level=given_level):
|
||||||
give_level = kwargs.get("level")
|
|
||||||
else:
|
|
||||||
give_level = 1
|
|
||||||
|
|
||||||
if not is_admin(level=give_level):
|
|
||||||
print('<meta http-equiv="refresh" content="0; url=/">')
|
print('<meta http-equiv="refresh" content="0; url=/">')
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
def return_ssh_keys_path(server_ip, **kwargs):
|
def return_ssh_keys_path(server_ip: str, **kwargs):
|
||||||
import sql
|
import sql
|
||||||
lib_path = get_config_var('main', 'lib_path')
|
lib_path = get_config_var('main', 'lib_path')
|
||||||
ssh_enable = ''
|
ssh_enable = ''
|
||||||
|
@ -373,17 +364,15 @@ def return_ssh_keys_path(server_ip, **kwargs):
|
||||||
ssh_key_name = ''
|
ssh_key_name = ''
|
||||||
|
|
||||||
if kwargs.get('id'):
|
if kwargs.get('id'):
|
||||||
for sshs in sql.select_ssh(id=kwargs.get('id')):
|
sshs = 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
|
|
||||||
else:
|
else:
|
||||||
for sshs in sql.select_ssh(serv=server_ip):
|
sshs = sql.select_ssh(serv=server_ip)
|
||||||
ssh_enable = sshs.enable
|
|
||||||
ssh_user_name = sshs.username
|
for ssh in sshs:
|
||||||
ssh_user_password = sshs.password
|
ssh_enable = ssh.enable
|
||||||
ssh_key_name = lib_path + '/keys/%s.pem' % sshs.name
|
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
|
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'
|
remote_dir = service + '_dir'
|
||||||
config_dir = sql.get_setting(remote_dir)
|
config_dir = sql.get_setting(remote_dir)
|
||||||
config_dir = return_nice_path(config_dir)
|
config_dir = return_nice_path(config_dir)
|
||||||
if service == 'nginx':
|
section_name = 'server_name'
|
||||||
section_name = 'server_name'
|
|
||||||
commands = [
|
|
||||||
'sudo grep {} {}* -R |grep -v \'${}\|#\'|awk \'{{print $1, $3}}\''.format(
|
|
||||||
section_name, config_dir, section_name
|
|
||||||
)]
|
|
||||||
|
|
||||||
elif service == 'apache':
|
if service == 'apache':
|
||||||
section_name = 'ServerName'
|
section_name = 'ServerName'
|
||||||
commands = [
|
|
||||||
'sudo grep {} {}*/*.conf -R |grep -v \'${}\|#\'|awk \'{{print $1, $3}}\''.format(
|
commands = [
|
||||||
section_name, config_dir, section_name
|
"sudo grep {} {}*/*.conf -R |grep -v '${{}}\|#'|awk '{{print $1, $3}}'".format(
|
||||||
)]
|
section_name, config_dir
|
||||||
|
)]
|
||||||
|
|
||||||
backends = ssh_command(server_ip, commands)
|
backends = ssh_command(server_ip, commands)
|
||||||
|
|
||||||
|
|
84
app/sql.py
84
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)
|
out_error(e)
|
||||||
else:
|
else:
|
||||||
return last_id
|
return last_id
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def delete_waf_server(server_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():
|
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:
|
try:
|
||||||
query_res = query.execute()
|
query_res = query.execute()
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
|
@ -1714,7 +1714,10 @@ def select_nginx_servers_metrics_for_master():
|
||||||
|
|
||||||
|
|
||||||
def select_apache_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:
|
try:
|
||||||
query_res = query.execute()
|
query_res = query.execute()
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
|
@ -2171,10 +2174,17 @@ def select_all_alerts(**kwargs):
|
||||||
def select_nginx_alert(**kwargs):
|
def select_nginx_alert(**kwargs):
|
||||||
if kwargs.get("group") is not None:
|
if kwargs.get("group") is not None:
|
||||||
query = Server.select(Server.ip).where(
|
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:
|
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:
|
try:
|
||||||
query_res = query.execute()
|
query_res = query.execute()
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
|
@ -2186,10 +2196,13 @@ def select_nginx_alert(**kwargs):
|
||||||
def select_apache_alert(**kwargs):
|
def select_apache_alert(**kwargs):
|
||||||
if kwargs.get("group") is not None:
|
if kwargs.get("group") is not None:
|
||||||
query = Server.select(Server.ip).where(
|
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:
|
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:
|
try:
|
||||||
query_res = query.execute()
|
query_res = query.execute()
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
|
@ -2201,11 +2214,17 @@ def select_apache_alert(**kwargs):
|
||||||
def select_keepalived_alert(**kwargs):
|
def select_keepalived_alert(**kwargs):
|
||||||
if kwargs.get("group") is not None:
|
if kwargs.get("group") is not None:
|
||||||
query = Server.select(Server.ip).where(
|
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:
|
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:
|
try:
|
||||||
query_res = query.execute()
|
query_res = query.execute()
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
|
@ -3524,7 +3543,7 @@ def select_services():
|
||||||
return query_res
|
return query_res
|
||||||
|
|
||||||
|
|
||||||
def select_service_name_by_id(service_id):
|
def select_service_name_by_id(service_id: int) -> str:
|
||||||
try:
|
try:
|
||||||
service = Services.get(Services.service_id == service_id).service
|
service = Services.get(Services.service_id == service_id).service
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
|
@ -3533,6 +3552,15 @@ def select_service_name_by_id(service_id):
|
||||||
return service
|
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):
|
def insert_user_name(user_name):
|
||||||
try:
|
try:
|
||||||
UserName.insert(UserName=user_name).execute()
|
UserName.insert(UserName=user_name).execute()
|
||||||
|
@ -3767,6 +3795,24 @@ def select_service(slug: str) -> str:
|
||||||
return query_res
|
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:
|
def select_checker_service_status(server_id: int, service_id: int, service_check: str) -> int:
|
||||||
try:
|
try:
|
||||||
service_check_status = ServiceStatus.get(
|
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
|
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(
|
def inset_or_update_service_status(
|
||||||
server_id: int, service_id: int, service_check: str, status: int
|
server_id: int, service_id: int, service_check: str, status: int
|
||||||
) -> None:
|
) -> None:
|
||||||
|
query = ServiceStatus.insert(
|
||||||
|
server_id=server_id, service_id=service_id, service_check=service_check, status=status
|
||||||
|
).on_conflict('replace')
|
||||||
try:
|
try:
|
||||||
ServiceStatus.insert(
|
query.execute()
|
||||||
server_id=server_id, service_id=service_id, service_check=service_check, status=status
|
|
||||||
).on_conflict('replace').execute()
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
out_error(e)
|
out_error(e)
|
||||||
|
|
Loading…
Reference in New Issue