new_functions_and_fixes #1

Merged
gru merged 33 commits from new_functions_and_fixes into master 2025-11-03 14:35:20 +01:00
Showing only changes of commit 84d7139c15 - Show all commits

View File

@@ -1,9 +1,42 @@
from flask import Blueprint, render_template, request
from flask import Blueprint, render_template, request, flash
import subprocess
from auth.auth_middleware import requires_auth
from utils.haproxy_config import update_haproxy_config, is_frontend_exist, count_frontends_and_backends
main_bp = Blueprint('main', __name__)
def reload_haproxy():
"""Reload HAProxy via supervisorctl"""
try:
result = subprocess.run(
['/usr/sbin/haproxy', '-f', '/etc/haproxy/haproxy.cfg', '-c'],
capture_output=True,
text=True,
timeout=10
)
if result.returncode != 0:
print(f"[HAPROXY] Config validation failed: {result.stderr}", flush=True)
return False, "Config validation failed"
result = subprocess.run(
['/usr/bin/supervisorctl', 'restart', 'haproxy'],
capture_output=True,
text=True,
timeout=10
)
if result.returncode == 0:
print(f"[HAPROXY] Restarted successfully via supervisorctl", flush=True)
return True, "HAProxy restarted successfully"
else:
print(f"[HAPROXY] Restart failed: {result.stderr}", flush=True)
return False, f"Restart failed: {result.stderr}"
except Exception as e:
print(f"[HAPROXY] Error reloading: {e}", flush=True)
return False, f"Error: {e}"
@main_bp.route('/', methods=['GET', 'POST'])
@requires_auth
def index():
@@ -35,7 +68,7 @@ def index():
backend_server_ports = request.form.getlist('backend_server_ports[]')
backend_server_maxconns = request.form.getlist('backend_server_maxconns[]')
# Custom ACL (NEW)
# Custom ACL
add_custom_acl = 'add_custom_acl' in request.form
custom_acl_name = request.form.get('custom_acl_name', '').strip() if add_custom_acl else ''
custom_acl_type = request.form.get('custom_acl_type', 'path_beg') if add_custom_acl else ''
@@ -88,7 +121,6 @@ def index():
ip = backend_server_ips[i] if i < len(backend_server_ips) else ''
port = backend_server_ports[i] if i < len(backend_server_ports) else ''
maxconn = backend_server_maxconns[i] if i < len(backend_server_maxconns) else None
if ip and port:
backend_servers.append((name, ip, port, maxconn))
@@ -177,8 +209,17 @@ def index():
custom_acl_redirect_url=custom_acl_redirect_url
)
# Determine message type
message_type = "success" if "successfully" in message else "danger"
# ===== RELOAD HAPROXY =====
message_type = "success" if "successfully" in message.lower() else "danger"
if message_type == "success":
reload_ok, reload_msg = reload_haproxy()
if reload_ok:
message = message + "" + reload_msg
message_type = "success"
else:
message = message + "" + reload_msg
message_type = "warning"
return render_template('index.html',
message=message,