Fix HAProxy Docker installation and HA cluster deleting
pull/375/head
Aidaho 2023-12-30 22:59:56 +03:00
parent 849ec1024f
commit d7ba3ff76c
6 changed files with 36 additions and 21 deletions

View File

@ -10,7 +10,6 @@ import app.modules.roxy_wi_tools as roxy_wi_tools
@app.before_request @app.before_request
@cache.memoize(3)
def check_login(): def check_login():
if request.endpoint not in ( if request.endpoint not in (
'login_page', 'static', 'main.show_roxywi_version', 'service.check_service', 'smon.show_smon_status_page', 'login_page', 'static', 'main.show_roxywi_version', 'service.check_service', 'smon.show_smon_status_page',
@ -63,9 +62,6 @@ def login_page():
role = 5 role = 5
user1 = '' user1 = ''
if next_url is None:
next_url = ''
if login and password: if login and password:
users = sql.select_users(user=login) users = sql.select_users(user=login)

View File

@ -361,8 +361,12 @@ def update_server_master(master, slave):
except Exception as e: except Exception as e:
out_error(e) out_error(e)
update_master_server_by_slave_ip(master_id, slave)
def update_master_server_by_slave_ip(master_id: int, slave_ip: str) -> None:
try: try:
Server.update(master=master_id).where(Server.ip == slave).execute() Server.update(master=master_id).where(Server.ip == slave_ip).execute()
except Exception as e: except Exception as e:
out_error(e) out_error(e)
@ -564,7 +568,7 @@ def select_server_group_by_ip(server_ip):
return groups return groups
def select_server_ip_by_id(server_id): def select_server_ip_by_id(server_id: int) -> str:
try: try:
server_ip = Server.get(Server.server_id == server_id).ip server_ip = Server.get(Server.server_id == server_id).ip
except Exception as e: except Exception as e:

View File

@ -394,12 +394,12 @@ def create_server(hostname, ip, group, typeip, enable, master, cred, port, desc,
def update_server_after_creating(hostname: str, ip: str, scan_server: int) -> str: def update_server_after_creating(hostname: str, ip: str, scan_server: int) -> str:
try: try:
try: sql.insert_new_checker_setting_for_server(ip)
sql.insert_new_checker_setting_for_server(ip) except Exception as e:
except Exception as e: roxywi_common.logging(f'Cannot insert Checker settings for {hostname}', str(e), roxywi=1)
roxywi_common.logging(f'Cannot insert Checker settings for {hostname}', str(e), roxywi=1) raise Exception(f'error: Cannot insert Checker settings for {hostname} {e}')
raise Exception(f'error: Cannot insert Checker settings for {hostname} {e}')
try:
if scan_server == '1': if scan_server == '1':
nginx_config_path = sql.get_setting('nginx_config_path') nginx_config_path = sql.get_setting('nginx_config_path')
haproxy_config_path = sql.get_setting('haproxy_config_path') haproxy_config_path = sql.get_setting('haproxy_config_path')

View File

@ -113,16 +113,16 @@ def update_cluster(cluster: object, group_id: int) -> str:
def delete_cluster(cluster_id: int) -> str: def delete_cluster(cluster_id: int) -> str:
router_id = sql.get_router_id(cluster_id, default_router=1) router_id = sql.get_router_id(cluster_id, default_router=1)
slaves = sql.select_cluster_slaves(cluster_id, router_id) slaves = sql.select_cluster_slaves(cluster_id, router_id)
HaCluster.delete().where(HaCluster.id == cluster_id).execute()
for slave in slaves: for slave in slaves:
slave_ip = sql.select_server_ip_by_id(slave.server_id) slave_ip = sql.select_server_ip_by_id(slave[0])
try: try:
sql.update_server_master(0, slave_ip) sql.update_master_server_by_slave_ip(0, slave_ip)
except Exception as e: except Exception as e:
raise Exception(f'error: Cannot update master on slave {slave_ip}: {e}') raise Exception(f'error: Cannot update master on slave {slave_ip}: {e}')
roxywi_common.logging(cluster_id, 'Cluster has been deleted', keep_history=1, roxywi=1, service='HA cluster') HaCluster.delete().where(HaCluster.id == cluster_id).execute()
roxywi_common.logging(cluster_id, 'Cluster has been deleted', roxywi=1, service='HA cluster')
return 'ok' return 'ok'

View File

@ -98,7 +98,7 @@ def create_server():
user_status=user_subscription['user_status'], user_plan=user_subscription['user_plan'], adding=1 user_status=user_subscription['user_status'], user_plan=user_subscription['user_plan'], adding=1
) )
except Exception as e: except Exception as e:
return f'error: {e}' return f'{e}'
@bp.post('/create/after') @bp.post('/create/after')
@ -121,7 +121,7 @@ def update_server():
typeip = request.form.get('typeip') typeip = request.form.get('typeip')
firewall = request.form.get('firewall') firewall = request.form.get('firewall')
enable = request.form.get('enable') enable = request.form.get('enable')
master = request.form.get('slave') master = int(request.form.get('slave'))
serv_id = request.form.get('id') serv_id = request.form.get('id')
cred = request.form.get('cred') cred = request.form.get('cred')
port = request.form.get('port') port = request.form.get('port')
@ -132,11 +132,26 @@ def update_server():
return error_mess return error_mess
else: else:
sql.update_server(name, group, typeip, enable, master, serv_id, cred, port, desc, firewall, protected) sql.update_server(name, group, typeip, enable, master, serv_id, cred, port, desc, firewall, protected)
roxywi_common.logging(f'The server {name}', ' has been updated ', roxywi=1, login=1)
server_ip = sql.select_server_ip_by_id(serv_id) server_ip = sql.select_server_ip_by_id(serv_id)
roxywi_common.logging(server_ip, f'The server {name} has been update', roxywi=1, login=1, keep_history=1, service='server') roxywi_common.logging(server_ip, f'The server {name} has been update', roxywi=1, login=1, keep_history=1, service='server')
if master == 0:
try:
sql.delete_ha_cluster_delete_slave(serv_id)
roxywi_common.logging(server_ip, f'The server {name} has been removed from HA cluster', roxywi=1, login=1,
keep_history=1, service='server')
except Exception as e:
roxywi_common.logging(server_ip, f'error: Cannot delete the server {name} from HA cluster: {e}', roxywi=1, login=1,
keep_history=1, service='server')
raise Exception(f'error: Cannot delete the server {name} from HA cluster: {e}')
else:
try:
sql.ha_cluster_add_slave(serv_id, master)
except Exception as e:
roxywi_common.logging(server_ip, f'error: Cannot add the server {name} to HA cluster: {e}', roxywi=1, login=1,
keep_history=1, service='server')
raise Exception(f'error: Cannot add the server {name} to HA cluster: {e}')
return 'ok' return 'ok'
@bp.route('/delete/<int:server_id>') @bp.route('/delete/<int:server_id>')

View File

@ -21,7 +21,7 @@
ignore_errors: yes ignore_errors: yes
- name: Add logs tasks. - name: Add logs tasks.
include: ../../haproxy/tasks/logs.yml include_tasks: ../../haproxy/tasks/logs.yml
- name: Setting sysctl values. - name: Setting sysctl values.
sysctl: sysctl:
@ -47,5 +47,5 @@
ansible_python_interpreter: /usr/bin/python3 ansible_python_interpreter: /usr/bin/python3
- name: Add syn_flood tasks. - name: Add syn_flood tasks.
include: ../../haproxy/tasks/syn_flood.yml include_tasks: ../../haproxy/tasks/syn_flood.yml
when: (SYN_FLOOD is defined) and (SYN_FLOOD|length > 0) when: (SYN_FLOOD is defined) and (SYN_FLOOD|length > 0)