v8.0: Fix several bugs and update API

Corrected JavaScript methods to properly store language settings and trigger events. Fixed error handling in multiple scripts, and improved handling of keepalived version checks. Updated the requirements to use a specific ansible-core version for better compatibility.
pull/390/head
Aidaho 2024-08-02 21:12:14 +03:00
parent e095a88b2e
commit 7559530ca2
7 changed files with 10 additions and 8 deletions

View File

@ -47,11 +47,11 @@ def create_cluster(cluster: HAClusterRequest, group_id: int) -> int:
raise Exception(f'error: Cannon add VIP: {e}') raise Exception(f'error: Cannon add VIP: {e}')
for value in cluster.servers: for value in servers:
if value['master']: if value['master']:
master_ip = value['ip'] master_ip = value['ip']
for value in cluster.servers: for value in servers:
if value['master']: if value['master']:
continue continue
try: try:
@ -60,7 +60,7 @@ def create_cluster(cluster: HAClusterRequest, group_id: int) -> int:
raise Exception(f'error: Cannot update master on slave {value["ip"]: {e}}') raise Exception(f'error: Cannot update master on slave {value["ip"]: {e}}')
for value in servers: for value in servers:
slave_id = servers['ip'] slave_id = value['id']
if value['master']: if value['master']:
slave_id = server_sql.select_server_id_by_ip(master_ip) slave_id = server_sql.select_server_id_by_ip(master_ip)
try: try:

View File

@ -21,7 +21,7 @@ from app.views.server.backup_vews import BackupView, S3BackupView
def register_api(view, endpoint, url, pk='listener_id', pk_type='int'): def register_api(view, endpoint, url, pk='listener_id', pk_type='int'):
view_func = view.as_view(endpoint) view_func = view.as_view(endpoint)
bp.add_url_rule(url, view_func=view_func, methods=['POST']) bp.add_url_rule(url, view_func=view_func, methods=['POST'])
bp.add_url_rule(f'{url}/<{pk_type}:{pk}>', view_func=view_func, methods=['GET', 'PUT', 'DELETE']) bp.add_url_rule(f'{url}/<{pk_type}:{pk}>', view_func=view_func, methods=['GET', 'PUT', 'PATCH', 'DELETE'])
register_api(ServerView, 'server', '', 'server_id') register_api(ServerView, 'server', '', 'server_id')

View File

@ -711,8 +711,7 @@ function get_keepalived_ver(div_id, server_ip) {
contentType: "application/json; charset=utf-8", contentType: "application/json; charset=utf-8",
success: function (data) { success: function (data) {
if (data.status === 'failed') { if (data.status === 'failed') {
let p_err = show_pretty_ansible_error(data.error); div_id.text('Keepalived has not installed');
toastr.error(p_err);
} else if (!data.Version) { } else if (!data.Version) {
div_id.text('Keepalived has not installed'); div_id.text('Keepalived has not installed');
} else { } else {

View File

@ -218,7 +218,7 @@ function installExporter(exporter) {
if (data.status === 'failed') { if (data.status === 'failed') {
toastr.error(data.error); toastr.error(data.error);
} else { } else {
parseAnsibleJsonOutput(data, nice_names[service], select_id); parseAnsibleJsonOutput(data, nice_names[service], exporter_id);
$(exporter_id).trigger("selectmenuchange"); $(exporter_id).trigger("selectmenuchange");
$("#ajax").empty(); $("#ajax").empty();
} }

View File

@ -815,6 +815,7 @@ function saveUserSettings(user_id){
localStorage.setItem('disabled_alert', '1'); localStorage.setItem('disabled_alert', '1');
} }
changeCurrentGroupF(user_id); changeCurrentGroupF(user_id);
Cookies.set('lang', $('#lang_select').val(), { expires: 365, path: '/', secure: 'true' });
} }
function sleep(ms) { function sleep(ms) {
return new Promise(resolve => setTimeout(resolve, ms)); return new Promise(resolve => setTimeout(resolve, ms));

View File

@ -128,6 +128,8 @@ class ServiceView(MethodView):
elif service == 'keepalived': elif service == 'keepalived':
cmd = "sudo /usr/sbin/keepalived -v 2>&1|head -1|awk '{print $2}'" cmd = "sudo /usr/sbin/keepalived -v 2>&1|head -1|awk '{print $2}'"
version = server_mod.ssh_command(server.ip, cmd) version = server_mod.ssh_command(server.ip, cmd)
if version == '/usr/sbin/keepalived:\r\n':
return ErrorResponse(error='Cannot get keepalived').model_dump(mode='json')
data = {'Version': version} data = {'Version': version}
return jsonify(data) return jsonify(data)

View File

@ -23,7 +23,7 @@ Flask-Caching==2.3.0
Flask-JWT-Extended==4.6.0 Flask-JWT-Extended==4.6.0
Flask-Pydantic==0.12.0 Flask-Pydantic==0.12.0
flask-swagger==0.2.14 flask-swagger==0.2.14
ansible-core>=2.11.12 ansible-core==2.16
ansible-runner==2.3.1 ansible-runner==2.3.1
python-whois>=0.8.0 python-whois>=0.8.0
netaddr>=0.10.1 netaddr>=0.10.1