diff --git a/app/funct.py b/app/funct.py
index a65a08da..9025a8c6 100644
--- a/app/funct.py
+++ b/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('')
@@ -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)
diff --git a/app/modules/roxy_wi_tools.py b/app/modules/roxy_wi_tools.py
index 2e98ea6f..412a03a1 100644
--- a/app/modules/roxy_wi_tools.py
+++ b/app/modules/roxy_wi_tools.py
@@ -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'
Check the config file. Presence section {sec} and parameter {var}
')
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)
diff --git a/app/sql.py b/app/sql.py
index 96f4533a..29cfc9ba 100755
--- a/app/sql.py
+++ b/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):
diff --git a/app/templates/include/mon_installation.html b/app/templates/include/mon_installation.html
index 3b13e51e..b7015b17 100644
--- a/app/templates/include/mon_installation.html
+++ b/app/templates/include/mon_installation.html
@@ -34,21 +34,20 @@
Install HAProxy Exporter
- Current installation |
+ Current installation |
Available Versions |
- External Prometheus |
Server |
+ External Prometheus |
+ |
|
|
{% 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') }}
|
- {{ checkbox('haproxy_ext_prom', title="This exporter will be used by an external Prometheus. Also use this checkbox if you update the Exporter") }} |
|
+ {{ checkbox('haproxy_ext_prom', title="This exporter will be used by an external Prometheus. Also use this checkbox if you update the Exporter") }} |
Install
|
@@ -65,10 +65,10 @@
Install NGINX Exporter
- Current installation |
+ Current installation |
Available Versions |
- External Prometheus |
Server |
+ External Prometheus |
|
|
@@ -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') }}
- {{ checkbox('nginx_ext_prom', title="This exporter will be used by an external Prometheus. Also use this checkbox if you update the Exporter") }} |
|
+ {{ checkbox('nginx_ext_prom', title="This exporter will be used by an external Prometheus. Also use this checkbox if you update the Exporter") }} |
Install
|
@@ -96,10 +96,10 @@
Install Apache Exporter
- Current installation |
+ Current installation |
Available Versions |
- External Prometheus |
Server |
+ External Prometheus |
|
|
@@ -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') }}
- {{ checkbox('apache_ext_prom', title="This exporter will be used by an external Prometheus. Also use this checkbox if you update the Exporter") }} |
|
+ {{ checkbox('apache_ext_prom', title="This exporter will be used by an external Prometheus. Also use this checkbox if you update the Exporter") }} |
Install
|
@@ -127,10 +127,10 @@
Install Node Exporter
- Current installation |
+ Current installation |
Available Versions |
- External Prometheus |
Server |
+ External Prometheus |
|
|
@@ -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') }}
- {{ checkbox('node_ext_prom', title="This exporter will be used by an external Prometheus. Also use this checkbox if you update the Exporter") }} |
|
+ {{ checkbox('node_ext_prom', title="This exporter will be used by an external Prometheus. Also use this checkbox if you update the Exporter") }} |
Install
|
diff --git a/inc/users.js b/inc/users.js
index 0c539f9e..3ce4e465 100644
--- a/inc/users.js
+++ b/inc/users.js
@@ -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');
}
}
} );