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}')
for value in cluster.servers:
for value in servers:
if value['master']:
master_ip = value['ip']
for value in cluster.servers:
for value in servers:
if value['master']:
continue
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}}')
for value in servers:
slave_id = servers['ip']
slave_id = value['id']
if value['master']:
slave_id = server_sql.select_server_id_by_ip(master_ip)
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'):
view_func = view.as_view(endpoint)
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')

View File

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

View File

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

View File

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

View File

@ -128,6 +128,8 @@ class ServiceView(MethodView):
elif service == 'keepalived':
cmd = "sudo /usr/sbin/keepalived -v 2>&1|head -1|awk '{print $2}'"
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}
return jsonify(data)

View File

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