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
Aidaho 2024-12-01 17:34:16 +03:00
parent 6cfaf90743
commit 5bf719ef1c
3 changed files with 23 additions and 23 deletions

View File

@ -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

View File

@ -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())

View File

@ -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>')