v8.1.2: Enhance server status checks and exception handling logic

Improved the server status check by adding sessionStorage management and handling responses for better UI feedback. Changed some function signatures for consistency and better error handling. Updated routes and database initialization to reflect new functions and database versions.
pull/401/head
Aidaho 2024-11-04 11:19:00 +03:00
parent d2cc32f984
commit e9473088d5
5 changed files with 17 additions and 3 deletions

View File

@ -81,7 +81,7 @@ register_api_id_ip(CheckerView, 'checker', '/tools')
register_api_id_ip(InstallView, 'install', '/install', methods=['POST', 'PUT', 'DELETE'])
register_api_id_ip(ServiceActionView, 'service_action', '/<any(start, stop, reload, restart):action>', methods=['GET'])
register_api(ServerView, 'server', '/server', 'server_id')
register_api_for_not_api(ServerView, 'server', '/server', 'server_id')
register_api(BackupView, 'backup_fs', '/server/backup/fs', 'backup_id')
register_api(S3BackupView, 'backup_s3', '/server/backup/s3', 'backup_id')
register_api(GitBackupView, 'backup_git', '/server/backup/git', 'backup_id')

View File

@ -722,4 +722,5 @@ def update_all():
update_db_v_8_1_0_1()
update_db_v_8_1_0_2()
update_db_v_8_1_0_3()
update_db_v_8_1_2()
update_ver()

View File

@ -323,7 +323,7 @@ def handle_json_exceptions(ex: Exception, message: str, server_ip='Roxy-WI serve
return ErrorResponse(error=f'{message}: {ex}').model_dump(mode='json')
def handler_exceptions_for_json_data(ex: Exception, main_ex_mes: str) -> tuple[dict, int]:
def handler_exceptions_for_json_data(ex: Exception, main_ex_mes: str = '') -> tuple[dict, int]:
if isinstance(ex, KeyError):
return handle_json_exceptions(ex, 'Missing key in JSON data'), 500
elif isinstance(ex, ValueError):

View File

@ -62,7 +62,7 @@ def check_server(server_id):
try:
server = server_sql.get_server_by_id(server_id)
except Exception as e:
raise e
return roxywi_common.handler_exceptions_for_json_data(e)
result = server_mod.server_is_up(server.ip)
status = {
"status": result,

View File

@ -341,10 +341,23 @@ function showServerInfo(id, ip) {
});
}
async function serverIsUp(server_id) {
if (sessionStorage.getItem('server-' + server_id) === '0') {
return false;
}
let server_div = $('#server_status-' + server_id);
$.ajax({
url: "/server/check/server/" + server_id,
contentType: "application/json; charset=utf-8",
statusCode: {
204: function (xhr) {
$("#server-" + server_id).remove();
sessionStorage.setItem('server-'+server_id, '0');
},
404: function (xhr) {
$("#server-" + server_id).remove();
sessionStorage.setItem('server-'+server_id, '0');
}
},
success: function (data) {
if (data.status === 'up') {
server_div.removeClass('serverNone');