mirror of https://github.com/Aidaho12/haproxy-wi
v8.1.2: Refactor endpoints for direct server_ip usage
Convert POST methods to GET with direct server_ip parameter, improving clarity and conformity. Removed unused imports and fixed a typo in the `overview.py` module. Validations are added for better input handling, enhancing security and error management.pull/403/head v8.1.2
parent
6cfaf90743
commit
5bf719ef1c
|
@ -10,7 +10,6 @@ import app.modules.db.roxy as roxy_sql
|
||||||
import app.modules.db.user as user_sql
|
import app.modules.db.user as user_sql
|
||||||
import app.modules.db.metric as metric_sql
|
import app.modules.db.metric as metric_sql
|
||||||
import app.modules.db.server as server_sql
|
import app.modules.db.server as server_sql
|
||||||
import app.modules.db.service as service_sql
|
|
||||||
import app.modules.db.checker as checker_sql
|
import app.modules.db.checker as checker_sql
|
||||||
import app.modules.common.common as common
|
import app.modules.common.common as common
|
||||||
import app.modules.tools.common as tools_common
|
import app.modules.tools.common as tools_common
|
||||||
|
@ -49,7 +48,7 @@ def show_overview(serv) -> str:
|
||||||
server = server_sql.get_server_by_ip(serv)
|
server = server_sql.get_server_by_ip(serv)
|
||||||
user_services = user_sql.select_user_services(claims['user_id'])
|
user_services = user_sql.select_user_services(claims['user_id'])
|
||||||
|
|
||||||
haproxy = server.apache if '1' in user_services else 0
|
haproxy = server.haproxy if '1' in user_services else 0
|
||||||
nginx = server.nginx if '2' in user_services else 0
|
nginx = server.nginx if '2' in user_services else 0
|
||||||
keepalived = server.keepalived if '3' in user_services else 0
|
keepalived = server.keepalived if '3' in user_services else 0
|
||||||
apache = server.apache if '4' in user_services else 0
|
apache = server.apache if '4' in user_services else 0
|
||||||
|
|
|
@ -1,5 +1,9 @@
|
||||||
|
from typing import Union
|
||||||
|
|
||||||
from flask import render_template, g
|
from flask import render_template, g
|
||||||
from flask_jwt_extended import jwt_required
|
from flask_jwt_extended import jwt_required
|
||||||
|
from flask_pydantic import validate
|
||||||
|
from pydantic import IPvAnyAddress
|
||||||
|
|
||||||
from app.routes.overview import bp
|
from app.routes.overview import bp
|
||||||
from app.middleware import get_user_params
|
from app.middleware import get_user_params
|
||||||
|
@ -7,6 +11,7 @@ import app.modules.db.sql as sql
|
||||||
import app.modules.db.group as group_sql
|
import app.modules.db.group as group_sql
|
||||||
import app.modules.roxywi.logs as roxy_logs
|
import app.modules.roxywi.logs as roxy_logs
|
||||||
import app.modules.roxywi.overview as roxy_overview
|
import app.modules.roxywi.overview as roxy_overview
|
||||||
|
from app.modules.roxywi.class_models import DomainName
|
||||||
|
|
||||||
|
|
||||||
@bp.before_request
|
@bp.before_request
|
||||||
|
@ -21,10 +26,8 @@ def before_request():
|
||||||
@get_user_params()
|
@get_user_params()
|
||||||
def index():
|
def index():
|
||||||
kwargs = {
|
kwargs = {
|
||||||
'autorefresh': 1,
|
|
||||||
'roles': sql.select_roles(),
|
'roles': sql.select_roles(),
|
||||||
'groups': group_sql.select_groups(),
|
'groups': group_sql.select_groups(),
|
||||||
'guide_me': 1,
|
|
||||||
'lang': g.user_params['lang']
|
'lang': g.user_params['lang']
|
||||||
}
|
}
|
||||||
return render_template('ovw.html', **kwargs)
|
return render_template('ovw.html', **kwargs)
|
||||||
|
@ -36,7 +39,8 @@ def show_services_overview():
|
||||||
|
|
||||||
|
|
||||||
@bp.route('/overview/server/<server_ip>')
|
@bp.route('/overview/server/<server_ip>')
|
||||||
def overview_server(server_ip):
|
@validate()
|
||||||
|
def overview_server(server_ip: Union[IPvAnyAddress, DomainName]):
|
||||||
return roxy_overview.show_overview(server_ip)
|
return roxy_overview.show_overview(server_ip)
|
||||||
|
|
||||||
|
|
||||||
|
@ -53,4 +57,5 @@ def overview_sub():
|
||||||
@bp.route('/overview/logs')
|
@bp.route('/overview/logs')
|
||||||
@get_user_params()
|
@get_user_params()
|
||||||
def overview_logs():
|
def overview_logs():
|
||||||
return render_template('ajax/ovw_log.html', role=g.user_params['role'], lang=g.user_params['lang'], roxy_wi_log=roxy_logs.roxy_wi_log())
|
return render_template('ajax/ovw_log.html',
|
||||||
|
role=g.user_params['role'], lang=g.user_params['lang'], roxy_wi_log=roxy_logs.roxy_wi_log())
|
||||||
|
|
|
@ -169,42 +169,38 @@ def cpu_ram_metrics(server_ip: Union[IPvAnyAddress, DomainName], server_id: int,
|
||||||
return render_template('ajax/overviewServers.html', **kwargs)
|
return render_template('ajax/overviewServers.html', **kwargs)
|
||||||
|
|
||||||
|
|
||||||
@bp.post('/haproxy/bytes')
|
@bp.get('/haproxy/bytes/<server_ip>')
|
||||||
def show_haproxy_bytes():
|
@validate()
|
||||||
server_ip = common.is_ip_or_dns(request.form.get('showBytes'))
|
def show_haproxy_bytes(server_ip: Union[IPvAnyAddress, DomainName]):
|
||||||
|
|
||||||
try:
|
try:
|
||||||
return roxy_overview.show_haproxy_binout(server_ip)
|
return roxy_overview.show_haproxy_binout(server_ip)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
return f'error: {e}'
|
return f'error: {e}'
|
||||||
|
|
||||||
|
|
||||||
@bp.post('/nginx/connections')
|
@bp.get('/nginx/connections/<server_ip>')
|
||||||
def show_nginx_connections():
|
@validate()
|
||||||
server_ip = common.is_ip_or_dns(request.form.get('nginxConnections'))
|
def show_nginx_connections(server_ip: Union[IPvAnyAddress, DomainName]):
|
||||||
|
|
||||||
try:
|
try:
|
||||||
return roxy_overview.show_nginx_connections(server_ip)
|
return roxy_overview.show_nginx_connections(server_ip)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
return f'error: {e}'
|
return f'error: {e}'
|
||||||
|
|
||||||
|
|
||||||
@bp.post('/apache/bytes')
|
@bp.get('/apache/bytes/<server_ip>')
|
||||||
def show_apache_bytes():
|
@validate()
|
||||||
server_ip = common.is_ip_or_dns(request.form.get('apachekBytes'))
|
def show_apache_bytes(server_ip: Union[IPvAnyAddress, DomainName]):
|
||||||
|
|
||||||
try:
|
try:
|
||||||
return roxy_overview.show_apache_bytes(server_ip)
|
return roxy_overview.show_apache_bytes(server_ip)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
return f'error: {e}'
|
return f'error: {e}'
|
||||||
|
|
||||||
|
|
||||||
@bp.post('/keepalived/become-master')
|
@bp.get('/keepalived/become-master/<server_ip>')
|
||||||
|
@validate()
|
||||||
@cache.cached()
|
@cache.cached()
|
||||||
def show_keepalived_become_master():
|
def show_keepalived_become_master(server_ip: Union[IPvAnyAddress, DomainName]):
|
||||||
server_ip = common.is_ip_or_dns(request.form.get('keepalivedBecameMaster'))
|
return roxy_overview.keepalived_became_master(str(server_ip))
|
||||||
|
|
||||||
return roxy_overview.keepalived_became_master(server_ip)
|
|
||||||
|
|
||||||
|
|
||||||
@bp.route('/position/<int:server_id>/<int:pos>')
|
@bp.route('/position/<int:server_id>/<int:pos>')
|
||||||
|
|
Loading…
Reference in New Issue