mirror of https://github.com/Aidaho12/haproxy-wi
parent
3cc2ed025a
commit
da04261673
118
app/funct.py
118
app/funct.py
|
@ -7,8 +7,11 @@ import http.cookies
|
|||
|
||||
import distro
|
||||
|
||||
import sql
|
||||
import modules.roxy_wi_tools as roxy_wi_tools
|
||||
|
||||
time_zone = sql.get_setting('time_zone')
|
||||
get_date = roxy_wi_tools.GetDate(time_zone)
|
||||
get_config_var = roxy_wi_tools.GetConfigVar()
|
||||
|
||||
def is_ip_or_dns(server_from_request: str) -> str:
|
||||
|
@ -50,52 +53,7 @@ def checkAjaxInput(ajax_input: str):
|
|||
return quote(ajax_input.rstrip())
|
||||
|
||||
|
||||
def get_data(log_type, **kwargs):
|
||||
from datetime import datetime, timedelta
|
||||
from pytz import timezone
|
||||
import sql
|
||||
fmt = "%Y-%m-%d.%H:%M:%S"
|
||||
|
||||
if kwargs.get('timedelta'):
|
||||
try:
|
||||
now_utc = datetime.now(timezone(sql.get_setting('time_zone'))) + timedelta(days=kwargs.get('timedelta'))
|
||||
except Exception:
|
||||
now_utc = datetime.now(timezone('UTC')) + timedelta(days=kwargs.get('timedelta'))
|
||||
elif kwargs.get('timedelta_minus'):
|
||||
try:
|
||||
now_utc = datetime.now(timezone(sql.get_setting('time_zone'))) - timedelta(days=kwargs.get('timedelta_minus'))
|
||||
except Exception:
|
||||
now_utc = datetime.now(timezone('UTC')) - timedelta(days=kwargs.get('timedelta_minus'))
|
||||
elif kwargs.get('timedelta_minutes'):
|
||||
try:
|
||||
now_utc = datetime.now(timezone(sql.get_setting('time_zone'))) + timedelta(minutes=kwargs.get('timedelta_minutes'))
|
||||
except Exception:
|
||||
now_utc = datetime.now(timezone('UTC')) + timedelta(minutes=kwargs.get('timedelta_minutes'))
|
||||
elif kwargs.get('timedelta_minutes_minus'):
|
||||
try:
|
||||
now_utc = datetime.now(timezone(sql.get_setting('time_zone'))) - timedelta(minutes=kwargs.get('timedelta_minutes_minus'))
|
||||
except Exception:
|
||||
now_utc = datetime.now(timezone('UTC')) - timedelta(minutes=kwargs.get('timedelta_minutes_minus'))
|
||||
else:
|
||||
try:
|
||||
now_utc = datetime.now(timezone(sql.get_setting('time_zone')))
|
||||
except Exception:
|
||||
now_utc = datetime.now(timezone('UTC'))
|
||||
|
||||
if log_type == 'config':
|
||||
fmt = "%Y-%m-%d.%H:%M:%S"
|
||||
elif log_type == 'logs':
|
||||
fmt = '%Y%m%d'
|
||||
elif log_type == "date_in_log":
|
||||
fmt = "%b %d %H:%M:%S"
|
||||
elif log_type == 'regular':
|
||||
fmt = "%Y-%m-%d %H:%M:%S"
|
||||
|
||||
return now_utc.strftime(fmt)
|
||||
|
||||
|
||||
def get_user_group(**kwargs) -> str:
|
||||
import sql
|
||||
user_group = ''
|
||||
|
||||
try:
|
||||
|
@ -116,11 +74,9 @@ def get_user_group(**kwargs) -> str:
|
|||
|
||||
|
||||
def logging(server_ip: str, action: str, **kwargs) -> None:
|
||||
import sql
|
||||
|
||||
login = ''
|
||||
cur_date = get_data('logs')
|
||||
cur_date_in_log = get_data('date_in_log')
|
||||
cur_date = get_date.return_date('logs')
|
||||
cur_date_in_log = get_date.return_date('date_in_log')
|
||||
log_path = get_config_var.get_config_var('main', 'log_path')
|
||||
|
||||
if not os.path.exists(log_path):
|
||||
|
@ -185,7 +141,6 @@ def logging(server_ip: str, action: str, **kwargs) -> None:
|
|||
|
||||
|
||||
def keep_action_history(service: str, action: str, server_ip: str, login: str, user_ip: str):
|
||||
import sql
|
||||
try:
|
||||
server_id = sql.select_server_id_by_ip(server_ip=server_ip)
|
||||
if login != '':
|
||||
|
@ -203,7 +158,6 @@ def keep_action_history(service: str, action: str, server_ip: str, login: str, u
|
|||
def telegram_send_mess(mess, **kwargs):
|
||||
import telebot
|
||||
from telebot import apihelper
|
||||
import sql
|
||||
token_bot = ''
|
||||
channel_name = ''
|
||||
|
||||
|
@ -235,7 +189,6 @@ def telegram_send_mess(mess, **kwargs):
|
|||
|
||||
|
||||
def slack_send_mess(mess, **kwargs):
|
||||
import sql
|
||||
from slack_sdk import WebClient
|
||||
from slack_sdk.errors import SlackApiError
|
||||
slack_token = ''
|
||||
|
@ -268,8 +221,6 @@ def slack_send_mess(mess, **kwargs):
|
|||
|
||||
|
||||
def check_login(user_uuid, token, **kwargs):
|
||||
import sql
|
||||
|
||||
if user_uuid is None:
|
||||
print('<meta http-equiv="refresh" content="0; url=/app/login.py">')
|
||||
|
||||
|
@ -301,7 +252,6 @@ def check_login(user_uuid, token, **kwargs):
|
|||
|
||||
|
||||
def get_user_id(**kwargs):
|
||||
import sql
|
||||
if kwargs.get('login'):
|
||||
return sql.get_user_id_by_username(kwargs.get('login'))
|
||||
|
||||
|
@ -315,7 +265,6 @@ def get_user_id(**kwargs):
|
|||
|
||||
|
||||
def is_admin(level=1):
|
||||
import sql
|
||||
cookie = http.cookies.SimpleCookie(os.environ.get("HTTP_COOKIE"))
|
||||
user_id = cookie.get('uuid')
|
||||
try:
|
||||
|
@ -337,7 +286,6 @@ def page_for_admin(level=1) -> None:
|
|||
|
||||
|
||||
def return_ssh_keys_path(server_ip: str, **kwargs) -> dict:
|
||||
import sql
|
||||
lib_path = get_config_var.get_config_var('main', 'lib_path')
|
||||
ssh_settings = {}
|
||||
|
||||
|
@ -371,7 +319,6 @@ def ssh_connect(server_ip):
|
|||
|
||||
|
||||
def get_config(server_ip, cfg, **kwargs):
|
||||
import sql
|
||||
config_path = ''
|
||||
|
||||
if kwargs.get("keepalived") or kwargs.get("service") == 'keepalived':
|
||||
|
@ -397,12 +344,12 @@ def get_config(server_ip, cfg, **kwargs):
|
|||
|
||||
|
||||
def diff_config(oldcfg, cfg, **kwargs):
|
||||
import sql
|
||||
cookie = http.cookies.SimpleCookie(os.environ.get("HTTP_COOKIE"))
|
||||
log_path = get_config_var.get_config_var('main', 'log_path')
|
||||
user_group = get_user_group()
|
||||
diff = ""
|
||||
date = get_data('date_in_log')
|
||||
date = get_date.return_date('date_in_log')
|
||||
log_date = get_date.return_date('logs')
|
||||
cmd = "/bin/diff -ub %s %s" % (oldcfg, cfg)
|
||||
|
||||
try:
|
||||
|
@ -421,7 +368,7 @@ def diff_config(oldcfg, cfg, **kwargs):
|
|||
for line in output:
|
||||
diff += f"{date} user: {login}, group: {user_group} {line}\n"
|
||||
|
||||
log_file = f"{log_path}/config_edit-{get_data('logs')}"
|
||||
log_file = f"{log_path}/config_edit-{log_date}"
|
||||
try:
|
||||
with open(log_file, 'a') as log:
|
||||
log.write(diff)
|
||||
|
@ -431,7 +378,6 @@ def diff_config(oldcfg, cfg, **kwargs):
|
|||
|
||||
|
||||
def get_remote_sections(server_ip: str, service: str) -> str:
|
||||
import sql
|
||||
remote_dir = service + '_dir'
|
||||
config_dir = sql.get_setting(remote_dir)
|
||||
config_dir = return_nice_path(config_dir)
|
||||
|
@ -534,6 +480,7 @@ def get_userlists(config):
|
|||
|
||||
|
||||
def get_backends_from_config(server_ip, backends=''):
|
||||
config_date = get_date.return_date('config')
|
||||
configs_dir = get_config_var.get_config_var('configs', 'haproxy_save_configs_dir')
|
||||
format_cfg = 'cfg'
|
||||
|
||||
|
@ -542,7 +489,7 @@ def get_backends_from_config(server_ip, backends=''):
|
|||
except Exception as e:
|
||||
logging('Roxy-WI server', str(e), roxywi=1)
|
||||
try:
|
||||
cfg = configs_dir + server_ip + "-" + get_data('config') + '.' + format_cfg
|
||||
cfg = f'{configs_dir}{server_ip}-{config_date}.{format_cfg}'
|
||||
except Exception:
|
||||
logging('Roxy-WI server', ' Cannot generate cfg path', roxywi=1)
|
||||
return
|
||||
|
@ -562,7 +509,6 @@ def get_backends_from_config(server_ip, backends=''):
|
|||
|
||||
|
||||
def get_all_stick_table():
|
||||
import sql
|
||||
hap_sock_p = sql.get_setting('haproxy_sock_port')
|
||||
cmd = 'echo "show table"|nc %s %s |awk \'{print $3}\' | tr -d \'\n\' | tr -d \'[:space:]\'' % (serv, hap_sock_p)
|
||||
output, stderr = subprocess_execute(cmd)
|
||||
|
@ -570,7 +516,6 @@ def get_all_stick_table():
|
|||
|
||||
|
||||
def get_stick_table(table):
|
||||
import sql
|
||||
hap_sock_p = sql.get_setting('haproxy_sock_port')
|
||||
cmd = 'echo "show table %s"|nc %s %s |awk -F"#" \'{print $2}\' |head -1 | tr -d \'\n\'' % (table, serv, hap_sock_p)
|
||||
output, stderr = subprocess_execute(cmd)
|
||||
|
@ -606,7 +551,6 @@ def show_installation_output(error, output, service):
|
|||
|
||||
|
||||
def install_haproxy(server_ip, **kwargs):
|
||||
import sql
|
||||
script = "install_haproxy.sh"
|
||||
hap_sock_p = str(sql.get_setting('haproxy_sock_port'))
|
||||
stats_port = str(sql.get_setting('stats_port'))
|
||||
|
@ -658,7 +602,6 @@ def install_haproxy(server_ip, **kwargs):
|
|||
|
||||
|
||||
def waf_install(server_ip):
|
||||
import sql
|
||||
script = "waf.sh"
|
||||
proxy = sql.get_setting('proxy')
|
||||
haproxy_dir = sql.get_setting('haproxy_dir')
|
||||
|
@ -688,7 +631,6 @@ def waf_install(server_ip):
|
|||
|
||||
|
||||
def waf_nginx_install(server_ip):
|
||||
import sql
|
||||
script = "waf_nginx.sh"
|
||||
proxy = sql.get_setting('proxy')
|
||||
nginx_dir = sql.get_setting('nginx_dir')
|
||||
|
@ -716,7 +658,6 @@ def waf_nginx_install(server_ip):
|
|||
|
||||
|
||||
def install_nginx(server_ip, **kwargs):
|
||||
import sql
|
||||
script = "install_nginx.sh"
|
||||
stats_user = sql.get_setting('nginx_stats_user')
|
||||
stats_password = sql.get_setting('nginx_stats_password')
|
||||
|
@ -786,7 +727,6 @@ def update_roxy_wi(service):
|
|||
|
||||
|
||||
def check_haproxy_version(server_ip):
|
||||
import sql
|
||||
hap_sock_p = sql.get_setting('haproxy_sock_port')
|
||||
ver = ""
|
||||
cmd = f"echo 'show info' |nc {server_ip} {hap_sock_p} |grep Version |awk '{{print $2}}'"
|
||||
|
@ -813,13 +753,13 @@ def upload(server_ip, path, file, **kwargs):
|
|||
|
||||
|
||||
def upload_and_restart(server_ip: str, cfg: str, **kwargs):
|
||||
import sql
|
||||
error = ''
|
||||
service_name = ''
|
||||
container_name = ''
|
||||
reload_or_restart_command = ''
|
||||
file_format = 'conf'
|
||||
config_path = kwargs.get('config_file_name')
|
||||
config_date = get_date.return_date('config')
|
||||
server_id = sql.select_server_id_by_ip(server_ip=server_ip)
|
||||
|
||||
if kwargs.get("nginx"):
|
||||
|
@ -837,7 +777,7 @@ def upload_and_restart(server_ip: str, cfg: str, **kwargs):
|
|||
config_path = sql.get_setting('haproxy_config_path')
|
||||
file_format = 'cfg'
|
||||
|
||||
tmp_file = f"{sql.get_setting('tmp_config_path')}/{get_data('config')}.{file_format}"
|
||||
tmp_file = f"{sql.get_setting('tmp_config_path')}/{config_date}.{file_format}"
|
||||
is_dockerized = sql.select_service_setting(server_id, service, 'dockerized')
|
||||
|
||||
if is_dockerized == '1':
|
||||
|
@ -991,8 +931,6 @@ def upload_and_restart(server_ip: str, cfg: str, **kwargs):
|
|||
|
||||
|
||||
def master_slave_upload_and_restart(server_ip, cfg, just_save, **kwargs):
|
||||
import sql
|
||||
|
||||
slave_output = ''
|
||||
|
||||
try:
|
||||
|
@ -1072,7 +1010,6 @@ def open_port_firewalld(cfg, server_ip, **kwargs):
|
|||
|
||||
|
||||
def check_haproxy_config(server_ip):
|
||||
import sql
|
||||
server_id = sql.select_server_id_by_ip(server_ip=server_ip)
|
||||
is_dockerized = sql.select_service_setting(server_id, 'haproxy', 'dockerized')
|
||||
config_path = sql.get_setting('haproxy_config_path')
|
||||
|
@ -1093,7 +1030,6 @@ def check_haproxy_config(server_ip):
|
|||
|
||||
|
||||
def check_nginx_config(server_ip):
|
||||
import sql
|
||||
commands = [f"nginx -q -t -p {sql.get_setting('nginx_dir')}"]
|
||||
|
||||
with ssh_connect(server_ip) as ssh:
|
||||
|
@ -1146,7 +1082,6 @@ def show_roxy_log(
|
|||
serv, rows='10', waf='0', grep=None, hour='00',
|
||||
minut='00', hour1='24', minut1='00', service='haproxy', **kwargs
|
||||
) -> str:
|
||||
import sql
|
||||
exgrep = form.getvalue('exgrep')
|
||||
log_file = form.getvalue('file')
|
||||
date = checkAjaxInput(hour) + ':' + checkAjaxInput(minut)
|
||||
|
@ -1196,7 +1131,6 @@ def show_roxy_log(
|
|||
if waf == "1":
|
||||
local_path_logs = '/var/log/waf.log'
|
||||
commands = ["sudo cat %s |tail -%s %s %s" % (local_path_logs, rows, grep_act, exgrep_act)]
|
||||
|
||||
if kwargs.get('html') == 0:
|
||||
a = ssh_command(syslog_server, commands)
|
||||
return show_log(a, html=0, grep=grep)
|
||||
|
@ -1290,6 +1224,8 @@ def server_status(stdout):
|
|||
|
||||
|
||||
def ssh_command(server_ip: str, commands: list, **kwargs):
|
||||
if server_ip == '':
|
||||
return 'error: IP cannot be empty'
|
||||
with ssh_connect(server_ip) as ssh:
|
||||
for command in commands:
|
||||
try:
|
||||
|
@ -1328,7 +1264,6 @@ def subprocess_execute(cmd):
|
|||
|
||||
|
||||
def show_backends(server_ip, **kwargs):
|
||||
import sql
|
||||
hap_sock_p = sql.get_setting('haproxy_sock_port')
|
||||
cmd = f'echo "show backend" |nc {server_ip} {hap_sock_p}'
|
||||
output, stderr = subprocess_execute(cmd)
|
||||
|
@ -1414,7 +1349,6 @@ def get_key(item):
|
|||
|
||||
|
||||
def check_ver():
|
||||
import sql
|
||||
return sql.get_ver()
|
||||
|
||||
|
||||
|
@ -1423,8 +1357,6 @@ def check_new_version(service):
|
|||
from requests.adapters import HTTPAdapter
|
||||
from requests.packages.urllib3.util.retry import Retry
|
||||
|
||||
import sql
|
||||
|
||||
current_ver = check_ver()
|
||||
proxy = sql.get_setting('proxy')
|
||||
res = ''
|
||||
|
@ -1508,7 +1440,6 @@ def get_hash(value):
|
|||
|
||||
|
||||
def get_users_params(**kwargs):
|
||||
import sql
|
||||
cookie = http.cookies.SimpleCookie(os.environ.get("HTTP_COOKIE"))
|
||||
|
||||
try:
|
||||
|
@ -1547,8 +1478,6 @@ def get_users_params(**kwargs):
|
|||
|
||||
|
||||
def check_user_group(**kwargs):
|
||||
import sql
|
||||
|
||||
if kwargs.get('token') is not None:
|
||||
return True
|
||||
|
||||
|
@ -1577,7 +1506,6 @@ def check_user_group(**kwargs):
|
|||
|
||||
|
||||
def check_is_server_in_group(server_ip: str) -> bool:
|
||||
import sql
|
||||
group_id = get_user_group(id=1)
|
||||
servers = sql.select_servers(server=server_ip)
|
||||
for s in servers:
|
||||
|
@ -1691,7 +1619,6 @@ def is_service_active(server_ip: str, service_name: str) -> bool:
|
|||
|
||||
|
||||
def get_system_info(server_ip: str) -> str:
|
||||
import sql
|
||||
server_ip = is_ip_or_dns(server_ip)
|
||||
if server_ip == '':
|
||||
return 'error: IP cannot be empty'
|
||||
|
@ -1928,7 +1855,6 @@ def string_to_dict(dict_string) -> dict:
|
|||
|
||||
def send_message_to_rabbit(message: str, **kwargs) -> None:
|
||||
import pika
|
||||
import sql
|
||||
rabbit_user = sql.get_setting('rabbitmq_user')
|
||||
rabbit_password = sql.get_setting('rabbitmq_password')
|
||||
rabbit_host = sql.get_setting('rabbitmq_host')
|
||||
|
@ -1956,8 +1882,6 @@ def send_message_to_rabbit(message: str, **kwargs) -> None:
|
|||
|
||||
|
||||
def is_restarted(server_ip: str, action: str) -> None:
|
||||
import sql
|
||||
|
||||
cookie = http.cookies.SimpleCookie(os.environ.get("HTTP_COOKIE"))
|
||||
user_uuid = cookie.get('uuid')
|
||||
user_role = sql.get_user_role_by_uuid(user_uuid.value)
|
||||
|
@ -1968,7 +1892,6 @@ def is_restarted(server_ip: str, action: str) -> None:
|
|||
|
||||
|
||||
def is_not_allowed_to_restart(server_id: int, service: str) -> None:
|
||||
import sql
|
||||
is_restart = sql.select_service_setting(server_id, service, 'restart')
|
||||
|
||||
if int(is_restart) == 1:
|
||||
|
@ -1977,8 +1900,6 @@ def is_not_allowed_to_restart(server_id: int, service: str) -> None:
|
|||
|
||||
|
||||
def return_user_status():
|
||||
import sql
|
||||
|
||||
user_status = sql.select_user_status()
|
||||
user_plan = sql.select_user_plan()
|
||||
|
||||
|
@ -1986,8 +1907,6 @@ def return_user_status():
|
|||
|
||||
|
||||
def get_correct_apache_service_name(server_ip=None, server_id=0) -> str:
|
||||
import sql
|
||||
|
||||
if server_id is None:
|
||||
server_id = sql.select_server_id_by_ip(server_ip)
|
||||
|
||||
|
@ -2014,7 +1933,6 @@ def is_docker() -> bool:
|
|||
|
||||
|
||||
def send_email(email_to: str, subject: str, message: str) -> None:
|
||||
import sql
|
||||
from smtplib import SMTP
|
||||
|
||||
try:
|
||||
|
@ -2046,8 +1964,6 @@ def send_email(email_to: str, subject: str, message: str) -> None:
|
|||
|
||||
|
||||
def send_email_to_server_group(subject: str, mes: str, group_id: int) -> None:
|
||||
import sql
|
||||
|
||||
try:
|
||||
users_email = sql.select_users_emails_by_group_id(group_id)
|
||||
|
||||
|
@ -2060,8 +1976,6 @@ def send_email_to_server_group(subject: str, mes: str, group_id: int) -> None:
|
|||
def alert_routing(
|
||||
server_ip: str, service_id: int, group_id: int, level: str, mes: str, alert_type: str
|
||||
) -> None:
|
||||
import sql
|
||||
|
||||
subject: str = level + ': ' + mes
|
||||
server_id: int = sql.select_server_id_by_ip(server_ip)
|
||||
checker_settings = sql.select_checker_settings_for_server(service_id, server_id)
|
||||
|
@ -2093,3 +2007,7 @@ def alert_routing(
|
|||
|
||||
if setting.email:
|
||||
send_email_to_server_group(subject, mes, group_id)
|
||||
|
||||
|
||||
def get_data(log_type, **kwargs):
|
||||
return get_date.return_date(log_type, **kwargs)
|
||||
|
|
|
@ -1,3 +1,6 @@
|
|||
from datetime import datetime, timedelta
|
||||
|
||||
from pytz import timezone
|
||||
from configparser import ConfigParser, ExtendedInterpolation
|
||||
|
||||
|
||||
|
@ -16,3 +19,50 @@ class GetConfigVar:
|
|||
f'<center><div class="alert alert-danger">Check the config file. Presence section {sec} and parameter {var}</div>')
|
||||
print(e)
|
||||
return
|
||||
|
||||
|
||||
class GetDate:
|
||||
def __init__(self, time_zone):
|
||||
self.time_zone = time_zone
|
||||
self.fmt = "%Y-%m-%d.%H:%M:%S"
|
||||
|
||||
def return_date(self, log_type, **kwargs):
|
||||
if kwargs.get('timedelta'):
|
||||
try:
|
||||
now_utc = datetime.now(timezone(self.time_zone)) + timedelta(days=kwargs.get('timedelta'))
|
||||
except Exception:
|
||||
now_utc = datetime.now(timezone('UTC')) + timedelta(days=kwargs.get('timedelta'))
|
||||
elif kwargs.get('timedelta_minus'):
|
||||
try:
|
||||
now_utc = datetime.now(timezone(self.time_zone)) - timedelta(
|
||||
days=kwargs.get('timedelta_minus'))
|
||||
except Exception:
|
||||
now_utc = datetime.now(timezone('UTC')) - timedelta(days=kwargs.get('timedelta_minus'))
|
||||
elif kwargs.get('timedelta_minutes'):
|
||||
try:
|
||||
now_utc = datetime.now(timezone(self.time_zone)) + timedelta(
|
||||
minutes=kwargs.get('timedelta_minutes'))
|
||||
except Exception:
|
||||
now_utc = datetime.now(timezone('UTC')) + timedelta(minutes=kwargs.get('timedelta_minutes'))
|
||||
elif kwargs.get('timedelta_minutes_minus'):
|
||||
try:
|
||||
now_utc = datetime.now(timezone(self.time_zone)) - timedelta(
|
||||
minutes=kwargs.get('timedelta_minutes_minus'))
|
||||
except Exception:
|
||||
now_utc = datetime.now(timezone('UTC')) - timedelta(minutes=kwargs.get('timedelta_minutes_minus'))
|
||||
else:
|
||||
try:
|
||||
now_utc = datetime.now(timezone(self.time_zone))
|
||||
except Exception:
|
||||
now_utc = datetime.now(timezone('UTC'))
|
||||
|
||||
if log_type == 'config':
|
||||
self.fmt = "%Y-%m-%d.%H:%M:%S"
|
||||
elif log_type == 'logs':
|
||||
self.fmt = '%Y%m%d'
|
||||
elif log_type == "date_in_log":
|
||||
self.fmt = "%b %d %H:%M:%S"
|
||||
elif log_type == 'regular':
|
||||
self.fmt = "%Y-%m-%d %H:%M:%S"
|
||||
|
||||
return now_utc.strftime(self.fmt)
|
||||
|
|
213
app/sql.py
213
app/sql.py
|
@ -4,10 +4,46 @@ import traceback
|
|||
import sys
|
||||
import os
|
||||
|
||||
import funct
|
||||
|
||||
from modules.db_model import *
|
||||
import modules.roxy_wi_tools as roxy_wi_tools
|
||||
|
||||
def get_setting(param, **kwargs):
|
||||
import funct
|
||||
try:
|
||||
user_group = funct.get_user_group(id=1)
|
||||
except Exception:
|
||||
user_group = ''
|
||||
|
||||
if user_group == '' or param == 'lists_path' or param == 'ssl_local_path':
|
||||
user_group = 1
|
||||
|
||||
if kwargs.get('all'):
|
||||
query = Setting.select().where(Setting.group == user_group).order_by(Setting.section.desc())
|
||||
else:
|
||||
query = Setting.select().where((Setting.param == param) & (Setting.group == user_group))
|
||||
|
||||
try:
|
||||
query_res = query.execute()
|
||||
except Exception as e:
|
||||
out_error(e)
|
||||
else:
|
||||
if kwargs.get('all'):
|
||||
return query_res
|
||||
else:
|
||||
for setting in query_res:
|
||||
if param in (
|
||||
'nginx_stats_port', 'session_ttl', 'token_ttl', 'stats_port', 'haproxy_sock_port', 'ldap_type',
|
||||
'ldap_port', 'ldap_enable', 'log_time_storage', 'syslog_server_enable', 'smon_check_interval',
|
||||
'checker_check_interval', 'port_scan_interval', 'smon_keep_history_range', 'checker_keep_history_range',
|
||||
'portscanner_keep_history_range', 'checker_maxconn_threshold', 'apache_stats_port'
|
||||
):
|
||||
return int(setting.value)
|
||||
else:
|
||||
return setting.value
|
||||
|
||||
|
||||
time_zone = get_setting('time_zone')
|
||||
get_date = roxy_wi_tools.GetDate(time_zone)
|
||||
|
||||
def out_error(error):
|
||||
error = str(error)
|
||||
|
@ -20,6 +56,7 @@ def out_error(error):
|
|||
|
||||
|
||||
def add_user(user, email, password, role, activeuser, group):
|
||||
import funct
|
||||
if password != 'aduser':
|
||||
try:
|
||||
User.insert(
|
||||
|
@ -28,9 +65,6 @@ def add_user(user, email, password, role, activeuser, group):
|
|||
).execute()
|
||||
except Exception as e:
|
||||
out_error(e)
|
||||
return False
|
||||
else:
|
||||
return True
|
||||
else:
|
||||
try:
|
||||
User.insert(
|
||||
|
@ -38,9 +72,6 @@ def add_user(user, email, password, role, activeuser, group):
|
|||
).execute()
|
||||
except Exception as e:
|
||||
out_error(e)
|
||||
return False
|
||||
else:
|
||||
return True
|
||||
|
||||
|
||||
def update_user(user, email, role, user_id, activeuser):
|
||||
|
@ -89,6 +120,7 @@ def update_user_current_groups(groups, user_uuid):
|
|||
|
||||
|
||||
def update_user_password(password, user_id):
|
||||
import funct
|
||||
try:
|
||||
user_update = User.update(password=funct.get_hash(password)).where(User.user_id == user_id)
|
||||
user_update.execute()
|
||||
|
@ -339,18 +371,18 @@ def select_users(**kwargs):
|
|||
elif kwargs.get("id") is not None:
|
||||
query = User.select().where(User.user_id == kwargs.get("id"))
|
||||
elif kwargs.get("group") is not None:
|
||||
cur_date = get_date.return_date('regular', timedelta_minutes_minus=15)
|
||||
query = (User.select(
|
||||
User, UserGroups, Case(
|
||||
0, [((User.last_login_date >= funct.get_data('regular', timedelta_minutes_minus=15)), 0)], 1
|
||||
0, [((User.last_login_date >= cur_date), 0)], 1
|
||||
).alias('last_login')
|
||||
).join(UserGroups, on=(User.user_id == UserGroups.user_id)).where(
|
||||
UserGroups.user_group_id == kwargs.get("group")
|
||||
))
|
||||
else:
|
||||
cur_date = get_date.return_date('regular', timedelta_minutes_minus=15)
|
||||
query = User.select(User, Case(0, [(
|
||||
(
|
||||
User.last_login_date >= funct.get_data('regular', timedelta_minutes_minus=15)
|
||||
), 0)], 1).alias('last_login')).order_by(User.user_id)
|
||||
(User.last_login_date >= cur_date), 0)], 1).alias('last_login')).order_by(User.user_id)
|
||||
try:
|
||||
query_res = query.execute()
|
||||
except Exception as e:
|
||||
|
@ -568,9 +600,10 @@ def write_user_uuid(login, user_uuid):
|
|||
session_ttl = get_setting('session_ttl')
|
||||
session_ttl = int(session_ttl)
|
||||
user_id = get_user_id_by_username(login)
|
||||
cur_date = get_date.return_date('regular', timedelta=session_ttl)
|
||||
|
||||
try:
|
||||
UUID.insert(user_id=user_id, uuid=user_uuid, exp=funct.get_data('regular', timedelta=session_ttl)).execute()
|
||||
UUID.insert(user_id=user_id, uuid=user_uuid, exp=cur_date).execute()
|
||||
except Exception as e:
|
||||
out_error(e)
|
||||
|
||||
|
@ -578,21 +611,23 @@ def write_user_uuid(login, user_uuid):
|
|||
def write_user_token(login, user_token):
|
||||
token_ttl = int(get_setting('token_ttl'))
|
||||
user_id = get_user_id_by_username(login)
|
||||
cur_date = get_date.return_date('regular', timedelta=token_ttl)
|
||||
|
||||
try:
|
||||
Token.insert(user_id=user_id, token=user_token, exp=funct.get_data('regular', timedelta=token_ttl)).execute()
|
||||
Token.insert(user_id=user_id, token=user_token, exp=cur_date).execute()
|
||||
except Exception as e:
|
||||
out_error(e)
|
||||
|
||||
|
||||
def write_api_token(user_token, group_id, user_role, user_name):
|
||||
token_ttl = int(get_setting('token_ttl'))
|
||||
cur_date = get_date.return_date('regular', timedelta=token_ttl)
|
||||
cur_date_token_ttl = get_date.return_date('regular', timedelta=token_ttl)
|
||||
|
||||
try:
|
||||
ApiToken.insert(
|
||||
token=user_token, user_name=user_name, user_group_id=group_id, user_role=user_role,
|
||||
create_date=funct.get_data('regular'), expire_date=funct.get_data('regular', timedelta=token_ttl)
|
||||
).execute()
|
||||
create_date=cur_date, expire_date=cur_date_token_ttl).execute()
|
||||
except Exception as e:
|
||||
out_error(e)
|
||||
|
||||
|
@ -650,8 +685,9 @@ def delete_uuid(uuid):
|
|||
|
||||
|
||||
def delete_old_uuid():
|
||||
query = UUID.delete().where((UUID.exp < funct.get_data('regular')) | (UUID.exp.is_null(True)))
|
||||
query1 = Token.delete().where((Token.exp < funct.get_data('regular')) | (Token.exp.is_null(True)))
|
||||
cur_date = get_date.return_date('regular')
|
||||
query = UUID.delete().where((UUID.exp < cur_date) | (UUID.exp.is_null(True)))
|
||||
query1 = Token.delete().where((Token.exp < cur_date) | (Token.exp.is_null(True)))
|
||||
try:
|
||||
query.execute()
|
||||
query1.execute()
|
||||
|
@ -662,6 +698,11 @@ def delete_old_uuid():
|
|||
def update_last_act_user(uuid, token):
|
||||
session_ttl = int(get_setting('session_ttl'))
|
||||
token_ttl = int(get_setting('token_ttl'))
|
||||
cur_date_session = get_date.return_date('regular', timedelta=session_ttl)
|
||||
cur_date_token = get_date.return_date('regular', timedelta=token_ttl)
|
||||
cur_date = get_date.return_date('regular')
|
||||
user_id = get_user_id_by_uuid(uuid)
|
||||
|
||||
try:
|
||||
import cgi
|
||||
import os
|
||||
|
@ -669,11 +710,9 @@ def update_last_act_user(uuid, token):
|
|||
except Exception:
|
||||
ip = ''
|
||||
|
||||
user_id = get_user_id_by_uuid(uuid)
|
||||
|
||||
query = UUID.update(exp=funct.get_data('regular', timedelta=session_ttl)).where(UUID.uuid == uuid)
|
||||
query1 = Token.update(exp=funct.get_data('regular', timedelta=token_ttl)).where(Token.token == token)
|
||||
query2 = User.update(last_login_date=funct.get_data('regular'), last_login_ip=ip).where(User.user_id == user_id)
|
||||
query = UUID.update(exp=cur_date_session).where(UUID.uuid == uuid)
|
||||
query1 = Token.update(exp=cur_date_token).where(Token.token == token)
|
||||
query2 = User.update(last_login_date=cur_date, last_login_ip=ip).where(User.user_id == user_id)
|
||||
try:
|
||||
query.execute()
|
||||
query1.execute()
|
||||
|
@ -798,6 +837,7 @@ def get_slack_by_id(slack_id):
|
|||
|
||||
def get_dick_permit(**kwargs):
|
||||
import os
|
||||
import funct
|
||||
|
||||
if kwargs.get('username'):
|
||||
grp = kwargs.get('group_id')
|
||||
|
@ -1208,35 +1248,39 @@ def delete_savedserver(saved_id):
|
|||
|
||||
|
||||
def insert_metrics(serv, curr_con, cur_ssl_con, sess_rate, max_sess_rate):
|
||||
cur_date = get_date.return_date('regular')
|
||||
try:
|
||||
Metrics.insert(
|
||||
serv=serv, curr_con=curr_con, cur_ssl_con=cur_ssl_con, sess_rate=sess_rate, max_sess_rate=max_sess_rate,
|
||||
date=funct.get_data('regular')
|
||||
date=cur_date
|
||||
).execute()
|
||||
except Exception as e:
|
||||
out_error(e)
|
||||
|
||||
|
||||
def insert_metrics_http(serv, http_2xx, http_3xx, http_4xx, http_5xx):
|
||||
cur_date = get_date.return_date('regular')
|
||||
try:
|
||||
MetricsHttpStatus.insert(
|
||||
serv=serv, ok_ans=http_2xx, redir_ans=http_3xx, not_found_ans=http_4xx, err_ans=http_5xx,
|
||||
date=funct.get_data('regular')
|
||||
date=cur_date
|
||||
).execute()
|
||||
except Exception as e:
|
||||
out_error(e)
|
||||
|
||||
|
||||
def insert_nginx_metrics(serv, conn):
|
||||
cur_date = get_date.return_date('regular')
|
||||
try:
|
||||
NginxMetrics.insert(serv=serv, conn=conn, date=funct.get_data('regular')).execute()
|
||||
NginxMetrics.insert(serv=serv, conn=conn, date=cur_date).execute()
|
||||
except Exception as e:
|
||||
out_error(e)
|
||||
|
||||
|
||||
def insert_apache_metrics(serv, conn):
|
||||
cur_date = get_date.return_date('regular')
|
||||
try:
|
||||
ApacheMetrics.insert(serv=serv, conn=conn, date=funct.get_data('regular')).execute()
|
||||
ApacheMetrics.insert(serv=serv, conn=conn, date=cur_date).execute()
|
||||
except Exception as e:
|
||||
out_error(e)
|
||||
|
||||
|
@ -1557,14 +1601,16 @@ def delete_waf_server(server_id):
|
|||
|
||||
|
||||
def insert_waf_metrics(serv, conn):
|
||||
cur_date = get_date.return_date('regular')
|
||||
try:
|
||||
WafMetrics.insert(serv=serv, conn=conn, date=funct.get_data('regular')).execute()
|
||||
WafMetrics.insert(serv=serv, conn=conn, date=cur_date).execute()
|
||||
except Exception as e:
|
||||
out_error(e)
|
||||
|
||||
|
||||
def delete_waf_metrics():
|
||||
query = WafMetrics.delete().where(WafMetrics.date < funct.get_data('regular', timedelta_minus=3))
|
||||
cur_date = get_date.return_date('regular', timedelta_minus=3)
|
||||
query = WafMetrics.delete().where(WafMetrics.date < cur_date)
|
||||
try:
|
||||
query.execute()
|
||||
except Exception as e:
|
||||
|
@ -1585,7 +1631,8 @@ def update_waf_metrics_enable(name, enable):
|
|||
|
||||
|
||||
def delete_metrics():
|
||||
query = Metrics.delete().where(Metrics.date < funct.get_data('regular', timedelta_minus=3))
|
||||
cur_date = get_date.return_date('regular', timedelta_minus=3)
|
||||
query = Metrics.delete().where(Metrics.date < cur_date)
|
||||
try:
|
||||
query.execute()
|
||||
except Exception as e:
|
||||
|
@ -1593,7 +1640,8 @@ def delete_metrics():
|
|||
|
||||
|
||||
def delete_http_metrics():
|
||||
query = MetricsHttpStatus.delete().where(MetricsHttpStatus.date < funct.get_data('regular', timedelta_minus=3))
|
||||
cur_date = get_date.return_date('regular', timedelta_minus=3)
|
||||
query = MetricsHttpStatus.delete().where(MetricsHttpStatus.date < cur_date)
|
||||
try:
|
||||
query.execute()
|
||||
except Exception as e:
|
||||
|
@ -1601,7 +1649,8 @@ def delete_http_metrics():
|
|||
|
||||
|
||||
def delete_nginx_metrics():
|
||||
query = NginxMetrics.delete().where(NginxMetrics.date < funct.get_data('regular', timedelta_minus=3))
|
||||
cur_date = get_date.return_date('regular', timedelta_minus=3)
|
||||
query = NginxMetrics.delete().where(NginxMetrics.date < cur_date)
|
||||
try:
|
||||
query.execute()
|
||||
except Exception as e:
|
||||
|
@ -1609,7 +1658,8 @@ def delete_nginx_metrics():
|
|||
|
||||
|
||||
def delete_apache_metrics():
|
||||
query = ApacheMetrics.delete().where(ApacheMetrics.date < funct.get_data('regular', timedelta_minus=3))
|
||||
cur_date = get_date.return_date('regular', timedelta_minus=3)
|
||||
query = ApacheMetrics.delete().where(ApacheMetrics.date < cur_date)
|
||||
try:
|
||||
query.execute()
|
||||
except Exception as e:
|
||||
|
@ -1718,6 +1768,7 @@ def select_apache_servers_metrics_for_master():
|
|||
|
||||
|
||||
def select_servers_metrics():
|
||||
import funct
|
||||
group_id = funct.get_user_group(id=1)
|
||||
if funct.check_user_group():
|
||||
if group_id == 1:
|
||||
|
@ -1734,6 +1785,7 @@ def select_servers_metrics():
|
|||
|
||||
|
||||
def select_table_metrics():
|
||||
import funct
|
||||
cursor = conn.cursor()
|
||||
group_id = funct.get_user_group(id=1)
|
||||
|
||||
|
@ -1942,6 +1994,7 @@ def select_table_metrics():
|
|||
|
||||
|
||||
def select_service_table_metrics(service):
|
||||
import funct
|
||||
cursor = conn.cursor()
|
||||
group_id = funct.get_user_group(id=1)
|
||||
|
||||
|
@ -2066,41 +2119,8 @@ def select_service_table_metrics(service):
|
|||
return cursor.fetchall()
|
||||
|
||||
|
||||
def get_setting(param, **kwargs):
|
||||
try:
|
||||
user_group = funct.get_user_group(id=1)
|
||||
except Exception:
|
||||
user_group = ''
|
||||
|
||||
if user_group == '' or param == 'lists_path' or param == 'ssl_local_path':
|
||||
user_group = 1
|
||||
|
||||
if kwargs.get('all'):
|
||||
query = Setting.select().where(Setting.group == user_group).order_by(Setting.section.desc())
|
||||
else:
|
||||
query = Setting.select().where((Setting.param == param) & (Setting.group == user_group))
|
||||
|
||||
try:
|
||||
query_res = query.execute()
|
||||
except Exception as e:
|
||||
out_error(e)
|
||||
else:
|
||||
if kwargs.get('all'):
|
||||
return query_res
|
||||
else:
|
||||
for setting in query_res:
|
||||
if param in (
|
||||
'nginx_stats_port', 'session_ttl', 'token_ttl', 'stats_port', 'haproxy_sock_port', 'ldap_type',
|
||||
'ldap_port', 'ldap_enable', 'log_time_storage', 'syslog_server_enable', 'smon_check_interval',
|
||||
'checker_check_interval', 'port_scan_interval', 'smon_keep_history_range', 'checker_keep_history_range',
|
||||
'portscanner_keep_history_range', 'checker_maxconn_threshold', 'apache_stats_port'
|
||||
):
|
||||
return int(setting.value)
|
||||
else:
|
||||
return setting.value
|
||||
|
||||
|
||||
def update_setting(param, val):
|
||||
import funct
|
||||
user_group = funct.get_user_group(id=1)
|
||||
|
||||
if funct.check_user_group():
|
||||
|
@ -2395,6 +2415,8 @@ def insert_smon(server, port, enable, proto, uri, body, group, desc, telegram, s
|
|||
|
||||
|
||||
def select_smon(user_group, **kwargs):
|
||||
import funct
|
||||
|
||||
cursor = conn.cursor()
|
||||
funct.check_user_group()
|
||||
|
||||
|
@ -2442,6 +2464,8 @@ def select_smon_by_id(last_id):
|
|||
|
||||
|
||||
def delete_smon(smon_id, user_group):
|
||||
import funct
|
||||
|
||||
funct.check_user_group()
|
||||
|
||||
query = SMON.delete().where((SMON.id == smon_id) & (SMON.user_group == user_group))
|
||||
|
@ -2455,6 +2479,8 @@ def delete_smon(smon_id, user_group):
|
|||
|
||||
|
||||
def update_smon(smon_id, ip, port, body, telegram, slack, group, desc, en):
|
||||
import funct
|
||||
|
||||
funct.check_user_group()
|
||||
query = (SMON.update(
|
||||
ip=ip, port=port, body=body, telegram_channel_id=telegram, slack_channel_id=slack, group=group, desc=desc, en=en
|
||||
|
@ -2644,10 +2670,11 @@ def smon_list(user_group):
|
|||
|
||||
|
||||
def insert_alerts(user_group, level, ip, port, message, service):
|
||||
cur_date = get_date.return_date('regular')
|
||||
try:
|
||||
Alerts.insert(
|
||||
user_group=user_group, message=message, level=level, ip=ip, port=port, service=service,
|
||||
date=funct.get_data('regular')
|
||||
date=cur_date
|
||||
).execute()
|
||||
return True
|
||||
except Exception as e:
|
||||
|
@ -2771,10 +2798,11 @@ def delete_port_scanner_settings(server_id):
|
|||
|
||||
|
||||
def insert_port_scanner_port(serv, user_group_id, port, service_name):
|
||||
cur_date = get_date.return_date('regular')
|
||||
try:
|
||||
PortScannerPorts.insert(
|
||||
serv=serv, port=port, user_group_id=user_group_id, service_name=service_name,
|
||||
date=funct.get_data('regular')
|
||||
date=cur_date
|
||||
).execute()
|
||||
except Exception as e:
|
||||
out_error(e)
|
||||
|
@ -2828,17 +2856,19 @@ def delete_ports(serv):
|
|||
|
||||
|
||||
def insert_port_scanner_history(serv, port, port_status, service_name):
|
||||
cur_date = get_date.return_date('regular')
|
||||
try:
|
||||
PortScannerHistory.insert(
|
||||
serv=serv, port=port, status=port_status, service_name=service_name, date=funct.get_data('regular')
|
||||
serv=serv, port=port, status=port_status, service_name=service_name, date=cur_date
|
||||
).execute()
|
||||
except Exception as e:
|
||||
out_error(e)
|
||||
|
||||
|
||||
def delete_alert_history(keep_interval: int, service: str):
|
||||
cur_date = get_date.return_date('regular', timedelta_minus=keep_interval)
|
||||
query = Alerts.delete().where(
|
||||
(Alerts.date < funct.get_data('regular', timedelta_minus=keep_interval)) & (Alerts.service == service)
|
||||
(Alerts.date < cur_date) & (Alerts.service == service)
|
||||
)
|
||||
try:
|
||||
query.execute()
|
||||
|
@ -2847,8 +2877,9 @@ def delete_alert_history(keep_interval: int, service: str):
|
|||
|
||||
|
||||
def delete_portscanner_history(keep_interval: int):
|
||||
cur_date = get_date.return_date('regular', timedelta_minus=keep_interval)
|
||||
query = PortScannerHistory.delete().where(
|
||||
PortScannerHistory.date < funct.get_data('regular', timedelta_minus=int(keep_interval)))
|
||||
PortScannerHistory.date < cur_date)
|
||||
try:
|
||||
query.execute()
|
||||
except Exception as e:
|
||||
|
@ -2866,10 +2897,11 @@ def select_port_scanner_history(serv):
|
|||
|
||||
|
||||
def add_provider_do(provider_name, provider_group, provider_token):
|
||||
cur_date = get_date.return_date('regular')
|
||||
try:
|
||||
ProvidersCreds.insert(
|
||||
name=provider_name, type='do', group=provider_group, key=provider_token,
|
||||
create_date=funct.get_data('regular'), edit_date=funct.get_data('regular')
|
||||
create_date=cur_date, edit_date=cur_date
|
||||
).execute()
|
||||
return True
|
||||
except Exception as e:
|
||||
|
@ -2878,10 +2910,11 @@ def add_provider_do(provider_name, provider_group, provider_token):
|
|||
|
||||
|
||||
def add_provider_aws(provider_name, provider_group, provider_key, provider_secret):
|
||||
cur_date = get_date.return_date('regular')
|
||||
try:
|
||||
ProvidersCreds.insert(
|
||||
name=provider_name, type='aws', group=provider_group, key=provider_key, secret=provider_secret,
|
||||
create_date=funct.get_data('regular'), edit_date=funct.get_data('regular')
|
||||
create_date=cur_date, edit_date=cur_date
|
||||
).execute()
|
||||
return True
|
||||
except Exception as e:
|
||||
|
@ -2890,10 +2923,11 @@ def add_provider_aws(provider_name, provider_group, provider_key, provider_secre
|
|||
|
||||
|
||||
def add_provider_gcore(provider_name, provider_group, provider_user, provider_pass):
|
||||
cur_date = get_date.return_date('regular')
|
||||
try:
|
||||
ProvidersCreds.insert(
|
||||
name=provider_name, type='gcore', group=provider_group, key=provider_user,
|
||||
secret=provider_pass, create_date=funct.get_data('regular'), edit_date=funct.get_data('regular')
|
||||
secret=provider_pass, create_date=cur_date, edit_date=cur_date
|
||||
).execute()
|
||||
return True
|
||||
except Exception as e:
|
||||
|
@ -2934,12 +2968,13 @@ def add_server_aws(
|
|||
region, instance_type, public_ip, floating_ip, volume_size, ssh_key_name, name, os, firewall,
|
||||
provider_id, group_id, status, delete_on_termination, volume_type
|
||||
):
|
||||
cur_date = get_date.return_date('regular')
|
||||
try:
|
||||
ProvisionedServers.insert(
|
||||
region=region, instance_type=instance_type, public_ip=public_ip, floating_ip=floating_ip,
|
||||
volume_size=volume_size, volume_type=volume_type, ssh_key_name=ssh_key_name, name=name, os=os,
|
||||
firewall=firewall, provider_id=provider_id, group_id=group_id, delete_on_termination=delete_on_termination,
|
||||
type='aws', status=status, date=funct.get_data('regular')
|
||||
type='aws', status=status, date=cur_date
|
||||
).execute()
|
||||
return True
|
||||
except Exception as e:
|
||||
|
@ -2951,12 +2986,13 @@ def add_server_gcore(
|
|||
project, region, instance_type, network_type, network_name, volume_size, ssh_key_name, name, os,
|
||||
firewall, provider_id, group_id, status, delete_on_termination, volume_type
|
||||
):
|
||||
cur_date = get_date.return_date('regular')
|
||||
try:
|
||||
ProvisionedServers.insert(
|
||||
region=region, instance_type=instance_type, public_ip=network_type, network_name=network_name,
|
||||
volume_size=volume_size, volume_type=volume_type, ssh_key_name=ssh_key_name, name=name,
|
||||
os=os, firewall=firewall, provider_id=provider_id, group_id=group_id, type='gcore',
|
||||
delete_on_termination=delete_on_termination, project=project, status=status, date=funct.get_data('regular')
|
||||
delete_on_termination=delete_on_termination, project=project, status=status, date=cur_date
|
||||
).execute()
|
||||
return True
|
||||
except Exception as e:
|
||||
|
@ -2968,12 +3004,13 @@ def add_server_do(
|
|||
region, size, privet_net, floating_ip, ssh_ids, ssh_key_name, name, oss, firewall, monitoring, backup,
|
||||
provider_id, group_id, status
|
||||
):
|
||||
cur_date = get_date.return_date('regular')
|
||||
try:
|
||||
ProvisionedServers.insert(
|
||||
region=region, instance_type=size, private_networking=privet_net, floating_ip=floating_ip,
|
||||
ssh_ids=ssh_ids, ssh_key_name=ssh_key_name, name=name, os=oss, firewall=firewall,
|
||||
monitoring=monitoring, backup=backup, provider_id=provider_id, group_id=group_id,
|
||||
type='do', status=status, date=funct.get_data('regular')
|
||||
type='do', status=status, date=cur_date
|
||||
).execute()
|
||||
return True
|
||||
except Exception as e:
|
||||
|
@ -3186,9 +3223,10 @@ def select_do_provider(provider_id):
|
|||
|
||||
|
||||
def update_do_provider(new_name, new_token, provider_id):
|
||||
cur_date = get_date.return_date('regular')
|
||||
try:
|
||||
ProvidersCreds.update(
|
||||
name=new_name, key=new_token, edit_date=funct.get_data('regular')
|
||||
name=new_name, key=new_token, edit_date=cur_date
|
||||
).where(ProvidersCreds.id == provider_id).execute()
|
||||
return True
|
||||
except Exception as e:
|
||||
|
@ -3197,9 +3235,10 @@ def update_do_provider(new_name, new_token, provider_id):
|
|||
|
||||
|
||||
def update_gcore_provider(new_name, new_user, new_pass, provider_id):
|
||||
cur_date = get_date.return_date('regular')
|
||||
try:
|
||||
ProvidersCreds.update(
|
||||
name=new_name, key=new_user, secret=new_pass, edit_date=funct.get_data('regular')
|
||||
name=new_name, key=new_user, secret=new_pass, edit_date=cur_date
|
||||
).where(ProvidersCreds.id == provider_id).execute()
|
||||
return True
|
||||
except Exception as e:
|
||||
|
@ -3208,9 +3247,10 @@ def update_gcore_provider(new_name, new_user, new_pass, provider_id):
|
|||
|
||||
|
||||
def update_aws_provider(new_name, new_key, new_secret, provider_id):
|
||||
cur_date = get_date.return_date('regular')
|
||||
try:
|
||||
ProvidersCreds.update(
|
||||
name=new_name, key=new_key, secret=new_secret, edit_date=funct.get_data('regular')
|
||||
name=new_name, key=new_key, secret=new_secret, edit_date=cur_date
|
||||
).where(ProvidersCreds.id == provider_id).execute()
|
||||
return True
|
||||
except Exception as e:
|
||||
|
@ -3343,6 +3383,7 @@ def delete_service_settings(server_id: int):
|
|||
|
||||
|
||||
def insert_action_history(service: str, action: str, server_id: int, user_id: int, user_ip: str):
|
||||
cur_date = get_date.return_date('regular')
|
||||
try:
|
||||
ActionHistory.insert(
|
||||
service=service,
|
||||
|
@ -3350,7 +3391,7 @@ def insert_action_history(service: str, action: str, server_id: int, user_id: in
|
|||
server_id=server_id,
|
||||
user_id=user_id,
|
||||
ip=user_ip,
|
||||
date=funct.get_data('regular')
|
||||
date=cur_date
|
||||
).execute()
|
||||
except Exception as e:
|
||||
out_error(e)
|
||||
|
@ -3401,6 +3442,7 @@ def select_action_history_by_server_id_and_service(server_id: int, service: str)
|
|||
|
||||
|
||||
def insert_config_version(server_id: int, user_id: int, service: str, local_path: str, remote_path: str, diff: str):
|
||||
cur_date = get_date.return_date('regular')
|
||||
try:
|
||||
ConfigVersion.insert(
|
||||
server_id=server_id,
|
||||
|
@ -3409,7 +3451,7 @@ def insert_config_version(server_id: int, user_id: int, service: str, local_path
|
|||
local_path=local_path,
|
||||
remote_path=remote_path,
|
||||
diff=diff,
|
||||
date=funct.get_data('regular')
|
||||
date=cur_date
|
||||
).execute()
|
||||
except Exception as e:
|
||||
out_error(e)
|
||||
|
@ -3459,16 +3501,13 @@ def select_remote_path_from_version(server_ip: str, service: str, local_path: st
|
|||
|
||||
def insert_system_info(
|
||||
server_id: int, os_info: str, sys_info: str, cpu: str, ram: str, network: str, disks: str
|
||||
) -> bool:
|
||||
):
|
||||
try:
|
||||
SystemInfo.insert(
|
||||
server_id=server_id, os_info=os_info, sys_info=sys_info, cpu=cpu, ram=ram, network=network, disks=disks
|
||||
).on_conflict('replace').execute()
|
||||
except Exception as e:
|
||||
out_error(e)
|
||||
return False
|
||||
else:
|
||||
return True
|
||||
|
||||
|
||||
def delete_system_info(server_id: int):
|
||||
|
|
|
@ -34,21 +34,20 @@
|
|||
<table>
|
||||
<caption><h3>Install HAProxy Exporter</h3></caption>
|
||||
<tr class="overviewHead">
|
||||
<td class="padding10 first-collumn">Current installation</td>
|
||||
<td class="padding10 first-collumn" style="width: 20%;">Current installation</td>
|
||||
<td class="padding10 first-collumn" style="width: 30%;">Available Versions</td>
|
||||
<td class="help_cursor" style="width: 20%;" title="This exporter will be used by an external Prometheus. Also use this checkbox if you update the Exporter">External Prometheus</td>
|
||||
<td class="padding10 first-collumn" style="width: 30%;">Server</td>
|
||||
<td class="help_cursor" style="width: 20%;" title="This exporter will be used by an external Prometheus. Also use this checkbox if you update the Exporter">External Prometheus</td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td id="cur_haproxy_exp_ver" class="padding10 first-collumn"></td>
|
||||
<td class="padding10 first-collumn" style="width: 20%;">
|
||||
{% set values = dict() %}
|
||||
{% set values = {'0.7.0':'0.7.0','0.7.1':'0.7.1', '0.8.0':'0.8.0', '0.9.0':'0.9.0', '0.10.0':'0.10.0',
|
||||
'0.11.0':'0.11.0', '0.12.0':'0.12.0', '0.13.0':'0.13.0'} %}
|
||||
{% set values = {'0.7.0':'0.7.0','0.7.1':'0.7.1', '0.8.0':'0.8.0', '0.9.0':'0.9.0', '0.10.0':'0.10.0', '0.11.0':'0.11.0', '0.12.0':'0.12.0', '0.13.0':'0.13.0'} %}
|
||||
{{ select('hapexpver', values=values, selected='0.13.0') }}
|
||||
</td>
|
||||
<td style="padding-left: 50px;">{{ checkbox('haproxy_ext_prom', title="This exporter will be used by an external Prometheus. Also use this checkbox if you update the Exporter") }}</td>
|
||||
<td class="padding10 first-collumn">
|
||||
<select autofocus required name="haproxy_exp_addserv" id="haproxy_exp_addserv">
|
||||
<option disabled selected>------</option>
|
||||
|
@ -57,6 +56,7 @@
|
|||
{% endfor %}
|
||||
</select>
|
||||
</td>
|
||||
<td style="padding-left: 50px;">{{ checkbox('haproxy_ext_prom', title="This exporter will be used by an external Prometheus. Also use this checkbox if you update the Exporter") }}</td>
|
||||
<td>
|
||||
<span class="ui-button ui-widget ui-corner-all" id="haproxy_exp_install" title="Install HAProxy Exporter">Install</span>
|
||||
</td>
|
||||
|
@ -65,10 +65,10 @@
|
|||
<table>
|
||||
<caption><h3>Install NGINX Exporter</h3></caption>
|
||||
<tr class="overviewHead">
|
||||
<td class="padding10 first-collumn">Current installation</td>
|
||||
<td class="padding10 first-collumn" style="width: 20%;">Current installation</td>
|
||||
<td class="padding10 first-collumn" style="width: 30%;">Available Versions</td>
|
||||
<td class="help_cursor" style="width: 20%;" title="This exporter will be used by an external Prometheus. Also use this checkbox if you update the Exporter">External Prometheus</td>
|
||||
<td class="padding10 first-collumn" style="width: 30%;">Server</td>
|
||||
<td class="help_cursor" style="width: 20%;" title="This exporter will be used by an external Prometheus. Also use this checkbox if you update the Exporter">External Prometheus</td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
|
@ -79,7 +79,6 @@
|
|||
{% set values = {'0.5.0':'0.5.0', '0.6.0':'0.6.0', '0.7.0':'0.7.0', '0.9.0':'0.9.0', '0.10.0':'0.10.0'} %}
|
||||
{{ select('nginxexpver', values=values, selected='0.10.0') }}
|
||||
</td>
|
||||
<td style="padding-left: 53px;">{{ checkbox('nginx_ext_prom', title="This exporter will be used by an external Prometheus. Also use this checkbox if you update the Exporter") }}</td>
|
||||
<td class="padding10 first-collumn">
|
||||
<select autofocus required name="nginx_exp_addserv" id="nginx_exp_addserv">
|
||||
<option disabled selected>------</option>
|
||||
|
@ -88,6 +87,7 @@
|
|||
{% endfor %}
|
||||
</select>
|
||||
</td>
|
||||
<td style="padding-left: 50px;">{{ checkbox('nginx_ext_prom', title="This exporter will be used by an external Prometheus. Also use this checkbox if you update the Exporter") }}</td>
|
||||
<td>
|
||||
<span class="ui-button ui-widget ui-corner-all" id="nginx_exp_install" title="Install NGINX Exporter">Install</span>
|
||||
</td>
|
||||
|
@ -96,10 +96,10 @@
|
|||
<table>
|
||||
<caption><h3>Install Apache Exporter</h3></caption>
|
||||
<tr class="overviewHead">
|
||||
<td class="padding10 first-collumn">Current installation</td>
|
||||
<td class="padding10 first-collumn" style="width: 20%;">Current installation</td>
|
||||
<td class="padding10 first-collumn" style="width: 30%;">Available Versions</td>
|
||||
<td class="help_cursor" style="width: 20%;" title="This exporter will be used by an external Prometheus. Also use this checkbox if you update the Exporter">External Prometheus</td>
|
||||
<td class="padding10 first-collumn" style="width: 30%;">Server</td>
|
||||
<td class="help_cursor" style="width: 20%;" title="This exporter will be used by an external Prometheus. Also use this checkbox if you update the Exporter">External Prometheus</td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
|
@ -110,7 +110,6 @@
|
|||
{% set values = {'0.7.0':'0.7.0', '0.8.0':'0.8.0', '0.9.0':'0.9.0', '0.10.0':'0.10.0'} %}
|
||||
{{ select('apacheexpver', values=values, selected='0.10.0') }}
|
||||
</td>
|
||||
<td style="padding-left: 53px;">{{ checkbox('apache_ext_prom', title="This exporter will be used by an external Prometheus. Also use this checkbox if you update the Exporter") }}</td>
|
||||
<td class="padding10 first-collumn">
|
||||
<select autofocus required name="apache_exp_addserv" id="apache_exp_addserv">
|
||||
<option disabled selected>------</option>
|
||||
|
@ -119,6 +118,7 @@
|
|||
{% endfor %}
|
||||
</select>
|
||||
</td>
|
||||
<td style="padding-left: 50px;">{{ checkbox('apache_ext_prom', title="This exporter will be used by an external Prometheus. Also use this checkbox if you update the Exporter") }}</td>
|
||||
<td>
|
||||
<span class="ui-button ui-widget ui-corner-all" id="apache_exp_install" title="Install Apache Exporter">Install</span>
|
||||
</td>
|
||||
|
@ -127,10 +127,10 @@
|
|||
<table style="margin-top: 20px">
|
||||
<caption><h3>Install Node Exporter</h3></caption>
|
||||
<tr class="overviewHead">
|
||||
<td class="padding10 first-collumn">Current installation</td>
|
||||
<td class="padding10 first-collumn" style="width: 20%;">Current installation</td>
|
||||
<td class="padding10 first-collumn" style="width: 30%;">Available Versions</td>
|
||||
<td class="help_cursor" style="width: 20%;" title="This exporter will be used by an external Prometheus. Also use this checkbox if you update the Exporter">External Prometheus</td>
|
||||
<td class="padding10 first-collumn" style="width: 30%;">Server</td>
|
||||
<td class="help_cursor" style="width: 20%;" title="This exporter will be used by an external Prometheus. Also use this checkbox if you update the Exporter">External Prometheus</td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
|
@ -142,7 +142,6 @@
|
|||
'1.2.2':'1.2.2', '1.3.0':'1.3.0', '1.3.1':'1.3.1'} %}
|
||||
{{ select('nodeexpver', values=values, selected='1.3.1') }}
|
||||
</td>
|
||||
<td style="padding-left: 53px;">{{ checkbox('node_ext_prom', title="This exporter will be used by an external Prometheus. Also use this checkbox if you update the Exporter") }}</td>
|
||||
<td class="padding10 first-collumn">
|
||||
<select autofocus required name="node_exp_addserv" id="node_exp_addserv">
|
||||
<option disabled selected>------</option>
|
||||
|
@ -151,6 +150,7 @@
|
|||
{% endfor %}
|
||||
</select>
|
||||
</td>
|
||||
<td style="padding-left: 50px;">{{ checkbox('node_ext_prom', title="This exporter will be used by an external Prometheus. Also use this checkbox if you update the Exporter") }}</td>
|
||||
<td>
|
||||
<span class="ui-button ui-widget ui-corner-all" id="node_exp_install" title="Install Node Exporter">Install</span>
|
||||
</td>
|
||||
|
|
|
@ -302,7 +302,7 @@ $( function() {
|
|||
type: "POST",
|
||||
success: function( data ) {
|
||||
data = data.replace(/^\s+|\s+$/g,'');
|
||||
if(data.indexOf('bash') != '-1' || data.indexOf('such') != '-1' || data.indexOf('command not found') != '-1') {
|
||||
if(data.indexOf('bash') != '-1' || data.indexOf('such') != '-1' || data.indexOf('command not found') != '-1' || data.indexOf('from') != '-1') {
|
||||
$('#cur_nginx_ver').text('Nginx has not installed');
|
||||
$('#nginx_install').text('Install');
|
||||
$('#nginx_install').attr('title', 'Install Nginx');
|
||||
|
@ -333,7 +333,6 @@ $( function() {
|
|||
$('#cur_haproxy_exp_ver').text('HAProxy exporter has been not installed');
|
||||
} else {
|
||||
$('#cur_haproxy_exp_ver').text(data);
|
||||
$('#cur_haproxy_exp_ver').css('font-weight', 'bold');
|
||||
}
|
||||
}
|
||||
} );
|
||||
|
@ -356,7 +355,6 @@ $( function() {
|
|||
$('#cur_nginx_exp_ver').text('NGINX exporter has not been installed');
|
||||
} else {
|
||||
$('#cur_nginx_exp_ver').text(data);
|
||||
$('#cur_nginx_exp_ver').css('font-weight', 'bold');
|
||||
}
|
||||
}
|
||||
} );
|
||||
|
@ -379,7 +377,6 @@ $( function() {
|
|||
$('#cur_apache_exp_ver').text('Apache exporter has not been installed');
|
||||
} else {
|
||||
$('#cur_apache_exp_ver').text(data);
|
||||
$('#cur_apache_exp_ver').css('font-weight', 'bold');
|
||||
}
|
||||
}
|
||||
} );
|
||||
|
@ -402,7 +399,6 @@ $( function() {
|
|||
$('#cur_node_exp_ver').text('Node exporter has not been installed');
|
||||
} else {
|
||||
$('#cur_node_exp_ver').text(data);
|
||||
$('#cur_node_exp_ver').css('font-weight', 'bold');
|
||||
}
|
||||
}
|
||||
} );
|
||||
|
|
Loading…
Reference in New Issue