diff --git a/cluster/cluster_api.py b/cluster/cluster_api.py index dd52461..53fe325 100644 --- a/cluster/cluster_api.py +++ b/cluster/cluster_api.py @@ -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): worker, success = get_worker(request) if worker: diff --git a/wireguard_tools/views.py b/wireguard_tools/views.py index 894e908..c6384f1 100644 --- a/wireguard_tools/views.py +++ b/wireguard_tools/views.py @@ -12,7 +12,6 @@ from django.utils import timezone from django.utils.translation import gettext_lazy as _ from cluster.models import ClusterSettings -from dns.views import export_dns_configuration from firewall.models import RedirectRule from firewall.tools import export_user_firewall, generate_firewall_footer, generate_firewall_header, \ generate_port_forward_firewall, generate_redirect_dns_rules @@ -89,7 +88,6 @@ def export_wireguard_configs(request): base_dir = "/etc/wireguard" export_firewall_configuration() - export_dns_configuration() firewall_inserted = False for instance in instances: diff --git a/wireguard_webadmin/urls.py b/wireguard_webadmin/urls.py index bcfbb1a..31d6a6b 100644 --- a/wireguard_webadmin/urls.py +++ b/wireguard_webadmin/urls.py @@ -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, \ cron_update_peer_latest_handshake, peer_info, routerfleet_authenticate_session, routerfleet_get_user_token, \ 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 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, \ @@ -79,6 +80,7 @@ urlpatterns = [ 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_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/manage_port_forward_rule/', manage_redirect_rule, name='manage_redirect_rule'), path('firewall/rule_list/', view_firewall_rule_list, name='firewall_rule_list'),