mirror of https://github.com/Aidaho12/haproxy-wi
v8.0.1: Handle missing services and improve error handling
Enhanced error handling for missing NGINX and Keepalived services. Updated JavaScript to handle 404 errors and provide clearer messages in UI if services are not installed.pull/399/head
parent
1f9942aa7d
commit
8ef721d72c
|
@ -708,10 +708,13 @@ function get_keepalived_ver(div_id, server_ip) {
|
|||
$.ajax({
|
||||
url: api_prefix + "/service/keepalived/" + server_ip + "/status",
|
||||
contentType: "application/json; charset=utf-8",
|
||||
success: function (data) {
|
||||
if (data.status === 'failed') {
|
||||
statusCode: {
|
||||
404: function (xhr) {
|
||||
div_id.text('Keepalived has not installed');
|
||||
} else if (!data.Version) {
|
||||
}
|
||||
},
|
||||
success: function (data) {
|
||||
if (!data.Version) {
|
||||
div_id.text('Keepalived has not installed');
|
||||
} else {
|
||||
div_id.text(data.Version);
|
||||
|
|
|
@ -254,7 +254,7 @@ function showServiceVersion(service) {
|
|||
}
|
||||
},
|
||||
success: function (data) {
|
||||
if (data.status === 'failed') {
|
||||
if (data.status === 'failed' || !data.Version) {
|
||||
ver_div.text(service + ' has not installed');
|
||||
install_div.text('Install');
|
||||
install_div.attr('title', 'Install');
|
||||
|
|
|
@ -132,7 +132,7 @@ $.ajaxSetup({
|
|||
headers: {"X-CSRF-TOKEN": csrf_token},
|
||||
});
|
||||
$(document).ajaxError(function myErrorHandler(event, xhr, ajaxOptions, thrownError) {
|
||||
if (xhr.status != 401) {
|
||||
if (xhr.status != 401 && xhr.status != 404) {
|
||||
toastr.error(xhr.responseJSON.error);
|
||||
}
|
||||
});
|
||||
|
|
|
@ -123,8 +123,11 @@ class ServiceView(MethodView):
|
|||
out = server_mod.ssh_command(server.ip, cmd)
|
||||
out = out.replace('\n', '')
|
||||
out1 = out.split('\r')
|
||||
out1[0] = out1[0].split('/')[1]
|
||||
out1[1] = out1[1].split(';')[1]
|
||||
try:
|
||||
out1[0] = out1[0].split('/')[1]
|
||||
out1[1] = out1[1].split(';')[1]
|
||||
except IndexError:
|
||||
return ErrorResponse(error='NGINX service not found').model_dump(mode='json'), 404
|
||||
try:
|
||||
data = {
|
||||
"Version": out1[0],
|
||||
|
@ -164,11 +167,21 @@ class ServiceView(MethodView):
|
|||
except Exception as e:
|
||||
data = ErrorResponse(error=str(e)).model_dump(mode='json')
|
||||
elif service == 'keepalived':
|
||||
try:
|
||||
os_info = server_sql.select_os_info(server_id)
|
||||
except RoxywiResourceNotFound:
|
||||
raise RoxywiResourceNotFound('Cannot find system information')
|
||||
if "CentOS" in os_info or "Redhat" in os_info:
|
||||
kp_proc_name = 'keepalived -D'
|
||||
else:
|
||||
kp_proc_name = 'keepalived --dont-fork'
|
||||
cmd = ("sudo /usr/sbin/keepalived -v 2>&1|head -1|awk '{print $2}' && sudo systemctl status keepalived |grep -e 'Active'"
|
||||
"|awk '{print $2, $9$10$11$12$13}' && ps ax |grep 'keepalived -D'|grep -v grep |wc -l")
|
||||
f"|awk '{{print $2, $9$10$11$12$13}}' && ps ax |grep '{kp_proc_name}'|grep -v grep |wc -l")
|
||||
try:
|
||||
out = server_mod.ssh_command(server.ip, cmd)
|
||||
out1 = out.split()
|
||||
if out1[0].split('\r')[0] == '/usr/sbin/keepalived:':
|
||||
return ErrorResponse(error='Keepalived service not found').model_dump(mode='json'), 404
|
||||
data = {"Version": out1[0].split('\r')[0], "Uptime": out1[2], "Process": out1[3], 'Status': self._service_status(out1[3])}
|
||||
except IndexError:
|
||||
return ErrorResponse(error='Keepalived service not found').model_dump(mode='json'), 404
|
||||
|
|
Loading…
Reference in New Issue