mirror of https://github.com/Aidaho12/haproxy-wi
parent
4b168e8fa8
commit
e935edd497
|
@ -21,7 +21,6 @@ import modules.roxywi.common as roxywi_common
|
|||
import modules.roxywi.overview as roxy_overview
|
||||
|
||||
|
||||
|
||||
@app.route('/overview/services')
|
||||
@login_required
|
||||
def show_services_overview():
|
||||
|
@ -105,7 +104,7 @@ def show_roxywi_version():
|
|||
@app.route('/stats/view/<service>/<server_ip>')
|
||||
def show_stats(service, server_ip):
|
||||
server_ip = common.is_ip_or_dns(server_ip)
|
||||
|
||||
|
||||
if service in ('nginx', 'apache'):
|
||||
return service_common.get_stat_page(server_ip, service)
|
||||
else:
|
||||
|
|
|
@ -1,8 +1,5 @@
|
|||
import re
|
||||
import cgi
|
||||
import cgitb
|
||||
|
||||
form = cgi.FieldStorage()
|
||||
error_mess = 'error: All fields must be completed'
|
||||
|
||||
|
||||
|
|
|
@ -15,7 +15,7 @@ get_date = roxy_wi_tools.GetDate(time_zone)
|
|||
get_config = roxy_wi_tools.GetConfigVar()
|
||||
|
||||
|
||||
def save_to_haproxy_config(config: str, server_ip) -> str:
|
||||
def save_to_haproxy_config(config: str, server_ip: str, name: str) -> str:
|
||||
roxywi_common.check_is_server_in_group(server_ip)
|
||||
hap_configs_dir = get_config.get_config_var('configs', 'haproxy_save_configs_dir')
|
||||
cfg = hap_configs_dir + server_ip + "-" + get_date.return_date('config') + ".cfg"
|
||||
|
@ -45,11 +45,6 @@ def save_to_haproxy_config(config: str, server_ip) -> str:
|
|||
|
||||
|
||||
def save_nginx_config(config_add: str, server_ip: str, config_name: str) -> str:
|
||||
try:
|
||||
server_name = sql.get_hostname_by_server_ip(server_ip)
|
||||
except Exception:
|
||||
server_name = server_ip
|
||||
|
||||
roxywi_common.check_is_server_in_group(server_ip)
|
||||
sub_folder = 'conf.d' if 'upstream' in config_name else 'sites-enabled'
|
||||
|
||||
|
@ -150,7 +145,7 @@ def add_userlist() -> str:
|
|||
return config_add
|
||||
else:
|
||||
try:
|
||||
return save_to_haproxy_config(config_add, server_ip)
|
||||
return save_to_haproxy_config(config_add, server_ip, name)
|
||||
except Exception as e:
|
||||
return str(e)
|
||||
|
||||
|
|
|
@ -168,7 +168,6 @@ def change_maxconn_global(serv: str, maxconn: int) -> str:
|
|||
if maxconn is None:
|
||||
return 'error: Maxconn must be integer and not 0'
|
||||
|
||||
|
||||
haproxy_sock_port = sql.get_setting('haproxy_sock_port')
|
||||
masters = sql.is_master(serv)
|
||||
|
||||
|
@ -361,6 +360,7 @@ def delete_ip_from_list(serv, ip_id, ip, list_id, list_name) -> str:
|
|||
|
||||
def add_ip_to_list(serv, ip, list_id, list_name) -> str:
|
||||
haproxy_sock_port = sql.get_setting('haproxy_sock_port')
|
||||
lib_path = get_config_var.get_config_var('main', 'lib_path')
|
||||
user_group = roxywi_common.get_user_group(id=1)
|
||||
cmd = f'echo "add acl #{list_id} {ip}" |nc {serv} {haproxy_sock_port}'
|
||||
output, stderr = server_mod.subprocess_execute(cmd)
|
||||
|
|
|
@ -1,7 +1,4 @@
|
|||
import os
|
||||
import http.cookies
|
||||
|
||||
from flask import request, redirect, make_response, url_for
|
||||
from flask import request, redirect, url_for
|
||||
|
||||
import modules.db.sql as sql
|
||||
|
||||
|
|
|
@ -1,20 +1,16 @@
|
|||
import os
|
||||
import cgi
|
||||
import glob
|
||||
import http.cookies
|
||||
|
||||
import distro
|
||||
from flask import request, redirect, make_response, url_for
|
||||
|
||||
import modules.db.sql as sql
|
||||
import modules.common.common as common
|
||||
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()
|
||||
form = common.form
|
||||
serv = common.is_ip_or_dns(form.getvalue('serv'))
|
||||
|
||||
|
||||
def return_error_message():
|
||||
|
@ -39,28 +35,6 @@ def get_user_group(**kwargs) -> str:
|
|||
return user_group
|
||||
|
||||
|
||||
def check_user_group(**kwargs):
|
||||
if kwargs.get('token') is not None:
|
||||
return True
|
||||
|
||||
cookie = http.cookies.SimpleCookie(os.environ.get("HTTP_COOKIE"))
|
||||
|
||||
if kwargs.get('user_uuid'):
|
||||
group_id = kwargs.get('user_group_id')
|
||||
user_uuid = kwargs.get('user_uuid')
|
||||
user_id = sql.get_user_id_by_uuid(user_uuid)
|
||||
else:
|
||||
user_uuid = cookie.get('uuid')
|
||||
group_id = cookie.get('group')
|
||||
user_id = sql.get_user_id_by_uuid(user_uuid)
|
||||
|
||||
if sql.check_user_group(user_id, group_id):
|
||||
return True
|
||||
else:
|
||||
logging('Roxy-WI server', ' has tried to actions in not his group ', roxywi=1, login=1)
|
||||
return False
|
||||
|
||||
|
||||
def check_user_group_for_flask(**kwargs):
|
||||
if kwargs.get('token') is not None:
|
||||
return True
|
||||
|
@ -296,21 +270,6 @@ def get_users_params(**kwargs):
|
|||
return user_params
|
||||
|
||||
|
||||
def get_user_lang() -> str:
|
||||
cookie = http.cookies.SimpleCookie(os.environ.get("HTTP_COOKIE"))
|
||||
|
||||
try:
|
||||
user_lang = cookie.get('lang')
|
||||
user_lang = user_lang.value
|
||||
except Exception:
|
||||
return 'en'
|
||||
|
||||
if user_lang is None:
|
||||
user_lang = 'en'
|
||||
|
||||
return user_lang
|
||||
|
||||
|
||||
def get_user_lang_for_flask() -> str:
|
||||
try:
|
||||
user_lang = request.cookies.get('lang')
|
||||
|
@ -342,6 +301,6 @@ def return_user_subscription():
|
|||
user_subscription = return_user_status()
|
||||
except Exception as e:
|
||||
user_subscription = return_unsubscribed_user_status()
|
||||
roxywi_common.logging('Roxy-WI server', f'Cannot get a user plan: {e}', roxywi=1)
|
||||
logging('Roxy-WI server', f'Cannot get a user plan: {e}', roxywi=1)
|
||||
|
||||
return user_subscription
|
||||
|
|
|
@ -3,7 +3,6 @@ import re
|
|||
import modules.db.sql as sql
|
||||
import modules.server.server as server_mod
|
||||
from modules.common.common import checkAjaxInput
|
||||
from modules.common.common import form
|
||||
import modules.roxy_wi_tools as roxy_wi_tools
|
||||
import modules.roxywi.common as roxywi_common
|
||||
|
||||
|
|
|
@ -72,6 +72,7 @@ def telnet_from_server(server_from: str, server_to: str, port_to: str) -> str:
|
|||
break
|
||||
return output1
|
||||
|
||||
|
||||
def nslookup_from_server(server_from: str, dns_name: str, record_type: str) -> str:
|
||||
count_string = 0
|
||||
stderr = ''
|
||||
|
|
|
@ -3,7 +3,6 @@ import os
|
|||
import psutil
|
||||
import requests
|
||||
from flask import render_template, request
|
||||
from jinja2 import Environment, FileSystemLoader
|
||||
|
||||
import modules.db.sql as sql
|
||||
import modules.common.common as common
|
||||
|
@ -234,6 +233,7 @@ def show_services_overview():
|
|||
socket_log_id=roxy_logs.roxy_wi_log(log_id=1, file="socket"), error=stderr, lang=lang
|
||||
)
|
||||
|
||||
|
||||
def keepalived_became_master(server_ip) -> None:
|
||||
commands = ["sudo kill -USR2 $(cat /var/run/keepalived.pid) && sudo grep 'Became master' /tmp/keepalived.stats |awk '{print $3}'"]
|
||||
became_master = server_mod.ssh_command(server_ip, commands)
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
import os
|
||||
|
||||
from flask import render_template, request
|
||||
from flask import render_template
|
||||
|
||||
import modules.db.sql as sql
|
||||
import modules.roxywi.common as roxywi_common
|
||||
|
@ -122,8 +122,6 @@ def show_user_groups_and_roles(user_id: int, lang: str) -> None:
|
|||
|
||||
|
||||
def save_user_group_and_role(user: str, groups_and_roles: str) -> str:
|
||||
import json
|
||||
|
||||
for k, v in groups_and_roles.items():
|
||||
user_id = int(k)
|
||||
if not sql.delete_user_groups(user_id):
|
||||
|
|
|
@ -5,8 +5,6 @@ import modules.common.common as common
|
|||
import modules.server.server as server_mod
|
||||
import modules.roxywi.common as roxywi_common
|
||||
|
||||
form = common.form
|
||||
|
||||
|
||||
def waf_overview(serv, waf_service) -> None:
|
||||
servers = sql.select_servers(server=serv)
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
import json
|
||||
|
||||
from flask import render_template, request
|
||||
from flask import render_template
|
||||
|
||||
import modules.db.sql as sql
|
||||
import modules.server.ssh as mod_ssh
|
||||
|
@ -8,8 +8,6 @@ import modules.common.common as common
|
|||
import modules.roxywi.auth as roxywi_auth
|
||||
import modules.roxywi.common as roxywi_common
|
||||
|
||||
form = common.form
|
||||
|
||||
|
||||
def ssh_command(server_ip: str, commands: list, **kwargs):
|
||||
if server_ip == '':
|
||||
|
|
|
@ -9,7 +9,6 @@ from modules.server import ssh_connection
|
|||
import modules.roxywi.common as roxywi_common
|
||||
import modules.roxy_wi_tools as roxy_wi_tools
|
||||
|
||||
form = common.form
|
||||
error_mess = common.error_mess
|
||||
get_config = roxy_wi_tools.GetConfigVar()
|
||||
|
||||
|
|
|
@ -51,7 +51,7 @@ def backup(serv, rpath, time, backup_type, rserver, cred, deljob, update, descri
|
|||
roxywi_common.logging('backup ', f' a new backup job for server {serv} has been created', roxywi=1,
|
||||
login=1)
|
||||
return render_template(
|
||||
'ajax/new_backup.html',backups=sql.select_backups(server=serv, rserver=rserver), sshs=sql.select_ssh()
|
||||
'ajax/new_backup.html', backups=sql.select_backups(server=serv, rserver=rserver), sshs=sql.select_ssh()
|
||||
)
|
||||
|
||||
else:
|
||||
|
@ -111,7 +111,7 @@ def s3_backup(server, s3_server, bucket, secret_key, access_key, time, deljob, d
|
|||
return 'ok'
|
||||
|
||||
|
||||
def git_backup(server_id, service_id, git_init, repo, branch, period, cred, deljob, description) -> str:
|
||||
def git_backup(server_id, service_id, git_init, repo, branch, period, cred, deljob, description, backup_id) -> str:
|
||||
servers = roxywi_common.get_dick_permit()
|
||||
proxy = sql.get_setting('proxy')
|
||||
services = sql.select_services()
|
||||
|
@ -168,5 +168,5 @@ def git_backup(server_id, service_id, git_init, repo, branch, period, cred, delj
|
|||
)
|
||||
return render_template('ajax/new_git.html', gits=gits, sshs=sshs, servers=servers, services=services, new_add=1, lang=lang)
|
||||
else:
|
||||
if sql.delete_git(form.getvalue('git_backup')):
|
||||
if sql.delete_git(backup_id):
|
||||
return 'ok'
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
import os
|
||||
|
||||
import requests
|
||||
from flask import render_template, request
|
||||
|
||||
|
|
|
@ -70,9 +70,9 @@ def nginx_apache_exp_installation(serv, service, ver, ext_prom):
|
|||
proxy_serv = proxy
|
||||
|
||||
commands = [
|
||||
f"chmod +x {full_path}/{script} && {full_path}/{script} PROXY={proxy_serv} STAT_PORT={stats_port} SSH_PORT={ssh_settings['port']} STAT_PAGE={stats_page}"
|
||||
f" STATS_USER={stats_user} STATS_PASS='{stats_password}' HOST={serv} VER={ver} EXP_PROM={ext_prom} USER={ssh_settings['user']} "
|
||||
f" PASS='{ssh_settings['password']}' KEY={ssh_settings['key']}"
|
||||
f"chmod +x {full_path}/{script} && {full_path}/{script} PROXY={proxy_serv} STAT_PORT={stats_port} SSH_PORT={ssh_settings['port']} "
|
||||
f"STAT_PAGE={stats_page} STATS_USER={stats_user} STATS_PASS='{stats_password}' HOST={serv} VER={ver} EXP_PROM={ext_prom} "
|
||||
f"USER={ssh_settings['user']} PASS='{ssh_settings['password']}' KEY={ssh_settings['key']}"
|
||||
]
|
||||
|
||||
return_out = server_mod.subprocess_execute_with_rc(commands[0])
|
||||
|
|
|
@ -4,7 +4,6 @@ import requests
|
|||
from flask import request
|
||||
|
||||
import modules.db.sql as sql
|
||||
import modules.common.common as common
|
||||
import modules.server.server as server_mod
|
||||
import modules.config.config as config_mod
|
||||
import modules.roxywi.common as roxywi_common
|
||||
|
@ -240,12 +239,12 @@ def show_map(serv: str) -> str:
|
|||
nx.draw_networkx_edge_labels(G, pos, alpha=0.4, label_pos=0.5, font_color="#5d9ceb", edge_labels=edge_labels,
|
||||
font_size=8)
|
||||
|
||||
plt.savefig(f"/var/www/haproxy-wi/app/map.png")
|
||||
plt.savefig("/var/www/haproxy-wi/app/map.png")
|
||||
plt.show()
|
||||
except Exception as e:
|
||||
return f'error: Cannot create a map: {e}'
|
||||
|
||||
output += f'<img src="/map.png" alt="map"></center>'
|
||||
output += '<img src="/map.png" alt="map"></center>'
|
||||
return output
|
||||
|
||||
|
||||
|
|
|
@ -265,7 +265,6 @@ def check_rabbit_alert() -> str:
|
|||
except Exception as e:
|
||||
return f'error: Cannot send a message {e}'
|
||||
|
||||
|
||||
try:
|
||||
json_for_sending = {"user_group": user_group_id1, "message": 'info: Test message'}
|
||||
send_message_to_rabbit(json.dumps(json_for_sending))
|
||||
|
|
|
@ -1,17 +1,13 @@
|
|||
from flask import render_template
|
||||
from flask import render_template, redirect, url_for
|
||||
|
||||
import modules.db.sql as sql
|
||||
import modules.common.common as common
|
||||
import modules.roxywi.roxy as roxywi_mod
|
||||
import modules.roxywi.common as roxywi_common
|
||||
|
||||
form = common.form
|
||||
|
||||
|
||||
def load_checker() -> None:
|
||||
groups = sql.select_groups()
|
||||
services = roxywi_mod.get_services_status()
|
||||
lang = roxywi_common.get_user_lang()
|
||||
keepalived_settings = ''
|
||||
haproxy_settings = ''
|
||||
apache_settings = ''
|
||||
|
|
|
@ -125,4 +125,4 @@ def return_smon_status():
|
|||
cmd = "systemctl is-active roxy-wi-smon"
|
||||
smon_status, stderr = server_mod.subprocess_execute(cmd)
|
||||
|
||||
return smon_status, stderr
|
||||
return smon_status, stderr
|
||||
|
|
|
@ -1,11 +1,9 @@
|
|||
import os
|
||||
import sys
|
||||
|
||||
from functools import wraps
|
||||
from flask import render_template, request, jsonify, redirect, url_for
|
||||
from flask_login import login_required
|
||||
|
||||
from app import app, login_manager
|
||||
from app.routes.add import bp
|
||||
|
||||
sys.path.append(os.path.join(sys.path[0], '/var/www/haproxy-wi/app'))
|
||||
|
@ -16,7 +14,7 @@ import modules.common.common as common
|
|||
import modules.roxywi.auth as roxywi_auth
|
||||
import modules.roxywi.common as roxywi_common
|
||||
import modules.roxy_wi_tools as roxy_wi_tools
|
||||
import app.modules.server.server as server_mod
|
||||
import modules.server.server as server_mod
|
||||
|
||||
get_config = roxy_wi_tools.GetConfigVar()
|
||||
time_zone = sql.get_setting('time_zone')
|
||||
|
|
|
@ -6,7 +6,6 @@ import distro
|
|||
from flask import render_template, request, redirect, url_for
|
||||
from flask_login import login_required
|
||||
|
||||
from app import app, login_manager
|
||||
from app.routes.admin import bp
|
||||
|
||||
sys.path.append(os.path.join(sys.path[0], '/var/www/haproxy-wi/app'))
|
||||
|
@ -211,7 +210,7 @@ def action_openvpn(action, openvpn):
|
|||
return f'error: Cannot {action} OpenVPN: {e}'
|
||||
|
||||
|
||||
@app.route('/setting/<param>/<val>', methods=['POST'])
|
||||
@bp.route('/setting/<param>/<val>', methods=['POST'])
|
||||
def update_settings(param, val):
|
||||
user_group = roxywi_common.get_user_group(id=1)
|
||||
if sql.update_setting(param, val, user_group):
|
||||
|
|
|
@ -4,7 +4,6 @@ import sys
|
|||
from flask import render_template, request, redirect, url_for
|
||||
from flask_login import login_required
|
||||
|
||||
from app import app, login_manager
|
||||
from app.routes.checker import bp
|
||||
|
||||
sys.path.append(os.path.join(sys.path[0], '/var/www/haproxy-wi/app'))
|
||||
|
@ -14,6 +13,7 @@ import modules.common.common as common
|
|||
import modules.roxywi.common as roxywi_common
|
||||
import modules.tools.alerting as alerting
|
||||
import modules.tools.checker as checker_mod
|
||||
import modules.tools.smon as smon_mod
|
||||
|
||||
|
||||
@bp.before_request
|
||||
|
@ -127,4 +127,3 @@ def receiver(receiver_name):
|
|||
channel_id = common.checkAjaxInput(request.form.get('channel_id'))
|
||||
|
||||
return alerting.delete_receiver_channel(channel_id, receiver_name)
|
||||
|
||||
|
|
|
@ -1,10 +1,9 @@
|
|||
import os
|
||||
import sys
|
||||
|
||||
from flask import render_template, request, redirect, url_for, abort
|
||||
from flask import render_template, request, redirect, url_for
|
||||
from flask_login import login_required
|
||||
|
||||
from app import app, login_manager, cache
|
||||
from app.routes.config import bp
|
||||
|
||||
sys.path.append(os.path.join(sys.path[0], '/var/www/haproxy-wi/app'))
|
||||
|
@ -37,7 +36,7 @@ def show_config(service):
|
|||
configver = request.form.get('configver')
|
||||
server_ip = request.form.get('serv')
|
||||
|
||||
return config_mod.show_config(server_ip, service, config_file_name, configver)
|
||||
return config_mod.show_config(server_ip, service, config_file_name, configver)
|
||||
|
||||
|
||||
@bp.route('/<service>/show-files', methods=['POST'])
|
||||
|
@ -286,7 +285,7 @@ def show_version(service, server_ip, configver, save):
|
|||
pass
|
||||
|
||||
if service == 'keepalived':
|
||||
stderr = config_mod.upload_and_restart(serv, configver, save_action, service)
|
||||
stderr = config_mod.upload_and_restart(server_ip, configver, save_action, service)
|
||||
elif service in ('nginx', 'apache'):
|
||||
config_file_name = sql.select_remote_path_from_version(server_ip=server_ip, service=service,
|
||||
local_path=configver)
|
||||
|
|
|
@ -1,11 +1,9 @@
|
|||
import os
|
||||
import sys
|
||||
|
||||
from functools import wraps
|
||||
from flask import render_template, request, redirect, url_for
|
||||
from flask_login import login_required
|
||||
|
||||
from app import app, login_manager
|
||||
from app.routes.install import bp
|
||||
|
||||
sys.path.append(os.path.join(sys.path[0], '/var/www/haproxy-wi/app'))
|
||||
|
@ -14,7 +12,6 @@ import modules.db.sql as sql
|
|||
import modules.common.common as common
|
||||
import modules.roxywi.auth as roxywi_auth
|
||||
import modules.roxywi.common as roxywi_common
|
||||
import modules.roxy_wi_tools as roxy_wi_tools
|
||||
import modules.server.server as server_mod
|
||||
import modules.service.common as service_common
|
||||
import modules.service.installation as service_mod
|
||||
|
@ -138,7 +135,7 @@ def install_service(service, server_ip):
|
|||
docker = common.checkAjaxInput(request.form.get('docker'))
|
||||
syn_flood = request.form.get('syn_flood')
|
||||
hapver = request.form.get('hapver')
|
||||
|
||||
|
||||
if service in ('nginx', 'apache'):
|
||||
try:
|
||||
return service_mod.install_service(server_ip, service, docker, syn_flood)
|
||||
|
@ -246,7 +243,7 @@ def install_waf(service, server_ip):
|
|||
|
||||
@bp.post('/geoip')
|
||||
def install_geoip():
|
||||
server_ip = common.is_ip_or_dns(server_ip)
|
||||
server_ip = common.is_ip_or_dns(request.form.get('server_ip'))
|
||||
geoip_update = common.checkAjaxInput(request.form.get('update'))
|
||||
service = request.form.get('service')
|
||||
|
||||
|
|
|
@ -5,7 +5,6 @@ import distro
|
|||
from flask import render_template, request, jsonify, redirect, url_for
|
||||
from flask_login import login_required
|
||||
|
||||
from app import app, login_manager
|
||||
from app.routes.metric import bp
|
||||
|
||||
sys.path.append(os.path.join(sys.path[0], '/var/www/haproxy-wi/app'))
|
||||
|
@ -91,7 +90,7 @@ def metrics_ram():
|
|||
@bp.route('/<service>/table-metrics')
|
||||
def table_metrics(service):
|
||||
roxywi_common.check_user_group_for_flask()
|
||||
lang = roxywi_common.get_user_lang()
|
||||
lang = roxywi_common.get_user_lang_for_flask()
|
||||
group_id = roxywi_common.get_user_group(id=1)
|
||||
|
||||
if service in ('nginx', 'apache'):
|
||||
|
|
|
@ -4,12 +4,10 @@ import sys
|
|||
from flask import render_template, request, redirect, url_for
|
||||
from flask_login import login_required
|
||||
|
||||
from app import app, login_manager
|
||||
from app.routes.runtime import bp
|
||||
|
||||
sys.path.append(os.path.join(sys.path[0], '/var/www/haproxy-wi/app'))
|
||||
|
||||
import modules.db.sql as sql
|
||||
import modules.common.common as common
|
||||
import modules.roxywi.common as roxywi_common
|
||||
import modules.config.runtime as runtime
|
||||
|
@ -108,7 +106,7 @@ def action(server_ip):
|
|||
enable = common.checkAjaxInput(request.form.get('servaction'))
|
||||
backend = common.checkAjaxInput(request.form.get('servbackend'))
|
||||
save = request.form.get('save')
|
||||
|
||||
|
||||
return service_haproxy.runtime_command(server_ip, enable, backend, save)
|
||||
|
||||
|
||||
|
@ -170,7 +168,7 @@ def delete_session(server_ip, sess_id):
|
|||
@bp.route('/list/<server_ip>')
|
||||
def get_lists(server_ip):
|
||||
server_ip = common.is_ip_or_dns(server_ip)
|
||||
|
||||
|
||||
return runtime.list_of_lists(server_ip)
|
||||
|
||||
|
||||
|
@ -178,7 +176,7 @@ def get_lists(server_ip):
|
|||
def get_list(server_ip, list_id, list_name):
|
||||
server_ip = common.is_ip_or_dns(server_ip)
|
||||
list_name = common.checkAjaxInput(list_name)
|
||||
|
||||
|
||||
return runtime.show_lists(server_ip, list_id, list_name)
|
||||
|
||||
|
||||
|
@ -200,4 +198,4 @@ def add_ip_to_list():
|
|||
list_id = common.checkAjaxInput(request.form.get('list_id_for_add'))
|
||||
list_name = common.checkAjaxInput(request.form.get('list_name'))
|
||||
|
||||
return runtime.add_ip_to_list(serv, ip, list_id, list_name)
|
||||
return runtime.add_ip_to_list(serv, ip, list_id, list_name)
|
||||
|
|
|
@ -6,7 +6,6 @@ import distro
|
|||
from flask import render_template, request
|
||||
from flask_login import login_required
|
||||
|
||||
from app import app, login_manager
|
||||
from app.routes.server import bp
|
||||
|
||||
sys.path.append(os.path.join(sys.path[0], '/var/www/haproxy-wi/app'))
|
||||
|
@ -110,7 +109,6 @@ def create_server():
|
|||
return f'error: {e}'
|
||||
|
||||
|
||||
|
||||
@bp.route('/create/after', methods=['POST'])
|
||||
def after_add():
|
||||
hostname = common.checkAjaxInput(request.form.get('servername'))
|
||||
|
@ -444,7 +442,7 @@ def create_s3_backup():
|
|||
return backup_mod.s3_backup(server, s3_server, bucket, secret_key, access_key, time, deljob, description)
|
||||
except Exception as e:
|
||||
return str(e)
|
||||
|
||||
|
||||
|
||||
@bp.post('/git/create')
|
||||
@bp.post('/git/delete')
|
||||
|
@ -458,5 +456,6 @@ def create_git_backup():
|
|||
cred = request.form.get('cred')
|
||||
deljob = request.form.get('git_deljob')
|
||||
description = request.form.get('description')
|
||||
backup_id = request.form.get('git_backup')
|
||||
|
||||
return backup_mod.git_backup(server_id, service_id, git_init, repo, branch, period, cred, deljob, description)
|
||||
return backup_mod.git_backup(server_id, service_id, git_init, repo, branch, period, cred, deljob, description, backup_id)
|
||||
|
|
|
@ -6,7 +6,7 @@ import distro
|
|||
from flask import render_template, request, redirect, url_for, abort
|
||||
from flask_login import login_required
|
||||
|
||||
from app import app, login_manager, cache
|
||||
from app import cache
|
||||
from app.routes.service import bp
|
||||
|
||||
sys.path.append(os.path.join(sys.path[0], '/var/www/haproxy-wi/app'))
|
||||
|
@ -262,8 +262,9 @@ def cpu_ram_metrics(server_ip, server_id, name, service):
|
|||
servers.append(server_status)
|
||||
servers_sorted = sorted(servers, key=common.get_key)
|
||||
|
||||
return render_template('ajax/overviewServers.html', service_status=servers_sorted, role=role, id=server_id, service_page=service,
|
||||
lang=user_params['lang'])
|
||||
return render_template(
|
||||
'ajax/overviewServers.html', service_status=servers_sorted, role=role, id=server_id, service_page=service, lang=user_params['lang']
|
||||
)
|
||||
|
||||
|
||||
@bp.route('/haproxy/bytes', methods=['POST'])
|
||||
|
|
|
@ -4,9 +4,8 @@ import sys
|
|||
from pytz import timezone
|
||||
from flask import render_template, request, redirect, url_for, jsonify
|
||||
from flask_login import login_required
|
||||
from datetime import datetime, timedelta
|
||||
from datetime import datetime
|
||||
|
||||
from app import app, login_manager
|
||||
from app.routes.smon import bp
|
||||
|
||||
sys.path.append(os.path.join(sys.path[0], '/var/www/haproxy-wi/app'))
|
||||
|
@ -87,7 +86,7 @@ def smon_dashboard(dashboard_id, check_id):
|
|||
|
||||
return render_template(
|
||||
'include/smon/smon_history.html', h2=1, autorefresh=1, role=user_params['role'], user=user, smon=smon,
|
||||
lang=user_params['lang'],user_status=user_subscription['user_status'], check_interval=check_interval,
|
||||
lang=user_params['lang'], user_status=user_subscription['user_status'], check_interval=check_interval,
|
||||
user_plan=user_subscription['user_plan'], token=user_params['token'], uptime=uptime, avg_res_time=avg_res_time,
|
||||
user_services=user_params['user_services'], smon_name=smon_name, cert_day_diff=cert_day_diff, check_id=check_id,
|
||||
dashboard_id=dashboard_id, last_resp_time=last_resp_time
|
||||
|
@ -202,12 +201,12 @@ def smon_add():
|
|||
record_type = common.checkAjaxInput(request.form.get('newsmondns_record_type'))
|
||||
packet_size = common.checkAjaxInput(request.form.get('newsmonpacket_size'))
|
||||
http_method = common.checkAjaxInput(request.form.get('newsmon_http_method'))
|
||||
lang = roxywi_common.get_user_lang()
|
||||
lang = roxywi_common.get_user_lang_for_flask()
|
||||
|
||||
try:
|
||||
last_id = smon_mod.create_smon(
|
||||
name, hostname, port, enable, url, body, group, desc, telegram, slack, pd, packet_size, check_type,
|
||||
resolver, record_type, user_group, http_method
|
||||
resolver, record_type, user_group, http_method
|
||||
)
|
||||
except Exception as e:
|
||||
return str(e), 200
|
||||
|
|
|
@ -5,7 +5,6 @@ import json
|
|||
from flask import render_template, request
|
||||
from flask_login import login_required
|
||||
|
||||
from app import app, login_manager
|
||||
from app.routes.user import bp
|
||||
|
||||
sys.path.append(os.path.join(sys.path[0], '/var/www/haproxy-wi/app'))
|
||||
|
|
|
@ -4,13 +4,11 @@ import sys
|
|||
from flask import render_template, request
|
||||
from flask_login import login_required
|
||||
|
||||
from app import app, login_manager
|
||||
from app.routes.waf import bp
|
||||
|
||||
sys.path.append(os.path.join(sys.path[0], '/var/www/haproxy-wi/app'))
|
||||
|
||||
import modules.db.sql as sql
|
||||
from modules.db.db_model import *
|
||||
import modules.common.common as common
|
||||
import modules.roxy_wi_tools as roxy_wi_tools
|
||||
import modules.roxywi.waf as roxy_waf
|
||||
|
@ -23,8 +21,14 @@ time_zone = sql.get_setting('time_zone')
|
|||
get_date = roxy_wi_tools.GetDate(time_zone)
|
||||
|
||||
|
||||
@bp.route('/<service>')
|
||||
@bp.before_request
|
||||
@login_required
|
||||
def before_request():
|
||||
""" Protect all of the admin endpoints. """
|
||||
pass
|
||||
|
||||
|
||||
@bp.route('/<service>')
|
||||
def waf(service):
|
||||
roxywi_auth.page_for_admin(level=2)
|
||||
|
||||
|
@ -60,7 +64,6 @@ def waf(service):
|
|||
|
||||
|
||||
@bp.route('/<service>/<server_ip>/rules')
|
||||
@login_required
|
||||
def waf_rules(service, server_ip):
|
||||
roxywi_auth.page_for_admin(level=2)
|
||||
roxywi_common.check_is_server_in_group(server_ip)
|
||||
|
@ -93,7 +96,6 @@ def waf_rules(service, server_ip):
|
|||
|
||||
|
||||
@bp.route('/<service>/<server_ip>/rule/<rule_id>')
|
||||
@login_required
|
||||
def waf_rule_edit(service, server_ip, rule_id):
|
||||
roxywi_auth.page_for_admin(level=2)
|
||||
roxywi_common.check_is_server_in_group(server_ip)
|
||||
|
@ -137,7 +139,6 @@ def waf_rule_edit(service, server_ip, rule_id):
|
|||
|
||||
|
||||
@bp.route('/<service>/<server_ip>/rule/<rule_id>/save', methods=['POST'])
|
||||
@login_required
|
||||
def waf_save_config(service, server_ip, rule_id):
|
||||
roxywi_auth.page_for_admin(level=2)
|
||||
roxywi_common.check_is_server_in_group(server_ip)
|
||||
|
@ -171,7 +172,6 @@ def waf_save_config(service, server_ip, rule_id):
|
|||
|
||||
|
||||
@bp.route('/<server_ip>/rule/<int:rule_id>/<int:enable>')
|
||||
@login_required
|
||||
def enable_rule(server_ip, rule_id, enable):
|
||||
server_ip = common.is_ip_or_dns(server_ip)
|
||||
|
||||
|
@ -179,7 +179,6 @@ def enable_rule(server_ip, rule_id, enable):
|
|||
|
||||
|
||||
@bp.route('/<service>/<server_ip>/rule/create', methods=['POST'])
|
||||
@login_required
|
||||
def create_rule(service, server_ip):
|
||||
if service not in ('haproxy', 'nginx'):
|
||||
return 'error: Wrong service'
|
||||
|
@ -190,7 +189,6 @@ def create_rule(service, server_ip):
|
|||
|
||||
|
||||
@bp.route('/<service>/mode/<server_name>/<waf_mode>')
|
||||
@login_required
|
||||
def change_waf_mode(service, server_name, waf_mode):
|
||||
if service not in ('haproxy', 'nginx'):
|
||||
return 'error: Wrong service'
|
||||
|
@ -202,7 +200,6 @@ def change_waf_mode(service, server_name, waf_mode):
|
|||
|
||||
|
||||
@bp.route('/overview/<service>/<server_ip>')
|
||||
@login_required
|
||||
def overview_waf(service, server_ip):
|
||||
server_ip = common.is_ip_or_dns(server_ip)
|
||||
|
||||
|
@ -213,7 +210,6 @@ def overview_waf(service, server_ip):
|
|||
|
||||
|
||||
@bp.route('/metric/enable/<int:enable>/<server_name>')
|
||||
@login_required
|
||||
def enable_metric(enable, server_name):
|
||||
server_name = common.checkAjaxInput(server_name)
|
||||
return sql.update_waf_metrics_enable(server_name, enable)
|
||||
|
|
|
@ -166,7 +166,7 @@ def login_page():
|
|||
flash('Login or password is not correct', 'alert alert-danger wrong-login')
|
||||
|
||||
try:
|
||||
lang = roxywi_common.get_user_lang()
|
||||
lang = roxywi_common.get_user_lang_for_flask()
|
||||
except Exception:
|
||||
lang = 'en'
|
||||
|
||||
|
|
|
@ -17,10 +17,12 @@
|
|||
RewriteRule /(.*) ws://localhost:8765/ [P,L]
|
||||
ProxyPassReverse / http://localhost:8765/
|
||||
|
||||
DocumentRoot /var/www/haproxy-wi
|
||||
|
||||
WSGIDaemonProcess roxy-wi-api display-name=%{GROUP} user=apache group=apache processes=1 threads=5
|
||||
WSGIScriptAlias /api /var/www/haproxy-wi/api/app.wsgi
|
||||
|
||||
WSGIDaemonProcess roxy-wi-app display-name=%{GROUP} user=apache group=apache threads=10
|
||||
WSGIDaemonProcess roxy-wi-app display-name=%{GROUP} user=apache group=apache processes=5 threads=10
|
||||
WSGIScriptAlias /app /var/www/haproxy-wi/app/app.wsgi
|
||||
|
||||
<Directory /var/www/haproxy-wi/app/>
|
||||
|
|
|
@ -17,10 +17,12 @@
|
|||
RewriteRule /(.*) ws://localhost:8765/ [P,L]
|
||||
ProxyPassReverse / http://localhost:8765/
|
||||
|
||||
DocumentRoot /var/www/haproxy-wi
|
||||
|
||||
WSGIDaemonProcess roxy-wi-api display-name=%{GROUP} user=www-data group=www-data processes=1 threads=5
|
||||
WSGIScriptAlias /api /var/www/haproxy-wi/api/app.wsgi
|
||||
|
||||
WSGIDaemonProcess roxy-wi-app display-name=%{GROUP} user=www-data group=www-data threads=10
|
||||
WSGIDaemonProcess roxy-wi-app display-name=%{GROUP} user=www-data group=www-data processes=5 threads=10
|
||||
WSGIScriptAlias /app /var/www/haproxy-wi/app/app.wsgi
|
||||
|
||||
<Directory /var/www/haproxy-wi/app/>
|
||||
|
|
|
@ -8,4 +8,5 @@ PyMySQL>=1.0.2
|
|||
retry>=0.9.2
|
||||
pdpyras>=4.5.2
|
||||
pika>=1.3.1
|
||||
Flask>=2.0.3
|
||||
Flask-Caching>=1.10.1
|
||||
|
|
|
@ -9,4 +9,5 @@ bottle>=0.12.18
|
|||
retry>=0.9.2
|
||||
pdpyras>=4.5.2
|
||||
pika>=1.3.1
|
||||
Flask>=2.0.3
|
||||
Flask-Caching>=1.10.1
|
||||
|
|
|
@ -9,4 +9,5 @@ bottle>=0.12.18
|
|||
retry>=0.9.2
|
||||
pdpyras>=4.5.2
|
||||
pika>=1.3.1
|
||||
Flask>=2.0.3
|
||||
Flask-Caching>=1.10.1
|
||||
|
|
|
@ -15,4 +15,5 @@ bottle>=0.12.20
|
|||
psutil>=5.9.1
|
||||
pdpyras>=4.5.2
|
||||
pika>=1.3.1
|
||||
Flask>=2.0.3
|
||||
Flask-Caching>=1.10.1
|
||||
|
|
Loading…
Reference in New Issue