add API endpoint for worker ping status check

This commit is contained in:
Eduardo Silva
2025-12-31 20:27:22 -03:00
parent 170e153f2b
commit d8955ebd6d
3 changed files with 21 additions and 3 deletions

View File

@@ -159,6 +159,24 @@ def api_get_worker_config_files(request):
) )
def api_worker_ping(request):
worker, success = get_worker(request)
if worker:
if worker.error_status or not success:
data = {'status': 'error', 'message': worker.error_status}
return JsonResponse(data, status=400)
else:
data = {'status': 'error', 'message': 'Worker not found'}
return JsonResponse(data, status=403)
data = {
'status': 'success',
'worker_error_status': worker.error_status,
}
return JsonResponse(data, status=200)
def api_cluster_status(request): def api_cluster_status(request):
worker, success = get_worker(request) worker, success = get_worker(request)
if worker: if worker:

View File

@@ -12,7 +12,6 @@ from django.utils import timezone
from django.utils.translation import gettext_lazy as _ from django.utils.translation import gettext_lazy as _
from cluster.models import ClusterSettings from cluster.models import ClusterSettings
from dns.views import export_dns_configuration
from firewall.models import RedirectRule from firewall.models import RedirectRule
from firewall.tools import export_user_firewall, generate_firewall_footer, generate_firewall_header, \ from firewall.tools import export_user_firewall, generate_firewall_footer, generate_firewall_header, \
generate_port_forward_firewall, generate_redirect_dns_rules generate_port_forward_firewall, generate_redirect_dns_rules
@@ -89,7 +88,6 @@ def export_wireguard_configs(request):
base_dir = "/etc/wireguard" base_dir = "/etc/wireguard"
export_firewall_configuration() export_firewall_configuration()
export_dns_configuration()
firewall_inserted = False firewall_inserted = False
for instance in instances: for instance in instances:

View File

@@ -21,7 +21,8 @@ from accounts.views import view_create_first_user, view_login, view_logout
from api.views import api_instance_info, api_peer_invite, api_peer_list, cron_check_updates, \ from api.views import api_instance_info, api_peer_invite, api_peer_list, cron_check_updates, \
cron_update_peer_latest_handshake, peer_info, routerfleet_authenticate_session, routerfleet_get_user_token, \ cron_update_peer_latest_handshake, peer_info, routerfleet_authenticate_session, routerfleet_get_user_token, \
wireguard_status wireguard_status
from cluster.cluster_api import api_cluster_status, api_get_worker_config_files, api_get_worker_dnsmasq_config from cluster.cluster_api import api_cluster_status, api_get_worker_config_files, api_get_worker_dnsmasq_config, \
api_worker_ping
from cluster.views import cluster_main, cluster_settings, worker_manage from cluster.views import cluster_main, cluster_settings, worker_manage
from console.views import view_console from console.views import view_console
from dns.views import view_apply_dns_config, view_manage_dns_settings, view_manage_filter_list, view_manage_static_host, \ from dns.views import view_apply_dns_config, view_manage_dns_settings, view_manage_filter_list, view_manage_static_host, \
@@ -79,6 +80,7 @@ urlpatterns = [
path('api/cluster/status/', api_cluster_status, name='api_cluster_status'), path('api/cluster/status/', api_cluster_status, name='api_cluster_status'),
path('api/cluster/worker/get_config_files/', api_get_worker_config_files, name='api_get_worker_config_files'), path('api/cluster/worker/get_config_files/', api_get_worker_config_files, name='api_get_worker_config_files'),
path('api/cluster/worker/get_dnsmasq_config/', api_get_worker_dnsmasq_config, name='api_get_worker_dnsmasq_config'), path('api/cluster/worker/get_dnsmasq_config/', api_get_worker_dnsmasq_config, name='api_get_worker_dnsmasq_config'),
path('api/cluster/worker/ping/', api_worker_ping, name='api_worker_ping'),
path('firewall/port_forward/', view_redirect_rule_list, name='redirect_rule_list'), path('firewall/port_forward/', view_redirect_rule_list, name='redirect_rule_list'),
path('firewall/manage_port_forward_rule/', manage_redirect_rule, name='manage_redirect_rule'), path('firewall/manage_port_forward_rule/', manage_redirect_rule, name='manage_redirect_rule'),
path('firewall/rule_list/', view_firewall_rule_list, name='firewall_rule_list'), path('firewall/rule_list/', view_firewall_rule_list, name='firewall_rule_list'),