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.metric as metric_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.common.common as 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)
|
||||
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
|
||||
keepalived = server.keepalived if '3' 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_jwt_extended import jwt_required
|
||||
from flask_pydantic import validate
|
||||
from pydantic import IPvAnyAddress
|
||||
|
||||
from app.routes.overview import bp
|
||||
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.roxywi.logs as roxy_logs
|
||||
import app.modules.roxywi.overview as roxy_overview
|
||||
from app.modules.roxywi.class_models import DomainName
|
||||
|
||||
|
||||
@bp.before_request
|
||||
|
@ -21,10 +26,8 @@ def before_request():
|
|||
@get_user_params()
|
||||
def index():
|
||||
kwargs = {
|
||||
'autorefresh': 1,
|
||||
'roles': sql.select_roles(),
|
||||
'groups': group_sql.select_groups(),
|
||||
'guide_me': 1,
|
||||
'lang': g.user_params['lang']
|
||||
}
|
||||
return render_template('ovw.html', **kwargs)
|
||||
|
@ -36,7 +39,8 @@ def show_services_overview():
|
|||
|
||||
|
||||
@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)
|
||||
|
||||
|
||||
|
@ -53,4 +57,5 @@ def overview_sub():
|
|||
@bp.route('/overview/logs')
|
||||
@get_user_params()
|
||||
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)
|
||||
|
||||
|
||||
@bp.post('/haproxy/bytes')
|
||||
def show_haproxy_bytes():
|
||||
server_ip = common.is_ip_or_dns(request.form.get('showBytes'))
|
||||
|
||||
@bp.get('/haproxy/bytes/<server_ip>')
|
||||
@validate()
|
||||
def show_haproxy_bytes(server_ip: Union[IPvAnyAddress, DomainName]):
|
||||
try:
|
||||
return roxy_overview.show_haproxy_binout(server_ip)
|
||||
except Exception as e:
|
||||
return f'error: {e}'
|
||||
|
||||
|
||||
@bp.post('/nginx/connections')
|
||||
def show_nginx_connections():
|
||||
server_ip = common.is_ip_or_dns(request.form.get('nginxConnections'))
|
||||
|
||||
@bp.get('/nginx/connections/<server_ip>')
|
||||
@validate()
|
||||
def show_nginx_connections(server_ip: Union[IPvAnyAddress, DomainName]):
|
||||
try:
|
||||
return roxy_overview.show_nginx_connections(server_ip)
|
||||
except Exception as e:
|
||||
return f'error: {e}'
|
||||
|
||||
|
||||
@bp.post('/apache/bytes')
|
||||
def show_apache_bytes():
|
||||
server_ip = common.is_ip_or_dns(request.form.get('apachekBytes'))
|
||||
|
||||
@bp.get('/apache/bytes/<server_ip>')
|
||||
@validate()
|
||||
def show_apache_bytes(server_ip: Union[IPvAnyAddress, DomainName]):
|
||||
try:
|
||||
return roxy_overview.show_apache_bytes(server_ip)
|
||||
except Exception as e:
|
||||
return f'error: {e}'
|
||||
|
||||
|
||||
@bp.post('/keepalived/become-master')
|
||||
@bp.get('/keepalived/become-master/<server_ip>')
|
||||
@validate()
|
||||
@cache.cached()
|
||||
def show_keepalived_become_master():
|
||||
server_ip = common.is_ip_or_dns(request.form.get('keepalivedBecameMaster'))
|
||||
|
||||
return roxy_overview.keepalived_became_master(server_ip)
|
||||
def show_keepalived_become_master(server_ip: Union[IPvAnyAddress, DomainName]):
|
||||
return roxy_overview.keepalived_became_master(str(server_ip))
|
||||
|
||||
|
||||
@bp.route('/position/<int:server_id>/<int:pos>')
|
||||
|
|
Loading…
Reference in New Issue