2023-10-16 10:48:38 +00:00
|
|
|
from flask import render_template, request, g
|
2023-09-17 09:42:39 +00:00
|
|
|
from flask_login import login_required
|
|
|
|
|
|
|
|
from app.routes.checker import bp
|
2024-03-03 07:11:48 +00:00
|
|
|
from app.middleware import get_user_params
|
|
|
|
import app.modules.db.history as history_sql
|
2023-09-30 08:48:54 +00:00
|
|
|
import app.modules.roxywi.common as roxywi_common
|
|
|
|
import app.modules.tools.checker as checker_mod
|
2023-09-17 09:42:39 +00:00
|
|
|
|
|
|
|
|
|
|
|
@bp.before_request
|
|
|
|
@login_required
|
|
|
|
def before_request():
|
2024-03-03 07:11:48 +00:00
|
|
|
""" Protect all the admin endpoints. """
|
2023-09-17 09:42:39 +00:00
|
|
|
pass
|
|
|
|
|
|
|
|
|
|
|
|
@bp.route('/settings')
|
2023-10-16 10:12:36 +00:00
|
|
|
@get_user_params()
|
2023-09-17 09:42:39 +00:00
|
|
|
def checker_settings():
|
|
|
|
roxywi_common.check_user_group_for_flask()
|
|
|
|
|
2024-02-04 07:28:17 +00:00
|
|
|
return render_template('checker.html')
|
2023-09-17 09:42:39 +00:00
|
|
|
|
|
|
|
|
|
|
|
@bp.post('/settings/update')
|
|
|
|
def update_settings():
|
|
|
|
service = request.form.get('service')
|
|
|
|
setting_id = int(request.form.get('setting_id'))
|
|
|
|
email = int(request.form.get('email'))
|
|
|
|
service_alert = int(request.form.get('server'))
|
|
|
|
telegram_id = int(request.form.get('telegram_id'))
|
|
|
|
slack_id = int(request.form.get('slack_id'))
|
|
|
|
pd_id = int(request.form.get('pd_id'))
|
2024-04-17 08:06:29 +00:00
|
|
|
mm_id = int(request.form.get('mm_id'))
|
2023-09-17 09:42:39 +00:00
|
|
|
|
|
|
|
if service == 'haproxy':
|
2023-09-19 06:50:10 +00:00
|
|
|
maxconn_alert = int(request.form.get('maxconn'))
|
2023-10-16 10:12:36 +00:00
|
|
|
backend_alert = int(request.form.get('backend'))
|
2023-09-17 09:42:39 +00:00
|
|
|
return checker_mod.update_haproxy_settings(
|
2024-04-17 08:06:29 +00:00
|
|
|
setting_id, email, service_alert, backend_alert, maxconn_alert, telegram_id, slack_id, pd_id, mm_id
|
2023-09-17 09:42:39 +00:00
|
|
|
)
|
|
|
|
elif service in ('nginx', 'apache'):
|
2024-04-17 08:06:29 +00:00
|
|
|
return checker_mod.update_service_settings(setting_id, email, service_alert, telegram_id, slack_id, pd_id, mm_id)
|
2023-09-17 09:42:39 +00:00
|
|
|
else:
|
2023-10-16 10:12:36 +00:00
|
|
|
backend_alert = int(request.form.get('backend'))
|
2024-04-17 08:06:29 +00:00
|
|
|
return checker_mod.update_keepalived_settings(setting_id, email, service_alert, backend_alert, telegram_id, slack_id, pd_id, mm_id)
|
2023-09-17 09:42:39 +00:00
|
|
|
|
|
|
|
|
|
|
|
@bp.route('/settings/load')
|
2024-03-18 06:36:13 +00:00
|
|
|
@get_user_params()
|
2023-09-17 09:42:39 +00:00
|
|
|
def load_checker():
|
|
|
|
return checker_mod.load_checker()
|
|
|
|
|
|
|
|
|
|
|
|
@bp.route('/history')
|
2023-10-16 10:12:36 +00:00
|
|
|
@get_user_params()
|
2023-09-17 09:42:39 +00:00
|
|
|
def checker_history():
|
|
|
|
roxywi_common.check_user_group_for_flask()
|
|
|
|
|
2024-01-06 08:42:32 +00:00
|
|
|
kwargs = {
|
|
|
|
'lang': g.user_params['lang'],
|
2024-03-03 07:11:48 +00:00
|
|
|
'smon': history_sql.alerts_history('Checker', g.user_params['group_id']),
|
2024-01-17 06:08:27 +00:00
|
|
|
'user_subscription': roxywi_common.return_user_subscription(),
|
2024-03-03 07:11:48 +00:00
|
|
|
'action': 'checker'
|
2024-01-06 08:42:32 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
return render_template('smon/checker_history.html', **kwargs)
|